aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/coverage')
-rw-r--r--frontend/coverage/base.css384
-rw-r--r--frontend/coverage/block-navigation.js133
-rw-r--r--frontend/coverage/coverage-final.json2251
-rw-r--r--frontend/coverage/index.html238
-rw-r--r--frontend/coverage/prettify.css102
-rw-r--r--frontend/coverage/prettify.js939
-rw-r--r--frontend/coverage/sorter.js379
-rw-r--r--frontend/coverage/src/App.css.html128
-rw-r--r--frontend/coverage/src/App.tsx.html128
-rw-r--r--frontend/coverage/src/components/FeedItem.css.html133
-rw-r--r--frontend/coverage/src/components/FeedItem.tsx.html133
-rw-r--r--frontend/coverage/src/components/FeedItems.css.html133
-rw-r--r--frontend/coverage/src/components/FeedItems.tsx.html133
-rw-r--r--frontend/coverage/src/components/FeedList.css.html133
-rw-r--r--frontend/coverage/src/components/FeedList.tsx.html133
-rw-r--r--frontend/coverage/src/components/Login.css.html133
-rw-r--r--frontend/coverage/src/components/Login.tsx.html133
-rw-r--r--frontend/coverage/src/components/Settings.css.html133
-rw-r--r--frontend/coverage/src/components/Settings.tsx.html133
-rw-r--r--frontend/coverage/src/components/index.html504
-rw-r--r--frontend/coverage/src/index.html236
21 files changed, 5085 insertions, 1667 deletions
diff --git a/frontend/coverage/base.css b/frontend/coverage/base.css
index f418035..8cd9700 100644
--- a/frontend/coverage/base.css
+++ b/frontend/coverage/base.css
@@ -1,71 +1,129 @@
-body, html {
- margin:0; padding: 0;
+body,
+html {
+ margin: 0;
+ padding: 0;
height: 100%;
}
body {
- font-family: Helvetica Neue, Helvetica, Arial;
- font-size: 14px;
- color:#333;
-}
-.small { font-size: 12px; }
-*, *:after, *:before {
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- box-sizing:border-box;
- }
-h1 { font-size: 20px; margin: 0;}
-h2 { font-size: 14px; }
+ font-family:
+ Helvetica Neue,
+ Helvetica,
+ Arial;
+ font-size: 14px;
+ color: #333;
+}
+.small {
+ font-size: 12px;
+}
+*,
+*:after,
+*:before {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+h1 {
+ font-size: 20px;
+ margin: 0;
+}
+h2 {
+ font-size: 14px;
+}
pre {
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
- margin: 0;
- padding: 0;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
-}
-a { color:#0074D9; text-decoration:none; }
-a:hover { text-decoration:underline; }
-.strong { font-weight: bold; }
-.space-top1 { padding: 10px 0 0 0; }
-.pad2y { padding: 20px 0; }
-.pad1y { padding: 10px 0; }
-.pad2x { padding: 0 20px; }
-.pad2 { padding: 20px; }
-.pad1 { padding: 10px; }
-.space-left2 { padding-left:55px; }
-.space-right2 { padding-right:20px; }
-.center { text-align:center; }
-.clearfix { display:block; }
+ font:
+ 12px/1.4 Consolas,
+ 'Liberation Mono',
+ Menlo,
+ Courier,
+ monospace;
+ margin: 0;
+ padding: 0;
+ -moz-tab-size: 2;
+ -o-tab-size: 2;
+ tab-size: 2;
+}
+a {
+ color: #0074d9;
+ text-decoration: none;
+}
+a:hover {
+ text-decoration: underline;
+}
+.strong {
+ font-weight: bold;
+}
+.space-top1 {
+ padding: 10px 0 0 0;
+}
+.pad2y {
+ padding: 20px 0;
+}
+.pad1y {
+ padding: 10px 0;
+}
+.pad2x {
+ padding: 0 20px;
+}
+.pad2 {
+ padding: 20px;
+}
+.pad1 {
+ padding: 10px;
+}
+.space-left2 {
+ padding-left: 55px;
+}
+.space-right2 {
+ padding-right: 20px;
+}
+.center {
+ text-align: center;
+}
+.clearfix {
+ display: block;
+}
.clearfix:after {
- content:'';
- display:block;
- height:0;
- clear:both;
- visibility:hidden;
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+.fl {
+ float: left;
+}
+@media only screen and (max-width: 640px) {
+ .col3 {
+ width: 100%;
+ max-width: 100%;
+ }
+ .hide-mobile {
+ display: none !important;
}
-.fl { float: left; }
-@media only screen and (max-width:640px) {
- .col3 { width:100%; max-width:100%; }
- .hide-mobile { display:none!important; }
}
.quiet {
color: #7f7f7f;
- color: rgba(0,0,0,0.5);
+ color: rgba(0, 0, 0, 0.5);
+}
+.quiet a {
+ opacity: 0.7;
}
-.quiet a { opacity: 0.7; }
.fraction {
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
font-size: 10px;
color: #555;
- background: #E8E8E8;
+ background: #e8e8e8;
padding: 4px 5px;
border-radius: 3px;
vertical-align: middle;
}
-div.path a:link, div.path a:visited { color: #333; }
+div.path a:link,
+div.path a:visited {
+ color: #333;
+}
table.coverage {
border-collapse: collapse;
margin: 10px 0 0 0;
@@ -78,140 +136,219 @@ table.coverage td {
vertical-align: top;
}
table.coverage td.line-count {
- text-align: right;
- padding: 0 5px 0 20px;
+ text-align: right;
+ padding: 0 5px 0 20px;
}
table.coverage td.line-coverage {
- text-align: right;
- padding-right: 10px;
- min-width:20px;
+ text-align: right;
+ padding-right: 10px;
+ min-width: 20px;
}
table.coverage td span.cline-any {
- display: inline-block;
- padding: 0 5px;
- width: 100%;
+ display: inline-block;
+ padding: 0 5px;
+ width: 100%;
}
.missing-if-branch {
- display: inline-block;
- margin-right: 5px;
- border-radius: 3px;
- position: relative;
- padding: 0 4px;
- background: #333;
- color: yellow;
+ display: inline-block;
+ margin-right: 5px;
+ border-radius: 3px;
+ position: relative;
+ padding: 0 4px;
+ background: #333;
+ color: yellow;
}
.skip-if-branch {
- display: none;
- margin-right: 10px;
- position: relative;
- padding: 0 4px;
- background: #ccc;
- color: white;
+ display: none;
+ margin-right: 10px;
+ position: relative;
+ padding: 0 4px;
+ background: #ccc;
+ color: white;
}
-.missing-if-branch .typ, .skip-if-branch .typ {
- color: inherit !important;
+.missing-if-branch .typ,
+.skip-if-branch .typ {
+ color: inherit !important;
}
.coverage-summary {
border-collapse: collapse;
width: 100%;
}
-.coverage-summary tr { border-bottom: 1px solid #bbb; }
-.keyline-all { border: 1px solid #ddd; }
-.coverage-summary td, .coverage-summary th { padding: 10px; }
-.coverage-summary tbody { border: 1px solid #bbb; }
-.coverage-summary td { border-right: 1px solid #bbb; }
-.coverage-summary td:last-child { border-right: none; }
+.coverage-summary tr {
+ border-bottom: 1px solid #bbb;
+}
+.keyline-all {
+ border: 1px solid #ddd;
+}
+.coverage-summary td,
+.coverage-summary th {
+ padding: 10px;
+}
+.coverage-summary tbody {
+ border: 1px solid #bbb;
+}
+.coverage-summary td {
+ border-right: 1px solid #bbb;
+}
+.coverage-summary td:last-child {
+ border-right: none;
+}
.coverage-summary th {
text-align: left;
font-weight: normal;
white-space: nowrap;
}
-.coverage-summary th.file { border-right: none !important; }
-.coverage-summary th.pct { }
+.coverage-summary th.file {
+ border-right: none !important;
+}
+.coverage-summary th.pct {
+}
.coverage-summary th.pic,
.coverage-summary th.abs,
.coverage-summary td.pct,
-.coverage-summary td.abs { text-align: right; }
-.coverage-summary td.file { white-space: nowrap; }
-.coverage-summary td.pic { min-width: 120px !important; }
-.coverage-summary tfoot td { }
+.coverage-summary td.abs {
+ text-align: right;
+}
+.coverage-summary td.file {
+ white-space: nowrap;
+}
+.coverage-summary td.pic {
+ min-width: 120px !important;
+}
+.coverage-summary tfoot td {
+}
.coverage-summary .sorter {
- height: 10px;
- width: 7px;
- display: inline-block;
- margin-left: 0.5em;
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
+ height: 10px;
+ width: 7px;
+ display: inline-block;
+ margin-left: 0.5em;
+ background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
}
.coverage-summary .sorted .sorter {
- background-position: 0 -20px;
+ background-position: 0 -20px;
}
.coverage-summary .sorted-desc .sorter {
- background-position: 0 -10px;
+ background-position: 0 -10px;
+}
+.status-line {
+ height: 10px;
}
-.status-line { height: 10px; }
/* yellow */
-.cbranch-no { background: yellow !important; color: #111; }
+.cbranch-no {
+ background: yellow !important;
+ color: #111;
+}
/* dark red */
-.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
-.low .chart { border:1px solid #C21F39 }
+.red.solid,
+.status-line.low,
+.low .cover-fill {
+ background: #c21f39;
+}
+.low .chart {
+ border: 1px solid #c21f39;
+}
.highlighted,
-.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
- background: #C21F39 !important;
+.highlighted .cstat-no,
+.highlighted .fstat-no,
+.highlighted .cbranch-no {
+ background: #c21f39 !important;
}
/* medium red */
-.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
+.cstat-no,
+.fstat-no,
+.cbranch-no,
+.cbranch-no {
+ background: #f6c6ce;
+}
/* light red */
-.low, .cline-no { background:#FCE1E5 }
+.low,
+.cline-no {
+ background: #fce1e5;
+}
/* light green */
-.high, .cline-yes { background:rgb(230,245,208) }
+.high,
+.cline-yes {
+ background: rgb(230, 245, 208);
+}
/* medium green */
-.cstat-yes { background:rgb(161,215,106) }
+.cstat-yes {
+ background: rgb(161, 215, 106);
+}
/* dark green */
-.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
-.high .chart { border:1px solid rgb(77,146,33) }
+.status-line.high,
+.high .cover-fill {
+ background: rgb(77, 146, 33);
+}
+.high .chart {
+ border: 1px solid rgb(77, 146, 33);
+}
/* dark yellow (gold) */
-.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
-.medium .chart { border:1px solid #f9cd0b; }
+.status-line.medium,
+.medium .cover-fill {
+ background: #f9cd0b;
+}
+.medium .chart {
+ border: 1px solid #f9cd0b;
+}
/* light yellow */
-.medium { background: #fff4c2; }
+.medium {
+ background: #fff4c2;
+}
-.cstat-skip { background: #ddd; color: #111; }
-.fstat-skip { background: #ddd; color: #111 !important; }
-.cbranch-skip { background: #ddd !important; color: #111; }
+.cstat-skip {
+ background: #ddd;
+ color: #111;
+}
+.fstat-skip {
+ background: #ddd;
+ color: #111 !important;
+}
+.cbranch-skip {
+ background: #ddd !important;
+ color: #111;
+}
-span.cline-neutral { background: #eaeaea; }
+span.cline-neutral {
+ background: #eaeaea;
+}
.coverage-summary td.empty {
- opacity: .5;
- padding-top: 4px;
- padding-bottom: 4px;
- line-height: 1;
- color: #888;
+ opacity: 0.5;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ line-height: 1;
+ color: #888;
}
-.cover-fill, .cover-empty {
- display:inline-block;
+.cover-fill,
+.cover-empty {
+ display: inline-block;
height: 12px;
}
.chart {
line-height: 0;
}
.cover-empty {
- background: white;
+ background: white;
}
.cover-full {
- border-right: none !important;
+ border-right: none !important;
}
pre.prettyprint {
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
+ border: none !important;
+ padding: 0 !important;
+ margin: 0 !important;
+}
+.com {
+ color: #999 !important;
+}
+.ignore-none {
+ color: #999;
+ font-weight: normal;
}
-.com { color: #999 !important; }
-.ignore-none { color: #999; font-weight: normal; }
.wrapper {
min-height: 100%;
@@ -219,6 +356,7 @@ pre.prettyprint {
height: 100%;
margin: 0 auto -48px;
}
-.footer, .push {
+.footer,
+.push {
height: 48px;
}
diff --git a/frontend/coverage/block-navigation.js b/frontend/coverage/block-navigation.js
index 530d1ed..05f7569 100644
--- a/frontend/coverage/block-navigation.js
+++ b/frontend/coverage/block-navigation.js
@@ -1,87 +1,82 @@
-/* eslint-disable */
+
var jumpToCode = (function init() {
- // Classes of code we would like to highlight in the file view
- var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
+ // Classes of code we would like to highlight in the file view
+ var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
- // Elements to highlight in the file listing view
- var fileListingElements = ['td.pct.low'];
+ // Elements to highlight in the file listing view
+ var fileListingElements = ['td.pct.low'];
- // We don't want to select elements that are direct descendants of another match
- var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
+ // We don't want to select elements that are direct descendants of another match
+ var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
- // Selector that finds elements on the page to which we can jump
- var selector =
- fileListingElements.join(', ') +
- ', ' +
- notSelector +
- missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
+ // Selector that finds elements on the page to which we can jump
+ var selector =
+ fileListingElements.join(', ') +
+ ', ' +
+ notSelector +
+ missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
- // The NodeList of matching elements
- var missingCoverageElements = document.querySelectorAll(selector);
+ // The NodeList of matching elements
+ var missingCoverageElements = document.querySelectorAll(selector);
- var currentIndex;
+ var currentIndex;
- function toggleClass(index) {
- missingCoverageElements
- .item(currentIndex)
- .classList.remove('highlighted');
- missingCoverageElements.item(index).classList.add('highlighted');
- }
-
- function makeCurrent(index) {
- toggleClass(index);
- currentIndex = index;
- missingCoverageElements.item(index).scrollIntoView({
- behavior: 'smooth',
- block: 'center',
- inline: 'center'
- });
- }
+ function toggleClass(index) {
+ missingCoverageElements.item(currentIndex).classList.remove('highlighted');
+ missingCoverageElements.item(index).classList.add('highlighted');
+ }
- function goToPrevious() {
- var nextIndex = 0;
- if (typeof currentIndex !== 'number' || currentIndex === 0) {
- nextIndex = missingCoverageElements.length - 1;
- } else if (missingCoverageElements.length > 1) {
- nextIndex = currentIndex - 1;
- }
+ function makeCurrent(index) {
+ toggleClass(index);
+ currentIndex = index;
+ missingCoverageElements.item(index).scrollIntoView({
+ behavior: 'smooth',
+ block: 'center',
+ inline: 'center',
+ });
+ }
- makeCurrent(nextIndex);
+ function goToPrevious() {
+ var nextIndex = 0;
+ if (typeof currentIndex !== 'number' || currentIndex === 0) {
+ nextIndex = missingCoverageElements.length - 1;
+ } else if (missingCoverageElements.length > 1) {
+ nextIndex = currentIndex - 1;
}
- function goToNext() {
- var nextIndex = 0;
+ makeCurrent(nextIndex);
+ }
- if (
- typeof currentIndex === 'number' &&
- currentIndex < missingCoverageElements.length - 1
- ) {
- nextIndex = currentIndex + 1;
- }
+ function goToNext() {
+ var nextIndex = 0;
- makeCurrent(nextIndex);
+ if (typeof currentIndex === 'number' && currentIndex < missingCoverageElements.length - 1) {
+ nextIndex = currentIndex + 1;
}
- return function jump(event) {
- if (
- document.getElementById('fileSearch') === document.activeElement &&
- document.activeElement != null
- ) {
- // if we're currently focused on the search input, we don't want to navigate
- return;
- }
+ makeCurrent(nextIndex);
+ }
- switch (event.which) {
- case 78: // n
- case 74: // j
- goToNext();
- break;
- case 66: // b
- case 75: // k
- case 80: // p
- goToPrevious();
- break;
- }
- };
+ return function jump(event) {
+ if (
+ document.getElementById('fileSearch') === document.activeElement &&
+ document.activeElement != null
+ ) {
+ // if we're currently focused on the search input, we don't want to navigate
+ return;
+ }
+
+ switch (event.which) {
+ case 78: // n
+ case 74: // j
+ goToNext();
+ break;
+ case 66: // b
+ case 75: // k
+ case 80: // p
+ goToPrevious();
+ break;
+ }
+ };
})();
window.addEventListener('keydown', jumpToCode);
diff --git a/frontend/coverage/coverage-final.json b/frontend/coverage/coverage-final.json
index 80fb28a..e46821b 100644
--- a/frontend/coverage/coverage-final.json
+++ b/frontend/coverage/coverage-final.json
@@ -1,13 +1,2240 @@
-{"/Users/adam/workspace/vibecode/neko/frontend/src/App.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/App.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx","statementMap":{"0":{"start":{"line":8,"column":22},"end":{"line":8,"column":null}},"1":{"start":{"line":9,"column":8},"end":{"line":9,"column":null}},"2":{"start":{"line":11,"column":2},"end":{"line":21,"column":null}},"3":{"start":{"line":12,"column":4},"end":{"line":20,"column":null}},"4":{"start":{"line":14,"column":8},"end":{"line":18,"column":null}},"5":{"start":{"line":15,"column":10},"end":{"line":15,"column":null}},"6":{"start":{"line":17,"column":10},"end":{"line":17,"column":null}},"7":{"start":{"line":20,"column":19},"end":{"line":20,"column":33}},"8":{"start":{"line":23,"column":2},"end":{"line":25,"column":null}},"9":{"start":{"line":24,"column":4},"end":{"line":24,"column":null}},"10":{"start":{"line":27,"column":2},"end":{"line":29,"column":null}},"11":{"start":{"line":28,"column":4},"end":{"line":28,"column":null}},"12":{"start":{"line":31,"column":2},"end":{"line":31,"column":null}},"13":{"start":{"line":39,"column":8},"end":{"line":39,"column":null}},"14":{"start":{"line":40,"column":2},"end":{"line":68,"column":null}},"15":{"start":{"line":45,"column":33},"end":{"line":45,"column":56}},"16":{"start":{"line":48,"column":12},"end":{"line":49,"column":null}},"17":{"start":{"line":49,"column":26},"end":{"line":49,"column":60}},"18":{"start":{"line":73,"column":2},"end":{"line":86,"column":null}}},"fnMap":{"0":{"name":"RequireAuth","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":69},"end":{"line":32,"column":null}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":18}},"loc":{"start":{"line":11,"column":18},"end":{"line":21,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":12},"end":{"line":13,"column":13}},"loc":{"start":{"line":13,"column":21},"end":{"line":19,"column":7}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":13},"end":{"line":20,"column":19}},"loc":{"start":{"line":20,"column":19},"end":{"line":20,"column":33}},"line":20},"4":{"name":"Dashboard","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":21}},"loc":{"start":{"line":38,"column":21},"end":{"line":70,"column":null}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":45,"column":27},"end":{"line":45,"column":33}},"loc":{"start":{"line":45,"column":33},"end":{"line":45,"column":56}},"line":45},"6":{"name":"(anonymous_6)","decl":{"start":{"line":47,"column":27},"end":{"line":47,"column":33}},"loc":{"start":{"line":47,"column":33},"end":{"line":50,"column":13}},"line":47},"7":{"name":"(anonymous_7)","decl":{"start":{"line":49,"column":20},"end":{"line":49,"column":26}},"loc":{"start":{"line":49,"column":26},"end":{"line":49,"column":60}},"line":49},"8":{"name":"App","decl":{"start":{"line":72,"column":9},"end":{"line":72,"column":15}},"loc":{"start":{"line":72,"column":15},"end":{"line":88,"column":null}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":18,"column":null}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":18,"column":null}},{"start":{"line":16,"column":15},"end":{"line":18,"column":null}}],"line":14},"1":{"loc":{"start":{"line":23,"column":2},"end":{"line":25,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":2},"end":{"line":25,"column":null}},{"start":{},"end":{}}],"line":23},"2":{"loc":{"start":{"line":27,"column":2},"end":{"line":29,"column":null}},"type":"if","locations":[{"start":{"line":27,"column":2},"end":{"line":29,"column":null}},{"start":{},"end":{}}],"line":27}},"s":{"0":2,"1":2,"2":2,"3":1,"4":1,"5":1,"6":0,"7":0,"8":2,"9":1,"10":1,"11":0,"12":1,"13":1,"14":1,"15":0,"16":1,"17":1,"18":2},"f":{"0":2,"1":1,"2":1,"3":0,"4":1,"5":0,"6":1,"7":1,"8":2},"b":{"0":[1,0],"1":[1,1],"2":[0,1]},"meta":{"lastBranch":3,"lastFunction":9,"lastStatement":19,"seen":{"f:7:9:7:21":0,"s:8:22:8:Infinity":0,"s:9:8:9:Infinity":1,"s:11:2:21:Infinity":2,"f:11:12:11:18":1,"s:12:4:20:Infinity":3,"f:13:12:13:13":2,"b:14:8:18:Infinity:16:15:18:Infinity":0,"s:14:8:18:Infinity":4,"s:15:10:15:Infinity":5,"s:17:10:17:Infinity":6,"f:20:13:20:19":3,"s:20:19:20:33":7,"b:23:2:25:Infinity:undefined:undefined:undefined:undefined":1,"s:23:2:25:Infinity":8,"s:24:4:24:Infinity":9,"b:27:2:29:Infinity:undefined:undefined:undefined:undefined":2,"s:27:2:29:Infinity":10,"s:28:4:28:Infinity":11,"s:31:2:31:Infinity":12,"f:38:9:38:21":4,"s:39:8:39:Infinity":13,"s:40:2:68:Infinity":14,"f:45:27:45:33":5,"s:45:33:45:56":15,"f:47:27:47:33":6,"s:48:12:49:Infinity":16,"f:49:20:49:26":7,"s:49:26:49:60":17,"f:72:9:72:15":8,"s:73:2:86:Infinity":18}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx","statementMap":{"0":{"start":{"line":10,"column":24},"end":{"line":10,"column":null}},"1":{"start":{"line":11,"column":30},"end":{"line":11,"column":null}},"2":{"start":{"line":14,"column":23},"end":{"line":16,"column":null}},"3":{"start":{"line":15,"column":8},"end":{"line":15,"column":null}},"4":{"start":{"line":18,"column":23},"end":{"line":52,"column":null}},"5":{"start":{"line":19,"column":8},"end":{"line":19,"column":null}},"6":{"start":{"line":21,"column":29},"end":{"line":21,"column":null}},"7":{"start":{"line":22,"column":8},"end":{"line":22,"column":null}},"8":{"start":{"line":24,"column":8},"end":{"line":51,"column":null}},"9":{"start":{"line":36,"column":16},"end":{"line":38,"column":null}},"10":{"start":{"line":37,"column":20},"end":{"line":37,"column":null}},"11":{"start":{"line":39,"column":16},"end":{"line":39,"column":null}},"12":{"start":{"line":44,"column":16},"end":{"line":44,"column":null}},"13":{"start":{"line":47,"column":16},"end":{"line":47,"column":null}},"14":{"start":{"line":49,"column":16},"end":{"line":49,"column":null}},"15":{"start":{"line":50,"column":16},"end":{"line":50,"column":null}},"16":{"start":{"line":54,"column":4},"end":{"line":82,"column":null}},"17":{"start":{"line":59,"column":24},"end":{"line":59,"column":null}},"18":{"start":{"line":60,"column":24},"end":{"line":60,"column":null}}},"fnMap":{"0":{"name":"FeedItem","decl":{"start":{"line":9,"column":24},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":71},"end":{"line":84,"column":null}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":23},"end":{"line":14,"column":29}},"loc":{"start":{"line":14,"column":29},"end":{"line":16,"column":null}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},"loc":{"start":{"line":18,"column":42},"end":{"line":52,"column":null}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":35,"column":18},"end":{"line":35,"column":19}},"loc":{"start":{"line":35,"column":27},"end":{"line":40,"column":13}},"line":35},"4":{"name":"(anonymous_4)","decl":{"start":{"line":41,"column":18},"end":{"line":41,"column":24}},"loc":{"start":{"line":41,"column":24},"end":{"line":45,"column":13}},"line":41},"5":{"name":"(anonymous_5)","decl":{"start":{"line":46,"column":19},"end":{"line":46,"column":20}},"loc":{"start":{"line":46,"column":28},"end":{"line":51,"column":13}},"line":46},"6":{"name":"(anonymous_6)","decl":{"start":{"line":58,"column":29},"end":{"line":58,"column":30}},"loc":{"start":{"line":58,"column":36},"end":{"line":61,"column":null}},"line":58}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":16},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":16},"end":{"line":38,"column":null}},{"start":{},"end":{}}],"line":36},"1":{"loc":{"start":{"line":55,"column":36},"end":{"line":55,"column":65}},"type":"cond-expr","locations":[{"start":{"line":55,"column":48},"end":{"line":55,"column":57}},{"start":{"line":55,"column":57},"end":{"line":55,"column":65}}],"line":55},"2":{"loc":{"start":{"line":55,"column":69},"end":{"line":55,"column":93}},"type":"cond-expr","locations":[{"start":{"line":55,"column":79},"end":{"line":55,"column":91}},{"start":{"line":55,"column":91},"end":{"line":55,"column":93}}],"line":55},"3":{"loc":{"start":{"line":62,"column":43},"end":{"line":62,"column":87}},"type":"cond-expr","locations":[{"start":{"line":62,"column":58},"end":{"line":62,"column":73}},{"start":{"line":62,"column":73},"end":{"line":62,"column":87}}],"line":62},"4":{"loc":{"start":{"line":63,"column":27},"end":{"line":63,"column":null}},"type":"cond-expr","locations":[{"start":{"line":63,"column":42},"end":{"line":63,"column":53}},{"start":{"line":63,"column":53},"end":{"line":63,"column":null}}],"line":63},"5":{"loc":{"start":{"line":65,"column":21},"end":{"line":65,"column":null}},"type":"cond-expr","locations":[{"start":{"line":65,"column":36},"end":{"line":65,"column":42}},{"start":{"line":65,"column":42},"end":{"line":65,"column":null}}],"line":65},"6":{"loc":{"start":{"line":68,"column":21},"end":{"line":68,"column":null}},"type":"binary-expr","locations":[{"start":{"line":68,"column":21},"end":{"line":68,"column":35}},{"start":{"line":68,"column":35},"end":{"line":68,"column":null}}],"line":68},"7":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":null}},"type":"binary-expr","locations":[{"start":{"line":74,"column":21},"end":{"line":74,"column":40}},{"start":{"line":74,"column":40},"end":{"line":74,"column":null}}],"line":74},"8":{"loc":{"start":{"line":79,"column":13},"end":{"line":80,"column":null}},"type":"binary-expr","locations":[{"start":{"line":79,"column":13},"end":{"line":79,"column":null}},{"start":{"line":80,"column":16},"end":{"line":80,"column":null}}],"line":79}},"s":{"0":21,"1":21,"2":21,"3":1,"4":21,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":1,"12":1,"13":0,"14":0,"15":0,"16":21,"17":1,"18":1},"f":{"0":21,"1":1,"2":1,"3":1,"4":1,"5":0,"6":1},"b":{"0":[0,1],"1":[9,12],"2":[1,20],"3":[2,19],"4":[2,19],"5":[2,19],"6":[21,0],"7":[21,5],"8":[21,4]},"meta":{"lastBranch":9,"lastFunction":7,"lastStatement":19,"seen":{"f:9:24:9:33":0,"s:10:24:10:Infinity":0,"s:11:30:11:Infinity":1,"s:14:23:16:Infinity":2,"f:14:23:14:29":1,"s:15:8:15:Infinity":3,"s:18:23:52:Infinity":4,"f:18:23:18:24":2,"s:19:8:19:Infinity":5,"s:21:29:21:Infinity":6,"s:22:8:22:Infinity":7,"s:24:8:51:Infinity":8,"f:35:18:35:19":3,"b:36:16:38:Infinity:undefined:undefined:undefined:undefined":0,"s:36:16:38:Infinity":9,"s:37:20:37:Infinity":10,"s:39:16:39:Infinity":11,"f:41:18:41:24":4,"s:44:16:44:Infinity":12,"f:46:19:46:20":5,"s:47:16:47:Infinity":13,"s:49:16:49:Infinity":14,"s:50:16:50:Infinity":15,"s:54:4:82:Infinity":16,"b:55:48:55:57:55:57:55:65":1,"b:55:79:55:91:55:91:55:93":2,"f:58:29:58:30":6,"s:59:24:59:Infinity":17,"s:60:24:60:Infinity":18,"b:62:58:62:73:62:73:62:87":3,"b:63:42:63:53:63:53:63:Infinity":4,"b:65:36:65:42:65:42:65:Infinity":5,"b:68:21:68:35:68:35:68:Infinity":6,"b:74:21:74:40:74:40:74:Infinity":7,"b:79:13:79:Infinity:80:16:80:Infinity":8}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx","statementMap":{"0":{"start":{"line":8,"column":28},"end":{"line":8,"column":null}},"1":{"start":{"line":9,"column":23},"end":{"line":9,"column":null}},"2":{"start":{"line":10,"column":21},"end":{"line":10,"column":null}},"3":{"start":{"line":12,"column":26},"end":{"line":12,"column":null}},"4":{"start":{"line":13,"column":30},"end":{"line":13,"column":null}},"5":{"start":{"line":14,"column":38},"end":{"line":14,"column":null}},"6":{"start":{"line":15,"column":30},"end":{"line":15,"column":null}},"7":{"start":{"line":16,"column":26},"end":{"line":16,"column":null}},"8":{"start":{"line":18,"column":23},"end":{"line":78,"column":null}},"9":{"start":{"line":19,"column":8},"end":{"line":24,"column":null}},"10":{"start":{"line":20,"column":12},"end":{"line":20,"column":null}},"11":{"start":{"line":22,"column":12},"end":{"line":22,"column":null}},"12":{"start":{"line":23,"column":12},"end":{"line":23,"column":null}},"13":{"start":{"line":25,"column":8},"end":{"line":25,"column":null}},"14":{"start":{"line":27,"column":18},"end":{"line":27,"column":null}},"15":{"start":{"line":28,"column":23},"end":{"line":28,"column":null}},"16":{"start":{"line":30,"column":8},"end":{"line":34,"column":null}},"17":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"18":{"start":{"line":32,"column":8},"end":{"line":34,"column":null}},"19":{"start":{"line":33,"column":12},"end":{"line":33,"column":null}},"20":{"start":{"line":36,"column":8},"end":{"line":38,"column":null}},"21":{"start":{"line":37,"column":12},"end":{"line":37,"column":null}},"22":{"start":{"line":41,"column":8},"end":{"line":49,"column":null}},"23":{"start":{"line":42,"column":12},"end":{"line":42,"column":null}},"24":{"start":{"line":43,"column":8},"end":{"line":49,"column":null}},"25":{"start":{"line":44,"column":12},"end":{"line":44,"column":null}},"26":{"start":{"line":45,"column":12},"end":{"line":45,"column":null}},"27":{"start":{"line":48,"column":12},"end":{"line":48,"column":null}},"28":{"start":{"line":51,"column":28},"end":{"line":51,"column":null}},"29":{"start":{"line":52,"column":8},"end":{"line":54,"column":null}},"30":{"start":{"line":53,"column":12},"end":{"line":53,"column":null}},"31":{"start":{"line":56,"column":8},"end":{"line":77,"column":null}},"32":{"start":{"line":58,"column":16},"end":{"line":60,"column":null}},"33":{"start":{"line":59,"column":20},"end":{"line":59,"column":null}},"34":{"start":{"line":61,"column":16},"end":{"line":61,"column":null}},"35":{"start":{"line":64,"column":16},"end":{"line":68,"column":null}},"36":{"start":{"line":65,"column":20},"end":{"line":65,"column":null}},"37":{"start":{"line":65,"column":39},"end":{"line":65,"column":57}},"38":{"start":{"line":67,"column":20},"end":{"line":67,"column":null}},"39":{"start":{"line":69,"column":16},"end":{"line":69,"column":null}},"40":{"start":{"line":70,"column":16},"end":{"line":70,"column":null}},"41":{"start":{"line":71,"column":16},"end":{"line":71,"column":null}},"42":{"start":{"line":74,"column":16},"end":{"line":74,"column":null}},"43":{"start":{"line":75,"column":16},"end":{"line":75,"column":null}},"44":{"start":{"line":76,"column":16},"end":{"line":76,"column":null}},"45":{"start":{"line":80,"column":4},"end":{"line":82,"column":null}},"46":{"start":{"line":81,"column":8},"end":{"line":81,"column":null}},"47":{"start":{"line":84,"column":42},"end":{"line":84,"column":null}},"48":{"start":{"line":86,"column":4},"end":{"line":122,"column":null}},"49":{"start":{"line":87,"column":30},"end":{"line":118,"column":null}},"50":{"start":{"line":88,"column":12},"end":{"line":88,"column":null}},"51":{"start":{"line":88,"column":36},"end":{"line":88,"column":null}},"52":{"start":{"line":90,"column":12},"end":{"line":117,"column":null}},"53":{"start":{"line":91,"column":16},"end":{"line":101,"column":null}},"54":{"start":{"line":92,"column":38},"end":{"line":92,"column":null}},"55":{"start":{"line":93,"column":20},"end":{"line":99,"column":null}},"56":{"start":{"line":94,"column":37},"end":{"line":94,"column":null}},"57":{"start":{"line":95,"column":24},"end":{"line":97,"column":null}},"58":{"start":{"line":96,"column":28},"end":{"line":96,"column":null}},"59":{"start":{"line":98,"column":24},"end":{"line":98,"column":null}},"60":{"start":{"line":100,"column":20},"end":{"line":100,"column":null}},"61":{"start":{"line":102,"column":12},"end":{"line":117,"column":null}},"62":{"start":{"line":103,"column":16},"end":{"line":109,"column":null}},"63":{"start":{"line":104,"column":38},"end":{"line":104,"column":null}},"64":{"start":{"line":105,"column":20},"end":{"line":107,"column":null}},"65":{"start":{"line":106,"column":24},"end":{"line":106,"column":null}},"66":{"start":{"line":108,"column":20},"end":{"line":108,"column":null}},"67":{"start":{"line":110,"column":12},"end":{"line":117,"column":null}},"68":{"start":{"line":111,"column":16},"end":{"line":116,"column":null}},"69":{"start":{"line":112,"column":20},"end":{"line":114,"column":null}},"70":{"start":{"line":113,"column":24},"end":{"line":113,"column":null}},"71":{"start":{"line":115,"column":20},"end":{"line":115,"column":null}},"72":{"start":{"line":120,"column":8},"end":{"line":120,"column":null}},"73":{"start":{"line":121,"column":8},"end":{"line":121,"column":null}},"74":{"start":{"line":121,"column":21},"end":{"line":121,"column":null}},"75":{"start":{"line":124,"column":25},"end":{"line":129,"column":null}},"76":{"start":{"line":125,"column":24},"end":{"line":125,"column":null}},"77":{"start":{"line":126,"column":8},"end":{"line":128,"column":null}},"78":{"start":{"line":127,"column":12},"end":{"line":127,"column":null}},"79":{"start":{"line":131,"column":23},"end":{"line":141,"column":null}},"80":{"start":{"line":132,"column":28},"end":{"line":132,"column":null}},"81":{"start":{"line":134,"column":8},"end":{"line":134,"column":null}},"82":{"start":{"line":134,"column":32},"end":{"line":134,"column":92}},"83":{"start":{"line":134,"column":54},"end":{"line":134,"column":91}},"84":{"start":{"line":136,"column":8},"end":{"line":140,"column":null}},"85":{"start":{"line":140,"column":26},"end":{"line":140,"column":67}},"86":{"start":{"line":143,"column":23},"end":{"line":153,"column":null}},"87":{"start":{"line":144,"column":28},"end":{"line":144,"column":null}},"88":{"start":{"line":146,"column":8},"end":{"line":146,"column":null}},"89":{"start":{"line":146,"column":32},"end":{"line":146,"column":92}},"90":{"start":{"line":146,"column":54},"end":{"line":146,"column":91}},"91":{"start":{"line":148,"column":8},"end":{"line":152,"column":null}},"92":{"start":{"line":152,"column":26},"end":{"line":152,"column":69}},"93":{"start":{"line":155,"column":4},"end":{"line":191,"column":null}},"94":{"start":{"line":156,"column":25},"end":{"line":180,"column":null}},"95":{"start":{"line":158,"column":16},"end":{"line":177,"column":null}},"96":{"start":{"line":160,"column":20},"end":{"line":165,"column":null}},"97":{"start":{"line":161,"column":24},"end":{"line":163,"column":null}},"98":{"start":{"line":162,"column":28},"end":{"line":162,"column":null}},"99":{"start":{"line":164,"column":24},"end":{"line":164,"column":null}},"100":{"start":{"line":168,"column":20},"end":{"line":176,"column":null}},"101":{"start":{"line":169,"column":38},"end":{"line":169,"column":null}},"102":{"start":{"line":170,"column":24},"end":{"line":175,"column":null}},"103":{"start":{"line":171,"column":41},"end":{"line":171,"column":null}},"104":{"start":{"line":172,"column":28},"end":{"line":174,"column":null}},"105":{"start":{"line":173,"column":32},"end":{"line":173,"column":null}},"106":{"start":{"line":182,"column":8},"end":{"line":185,"column":null}},"107":{"start":{"line":183,"column":23},"end":{"line":183,"column":null}},"108":{"start":{"line":184,"column":12},"end":{"line":184,"column":null}},"109":{"start":{"line":184,"column":20},"end":{"line":184,"column":null}},"110":{"start":{"line":187,"column":25},"end":{"line":187,"column":null}},"111":{"start":{"line":188,"column":8},"end":{"line":188,"column":null}},"112":{"start":{"line":188,"column":22},"end":{"line":188,"column":null}},"113":{"start":{"line":190,"column":8},"end":{"line":190,"column":null}},"114":{"start":{"line":190,"column":21},"end":{"line":190,"column":null}},"115":{"start":{"line":193,"column":4},"end":{"line":193,"column":null}},"116":{"start":{"line":193,"column":17},"end":{"line":193,"column":null}},"117":{"start":{"line":194,"column":4},"end":{"line":194,"column":null}},"118":{"start":{"line":194,"column":15},"end":{"line":194,"column":null}},"119":{"start":{"line":197,"column":4},"end":{"line":221,"column":null}},"120":{"start":{"line":204,"column":24},"end":{"line":212,"column":null}},"121":{"start":{"line":209,"column":43},"end":{"line":209,"column":null}}},"fnMap":{"0":{"name":"FeedItems","decl":{"start":{"line":7,"column":24},"end":{"line":7,"column":36}},"loc":{"start":{"line":7,"column":36},"end":{"line":223,"column":null}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},"loc":{"start":{"line":18,"column":43},"end":{"line":78,"column":null}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":57,"column":18},"end":{"line":57,"column":19}},"loc":{"start":{"line":57,"column":27},"end":{"line":62,"column":13}},"line":57},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":18},"end":{"line":63,"column":19}},"loc":{"start":{"line":63,"column":28},"end":{"line":72,"column":13}},"line":63},"4":{"name":"(anonymous_4)","decl":{"start":{"line":65,"column":29},"end":{"line":65,"column":30}},"loc":{"start":{"line":65,"column":39},"end":{"line":65,"column":57}},"line":65},"5":{"name":"(anonymous_5)","decl":{"start":{"line":73,"column":19},"end":{"line":73,"column":20}},"loc":{"start":{"line":73,"column":28},"end":{"line":77,"column":13}},"line":73},"6":{"name":"(anonymous_6)","decl":{"start":{"line":80,"column":14},"end":{"line":80,"column":20}},"loc":{"start":{"line":80,"column":20},"end":{"line":82,"column":7}},"line":80},"7":{"name":"(anonymous_7)","decl":{"start":{"line":86,"column":14},"end":{"line":86,"column":20}},"loc":{"start":{"line":86,"column":20},"end":{"line":122,"column":7}},"line":86},"8":{"name":"(anonymous_8)","decl":{"start":{"line":87,"column":30},"end":{"line":87,"column":31}},"loc":{"start":{"line":87,"column":52},"end":{"line":118,"column":null}},"line":87},"9":{"name":"(anonymous_9)","decl":{"start":{"line":91,"column":33},"end":{"line":91,"column":34}},"loc":{"start":{"line":91,"column":43},"end":{"line":101,"column":17}},"line":91},"10":{"name":"(anonymous_10)","decl":{"start":{"line":103,"column":33},"end":{"line":103,"column":34}},"loc":{"start":{"line":103,"column":43},"end":{"line":109,"column":17}},"line":103},"11":{"name":"(anonymous_11)","decl":{"start":{"line":111,"column":33},"end":{"line":111,"column":34}},"loc":{"start":{"line":111,"column":51},"end":{"line":116,"column":17}},"line":111},"12":{"name":"(anonymous_12)","decl":{"start":{"line":121,"column":15},"end":{"line":121,"column":21}},"loc":{"start":{"line":121,"column":21},"end":{"line":121,"column":null}},"line":121},"13":{"name":"(anonymous_13)","decl":{"start":{"line":124,"column":25},"end":{"line":124,"column":26}},"loc":{"start":{"line":124,"column":44},"end":{"line":129,"column":null}},"line":124},"14":{"name":"(anonymous_14)","decl":{"start":{"line":131,"column":23},"end":{"line":131,"column":24}},"loc":{"start":{"line":131,"column":39},"end":{"line":141,"column":null}},"line":131},"15":{"name":"(anonymous_15)","decl":{"start":{"line":134,"column":17},"end":{"line":134,"column":18}},"loc":{"start":{"line":134,"column":32},"end":{"line":134,"column":92}},"line":134},"16":{"name":"(anonymous_16)","decl":{"start":{"line":134,"column":46},"end":{"line":134,"column":47}},"loc":{"start":{"line":134,"column":54},"end":{"line":134,"column":91}},"line":134},"17":{"name":"(anonymous_17)","decl":{"start":{"line":140,"column":17},"end":{"line":140,"column":18}},"loc":{"start":{"line":140,"column":26},"end":{"line":140,"column":67}},"line":140},"18":{"name":"(anonymous_18)","decl":{"start":{"line":143,"column":23},"end":{"line":143,"column":24}},"loc":{"start":{"line":143,"column":39},"end":{"line":153,"column":null}},"line":143},"19":{"name":"(anonymous_19)","decl":{"start":{"line":146,"column":17},"end":{"line":146,"column":18}},"loc":{"start":{"line":146,"column":32},"end":{"line":146,"column":92}},"line":146},"20":{"name":"(anonymous_20)","decl":{"start":{"line":146,"column":46},"end":{"line":146,"column":47}},"loc":{"start":{"line":146,"column":54},"end":{"line":146,"column":91}},"line":146},"21":{"name":"(anonymous_21)","decl":{"start":{"line":152,"column":17},"end":{"line":152,"column":18}},"loc":{"start":{"line":152,"column":26},"end":{"line":152,"column":69}},"line":152},"22":{"name":"(anonymous_22)","decl":{"start":{"line":155,"column":14},"end":{"line":155,"column":20}},"loc":{"start":{"line":155,"column":20},"end":{"line":191,"column":7}},"line":155},"23":{"name":"(anonymous_23)","decl":{"start":{"line":157,"column":12},"end":{"line":157,"column":13}},"loc":{"start":{"line":157,"column":25},"end":{"line":178,"column":null}},"line":157},"24":{"name":"(anonymous_24)","decl":{"start":{"line":158,"column":32},"end":{"line":158,"column":33}},"loc":{"start":{"line":158,"column":43},"end":{"line":177,"column":17}},"line":158},"25":{"name":"(anonymous_25)","decl":{"start":{"line":182,"column":22},"end":{"line":182,"column":23}},"loc":{"start":{"line":182,"column":36},"end":{"line":185,"column":9}},"line":182},"26":{"name":"(anonymous_26)","decl":{"start":{"line":190,"column":15},"end":{"line":190,"column":21}},"loc":{"start":{"line":190,"column":21},"end":{"line":190,"column":null}},"line":190},"27":{"name":"(anonymous_27)","decl":{"start":{"line":203,"column":31},"end":{"line":203,"column":32}},"loc":{"start":{"line":204,"column":24},"end":{"line":212,"column":null}},"line":204},"28":{"name":"(anonymous_28)","decl":{"start":{"line":209,"column":37},"end":{"line":209,"column":43}},"loc":{"start":{"line":209,"column":43},"end":{"line":209,"column":null}},"line":209}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":null}},"type":"binary-expr","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":51}},{"start":{"line":10,"column":51},"end":{"line":10,"column":null}}],"line":10},"1":{"loc":{"start":{"line":19,"column":8},"end":{"line":24,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":24,"column":null}},{"start":{"line":21,"column":15},"end":{"line":24,"column":null}}],"line":19},"2":{"loc":{"start":{"line":30,"column":8},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":34,"column":null}},{"start":{"line":32,"column":8},"end":{"line":34,"column":null}}],"line":30},"3":{"loc":{"start":{"line":32,"column":8},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":34,"column":null}},{"start":{},"end":{}}],"line":32},"4":{"loc":{"start":{"line":36,"column":8},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":8},"end":{"line":38,"column":null}},{"start":{},"end":{}}],"line":36},"5":{"loc":{"start":{"line":41,"column":8},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":49,"column":null}},{"start":{"line":43,"column":8},"end":{"line":49,"column":null}}],"line":41},"6":{"loc":{"start":{"line":43,"column":8},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":49,"column":null}},{"start":{"line":46,"column":15},"end":{"line":49,"column":null}}],"line":43},"7":{"loc":{"start":{"line":52,"column":8},"end":{"line":54,"column":null}},"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":54,"column":null}},{"start":{},"end":{}}],"line":52},"8":{"loc":{"start":{"line":58,"column":16},"end":{"line":60,"column":null}},"type":"if","locations":[{"start":{"line":58,"column":16},"end":{"line":60,"column":null}},{"start":{},"end":{}}],"line":58},"9":{"loc":{"start":{"line":64,"column":16},"end":{"line":68,"column":null}},"type":"if","locations":[{"start":{"line":64,"column":16},"end":{"line":68,"column":null}},{"start":{"line":66,"column":23},"end":{"line":68,"column":null}}],"line":64},"10":{"loc":{"start":{"line":88,"column":12},"end":{"line":88,"column":null}},"type":"if","locations":[{"start":{"line":88,"column":12},"end":{"line":88,"column":null}},{"start":{},"end":{}}],"line":88},"11":{"loc":{"start":{"line":90,"column":12},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":90,"column":12},"end":{"line":117,"column":null}},{"start":{"line":102,"column":12},"end":{"line":117,"column":null}}],"line":90},"12":{"loc":{"start":{"line":93,"column":20},"end":{"line":99,"column":null}},"type":"if","locations":[{"start":{"line":93,"column":20},"end":{"line":99,"column":null}},{"start":{},"end":{}}],"line":93},"13":{"loc":{"start":{"line":95,"column":24},"end":{"line":97,"column":null}},"type":"if","locations":[{"start":{"line":95,"column":24},"end":{"line":97,"column":null}},{"start":{},"end":{}}],"line":95},"14":{"loc":{"start":{"line":102,"column":12},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":102,"column":12},"end":{"line":117,"column":null}},{"start":{"line":110,"column":12},"end":{"line":117,"column":null}}],"line":102},"15":{"loc":{"start":{"line":105,"column":20},"end":{"line":107,"column":null}},"type":"if","locations":[{"start":{"line":105,"column":20},"end":{"line":107,"column":null}},{"start":{},"end":{}}],"line":105},"16":{"loc":{"start":{"line":110,"column":12},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":110,"column":12},"end":{"line":117,"column":null}},{"start":{},"end":{}}],"line":110},"17":{"loc":{"start":{"line":112,"column":20},"end":{"line":114,"column":null}},"type":"if","locations":[{"start":{"line":112,"column":20},"end":{"line":114,"column":null}},{"start":{},"end":{}}],"line":112},"18":{"loc":{"start":{"line":112,"column":24},"end":{"line":112,"column":74}},"type":"binary-expr","locations":[{"start":{"line":112,"column":24},"end":{"line":112,"column":45}},{"start":{"line":112,"column":45},"end":{"line":112,"column":74}}],"line":112},"19":{"loc":{"start":{"line":126,"column":8},"end":{"line":128,"column":null}},"type":"if","locations":[{"start":{"line":126,"column":8},"end":{"line":128,"column":null}},{"start":{},"end":{}}],"line":126},"20":{"loc":{"start":{"line":134,"column":54},"end":{"line":134,"column":91}},"type":"cond-expr","locations":[{"start":{"line":134,"column":75},"end":{"line":134,"column":89}},{"start":{"line":134,"column":89},"end":{"line":134,"column":91}}],"line":134},"21":{"loc":{"start":{"line":146,"column":54},"end":{"line":146,"column":91}},"type":"cond-expr","locations":[{"start":{"line":146,"column":75},"end":{"line":146,"column":89}},{"start":{"line":146,"column":89},"end":{"line":146,"column":91}}],"line":146},"22":{"loc":{"start":{"line":160,"column":20},"end":{"line":165,"column":null}},"type":"if","locations":[{"start":{"line":160,"column":20},"end":{"line":165,"column":null}},{"start":{},"end":{}}],"line":160},"23":{"loc":{"start":{"line":161,"column":24},"end":{"line":163,"column":null}},"type":"if","locations":[{"start":{"line":161,"column":24},"end":{"line":163,"column":null}},{"start":{},"end":{}}],"line":161},"24":{"loc":{"start":{"line":161,"column":28},"end":{"line":161,"column":97}},"type":"binary-expr","locations":[{"start":{"line":161,"column":28},"end":{"line":161,"column":52}},{"start":{"line":161,"column":52},"end":{"line":161,"column":68}},{"start":{"line":161,"column":68},"end":{"line":161,"column":79}},{"start":{"line":161,"column":79},"end":{"line":161,"column":97}}],"line":161},"25":{"loc":{"start":{"line":168,"column":20},"end":{"line":176,"column":null}},"type":"if","locations":[{"start":{"line":168,"column":20},"end":{"line":176,"column":null}},{"start":{},"end":{}}],"line":168},"26":{"loc":{"start":{"line":168,"column":24},"end":{"line":168,"column":83}},"type":"binary-expr","locations":[{"start":{"line":168,"column":24},"end":{"line":168,"column":49}},{"start":{"line":168,"column":49},"end":{"line":168,"column":83}}],"line":168},"27":{"loc":{"start":{"line":170,"column":24},"end":{"line":175,"column":null}},"type":"if","locations":[{"start":{"line":170,"column":24},"end":{"line":175,"column":null}},{"start":{},"end":{}}],"line":170},"28":{"loc":{"start":{"line":170,"column":28},"end":{"line":170,"column":81}},"type":"binary-expr","locations":[{"start":{"line":170,"column":28},"end":{"line":170,"column":45}},{"start":{"line":170,"column":45},"end":{"line":170,"column":59}},{"start":{"line":170,"column":59},"end":{"line":170,"column":81}}],"line":170},"29":{"loc":{"start":{"line":172,"column":28},"end":{"line":174,"column":null}},"type":"if","locations":[{"start":{"line":172,"column":28},"end":{"line":174,"column":null}},{"start":{},"end":{}}],"line":172},"30":{"loc":{"start":{"line":184,"column":12},"end":{"line":184,"column":null}},"type":"if","locations":[{"start":{"line":184,"column":12},"end":{"line":184,"column":null}},{"start":{},"end":{}}],"line":184},"31":{"loc":{"start":{"line":188,"column":8},"end":{"line":188,"column":null}},"type":"if","locations":[{"start":{"line":188,"column":8},"end":{"line":188,"column":null}},{"start":{},"end":{}}],"line":188},"32":{"loc":{"start":{"line":193,"column":4},"end":{"line":193,"column":null}},"type":"if","locations":[{"start":{"line":193,"column":4},"end":{"line":193,"column":null}},{"start":{},"end":{}}],"line":193},"33":{"loc":{"start":{"line":194,"column":4},"end":{"line":194,"column":null}},"type":"if","locations":[{"start":{"line":194,"column":4},"end":{"line":194,"column":null}},{"start":{},"end":{}}],"line":194},"34":{"loc":{"start":{"line":199,"column":13},"end":{"line":219,"column":null}},"type":"cond-expr","locations":[{"start":{"line":200,"column":16},"end":{"line":200,"column":null}},{"start":{"line":202,"column":16},"end":{"line":219,"column":null}}],"line":199},"35":{"loc":{"start":{"line":208,"column":39},"end":{"line":208,"column":null}},"type":"cond-expr","locations":[{"start":{"line":208,"column":65},"end":{"line":208,"column":93}},{"start":{"line":208,"column":93},"end":{"line":208,"column":null}}],"line":208},"36":{"loc":{"start":{"line":214,"column":21},"end":{"line":217,"column":null}},"type":"binary-expr","locations":[{"start":{"line":214,"column":21},"end":{"line":214,"column":null}},{"start":{"line":215,"column":24},"end":{"line":217,"column":null}}],"line":214},"37":{"loc":{"start":{"line":216,"column":29},"end":{"line":216,"column":null}},"type":"cond-expr","locations":[{"start":{"line":216,"column":43},"end":{"line":216,"column":63}},{"start":{"line":216,"column":63},"end":{"line":216,"column":null}}],"line":216}},"s":{"0":27,"1":27,"2":27,"3":27,"4":27,"5":27,"6":27,"7":27,"8":27,"9":8,"10":1,"11":7,"12":7,"13":8,"14":8,"15":8,"16":8,"17":2,"18":6,"19":1,"20":8,"21":1,"22":8,"23":0,"24":8,"25":0,"26":0,"27":8,"28":8,"29":8,"30":8,"31":8,"32":7,"33":0,"34":7,"35":6,"36":1,"37":1,"38":5,"39":6,"40":6,"41":6,"42":1,"43":1,"44":1,"45":27,"46":7,"47":27,"48":27,"49":23,"50":3,"51":0,"52":3,"53":2,"54":2,"55":2,"56":2,"57":2,"58":1,"59":2,"60":2,"61":1,"62":0,"63":0,"64":0,"65":0,"66":0,"67":1,"68":1,"69":1,"70":1,"71":1,"72":23,"73":23,"74":23,"75":27,"76":2,"77":2,"78":2,"79":27,"80":2,"81":2,"82":2,"83":3,"84":2,"85":0,"86":27,"87":1,"88":1,"89":1,"90":2,"91":1,"92":0,"93":27,"94":24,"95":2,"96":2,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":24,"107":15,"108":15,"109":15,"110":24,"111":24,"112":10,"113":24,"114":24,"115":27,"116":13,"117":14,"118":14,"119":13,"120":21,"121":0},"f":{"0":27,"1":8,"2":7,"3":6,"4":1,"5":1,"6":7,"7":23,"8":3,"9":2,"10":0,"11":1,"12":23,"13":2,"14":2,"15":2,"16":3,"17":0,"18":1,"19":1,"20":2,"21":0,"22":24,"23":2,"24":2,"25":15,"26":24,"27":21,"28":0},"b":{"0":[27,27],"1":[1,7],"2":[2,6],"3":[1,5],"4":[1,7],"5":[0,8],"6":[0,8],"7":[8,0],"8":[0,7],"9":[1,5],"10":[0,3],"11":[2,1],"12":[2,0],"13":[1,1],"14":[0,1],"15":[0,0],"16":[1,0],"17":[1,0],"18":[1,1],"19":[2,0],"20":[2,1],"21":[1,1],"22":[1,1],"23":[1,0],"24":[1,1,1,1],"25":[1,0],"26":[1,1],"27":[1,0],"28":[1,1,1],"29":[1,0],"30":[15,0],"31":[10,14],"32":[13,14],"33":[1,13],"34":[0,13],"35":[5,16],"36":[13,13],"37":[1,12]},"meta":{"lastBranch":38,"lastFunction":29,"lastStatement":122,"seen":{"f:7:24:7:36":0,"s:8:28:8:Infinity":0,"s:9:23:9:Infinity":1,"s:10:21:10:Infinity":2,"b:10:21:10:51:10:51:10:Infinity":0,"s:12:26:12:Infinity":3,"s:13:30:13:Infinity":4,"s:14:38:14:Infinity":5,"s:15:30:15:Infinity":6,"s:16:26:16:Infinity":7,"s:18:23:78:Infinity":8,"f:18:23:18:24":1,"b:19:8:24:Infinity:21:15:24:Infinity":1,"s:19:8:24:Infinity":9,"s:20:12:20:Infinity":10,"s:22:12:22:Infinity":11,"s:23:12:23:Infinity":12,"s:25:8:25:Infinity":13,"s:27:18:27:Infinity":14,"s:28:23:28:Infinity":15,"b:30:8:34:Infinity:32:8:34:Infinity":2,"s:30:8:34:Infinity":16,"s:31:12:31:Infinity":17,"b:32:8:34:Infinity:undefined:undefined:undefined:undefined":3,"s:32:8:34:Infinity":18,"s:33:12:33:Infinity":19,"b:36:8:38:Infinity:undefined:undefined:undefined:undefined":4,"s:36:8:38:Infinity":20,"s:37:12:37:Infinity":21,"b:41:8:49:Infinity:43:8:49:Infinity":5,"s:41:8:49:Infinity":22,"s:42:12:42:Infinity":23,"b:43:8:49:Infinity:46:15:49:Infinity":6,"s:43:8:49:Infinity":24,"s:44:12:44:Infinity":25,"s:45:12:45:Infinity":26,"s:48:12:48:Infinity":27,"s:51:28:51:Infinity":28,"b:52:8:54:Infinity:undefined:undefined:undefined:undefined":7,"s:52:8:54:Infinity":29,"s:53:12:53:Infinity":30,"s:56:8:77:Infinity":31,"f:57:18:57:19":2,"b:58:16:60:Infinity:undefined:undefined:undefined:undefined":8,"s:58:16:60:Infinity":32,"s:59:20:59:Infinity":33,"s:61:16:61:Infinity":34,"f:63:18:63:19":3,"b:64:16:68:Infinity:66:23:68:Infinity":9,"s:64:16:68:Infinity":35,"s:65:20:65:Infinity":36,"f:65:29:65:30":4,"s:65:39:65:57":37,"s:67:20:67:Infinity":38,"s:69:16:69:Infinity":39,"s:70:16:70:Infinity":40,"s:71:16:71:Infinity":41,"f:73:19:73:20":5,"s:74:16:74:Infinity":42,"s:75:16:75:Infinity":43,"s:76:16:76:Infinity":44,"s:80:4:82:Infinity":45,"f:80:14:80:20":6,"s:81:8:81:Infinity":46,"s:84:42:84:Infinity":47,"s:86:4:122:Infinity":48,"f:86:14:86:20":7,"s:87:30:118:Infinity":49,"f:87:30:87:31":8,"b:88:12:88:Infinity:undefined:undefined:undefined:undefined":10,"s:88:12:88:Infinity":50,"s:88:36:88:Infinity":51,"b:90:12:117:Infinity:102:12:117:Infinity":11,"s:90:12:117:Infinity":52,"s:91:16:101:Infinity":53,"f:91:33:91:34":9,"s:92:38:92:Infinity":54,"b:93:20:99:Infinity:undefined:undefined:undefined:undefined":12,"s:93:20:99:Infinity":55,"s:94:37:94:Infinity":56,"b:95:24:97:Infinity:undefined:undefined:undefined:undefined":13,"s:95:24:97:Infinity":57,"s:96:28:96:Infinity":58,"s:98:24:98:Infinity":59,"s:100:20:100:Infinity":60,"b:102:12:117:Infinity:110:12:117:Infinity":14,"s:102:12:117:Infinity":61,"s:103:16:109:Infinity":62,"f:103:33:103:34":10,"s:104:38:104:Infinity":63,"b:105:20:107:Infinity:undefined:undefined:undefined:undefined":15,"s:105:20:107:Infinity":64,"s:106:24:106:Infinity":65,"s:108:20:108:Infinity":66,"b:110:12:117:Infinity:undefined:undefined:undefined:undefined":16,"s:110:12:117:Infinity":67,"s:111:16:116:Infinity":68,"f:111:33:111:34":11,"b:112:20:114:Infinity:undefined:undefined:undefined:undefined":17,"s:112:20:114:Infinity":69,"b:112:24:112:45:112:45:112:74":18,"s:113:24:113:Infinity":70,"s:115:20:115:Infinity":71,"s:120:8:120:Infinity":72,"s:121:8:121:Infinity":73,"f:121:15:121:21":12,"s:121:21:121:Infinity":74,"s:124:25:129:Infinity":75,"f:124:25:124:26":13,"s:125:24:125:Infinity":76,"b:126:8:128:Infinity:undefined:undefined:undefined:undefined":19,"s:126:8:128:Infinity":77,"s:127:12:127:Infinity":78,"s:131:23:141:Infinity":79,"f:131:23:131:24":14,"s:132:28:132:Infinity":80,"s:134:8:134:Infinity":81,"f:134:17:134:18":15,"s:134:32:134:92":82,"f:134:46:134:47":16,"s:134:54:134:91":83,"b:134:75:134:89:134:89:134:91":20,"s:136:8:140:Infinity":84,"f:140:17:140:18":17,"s:140:26:140:67":85,"s:143:23:153:Infinity":86,"f:143:23:143:24":18,"s:144:28:144:Infinity":87,"s:146:8:146:Infinity":88,"f:146:17:146:18":19,"s:146:32:146:92":89,"f:146:46:146:47":20,"s:146:54:146:91":90,"b:146:75:146:89:146:89:146:91":21,"s:148:8:152:Infinity":91,"f:152:17:152:18":21,"s:152:26:152:69":92,"s:155:4:191:Infinity":93,"f:155:14:155:20":22,"s:156:25:180:Infinity":94,"f:157:12:157:13":23,"s:158:16:177:Infinity":95,"f:158:32:158:33":24,"b:160:20:165:Infinity:undefined:undefined:undefined:undefined":22,"s:160:20:165:Infinity":96,"b:161:24:163:Infinity:undefined:undefined:undefined:undefined":23,"s:161:24:163:Infinity":97,"b:161:28:161:52:161:52:161:68:161:68:161:79:161:79:161:97":24,"s:162:28:162:Infinity":98,"s:164:24:164:Infinity":99,"b:168:20:176:Infinity:undefined:undefined:undefined:undefined":25,"s:168:20:176:Infinity":100,"b:168:24:168:49:168:49:168:83":26,"s:169:38:169:Infinity":101,"b:170:24:175:Infinity:undefined:undefined:undefined:undefined":27,"s:170:24:175:Infinity":102,"b:170:28:170:45:170:45:170:59:170:59:170:81":28,"s:171:41:171:Infinity":103,"b:172:28:174:Infinity:undefined:undefined:undefined:undefined":29,"s:172:28:174:Infinity":104,"s:173:32:173:Infinity":105,"s:182:8:185:Infinity":106,"f:182:22:182:23":25,"s:183:23:183:Infinity":107,"b:184:12:184:Infinity:undefined:undefined:undefined:undefined":30,"s:184:12:184:Infinity":108,"s:184:20:184:Infinity":109,"s:187:25:187:Infinity":110,"b:188:8:188:Infinity:undefined:undefined:undefined:undefined":31,"s:188:8:188:Infinity":111,"s:188:22:188:Infinity":112,"s:190:8:190:Infinity":113,"f:190:15:190:21":26,"s:190:21:190:Infinity":114,"b:193:4:193:Infinity:undefined:undefined:undefined:undefined":32,"s:193:4:193:Infinity":115,"s:193:17:193:Infinity":116,"b:194:4:194:Infinity:undefined:undefined:undefined:undefined":33,"s:194:4:194:Infinity":117,"s:194:15:194:Infinity":118,"s:197:4:221:Infinity":119,"b:200:16:200:Infinity:202:16:219:Infinity":34,"f:203:31:203:32":27,"s:204:24:212:Infinity":120,"b:208:65:208:93:208:93:208:Infinity":35,"f:209:37:209:43":28,"s:209:43:209:Infinity":121,"b:214:21:214:Infinity:215:24:217:Infinity":36,"b:216:43:216:63:216:63:216:Infinity":37}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx","statementMap":{"0":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"1":{"start":{"line":8,"column":24},"end":{"line":8,"column":null}},"2":{"start":{"line":9,"column":30},"end":{"line":9,"column":null}},"3":{"start":{"line":10,"column":26},"end":{"line":10,"column":null}},"4":{"start":{"line":12,"column":4},"end":{"line":32,"column":null}},"5":{"start":{"line":13,"column":8},"end":{"line":31,"column":null}},"6":{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},"7":{"start":{"line":15,"column":29},"end":{"line":15,"column":null}},"8":{"start":{"line":16,"column":16},"end":{"line":16,"column":null}},"9":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"10":{"start":{"line":19,"column":29},"end":{"line":19,"column":null}},"11":{"start":{"line":20,"column":16},"end":{"line":20,"column":null}},"12":{"start":{"line":24,"column":16},"end":{"line":24,"column":null}},"13":{"start":{"line":25,"column":16},"end":{"line":25,"column":null}},"14":{"start":{"line":26,"column":16},"end":{"line":26,"column":null}},"15":{"start":{"line":29,"column":16},"end":{"line":29,"column":null}},"16":{"start":{"line":30,"column":16},"end":{"line":30,"column":null}},"17":{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},"18":{"start":{"line":34,"column":17},"end":{"line":34,"column":null}},"19":{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},"20":{"start":{"line":35,"column":15},"end":{"line":35,"column":null}},"21":{"start":{"line":37,"column":4},"end":{"line":78,"column":null}},"22":{"start":{"line":53,"column":28},"end":{"line":58,"column":null}},"23":{"start":{"line":69,"column":28},"end":{"line":73,"column":null}}},"fnMap":{"0":{"name":"FeedList","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":35}},"loc":{"start":{"line":6,"column":35},"end":{"line":80,"column":null}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":14},"end":{"line":12,"column":20}},"loc":{"start":{"line":12,"column":20},"end":{"line":32,"column":7}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":37},"end":{"line":14,"column":44}},"loc":{"start":{"line":14,"column":44},"end":{"line":17,"column":13}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":35},"end":{"line":18,"column":42}},"loc":{"start":{"line":18,"column":42},"end":{"line":21,"column":13}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":18},"end":{"line":23,"column":19}},"loc":{"start":{"line":23,"column":45},"end":{"line":27,"column":13}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":28,"column":19},"end":{"line":28,"column":20}},"loc":{"start":{"line":28,"column":28},"end":{"line":31,"column":13}},"line":28},"6":{"name":"(anonymous_6)","decl":{"start":{"line":52,"column":35},"end":{"line":52,"column":36}},"loc":{"start":{"line":53,"column":28},"end":{"line":58,"column":null}},"line":53},"7":{"name":"(anonymous_7)","decl":{"start":{"line":68,"column":34},"end":{"line":68,"column":35}},"loc":{"start":{"line":69,"column":28},"end":{"line":73,"column":null}},"line":69}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},"type":"if","locations":[{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},{"start":{},"end":{}}],"line":15},"1":{"loc":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},{"start":{},"end":{}}],"line":19},"2":{"loc":{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},{"start":{},"end":{}}],"line":34},"3":{"loc":{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},{"start":{},"end":{}}],"line":35},"4":{"loc":{"start":{"line":48,"column":17},"end":{"line":60,"column":null}},"type":"cond-expr","locations":[{"start":{"line":49,"column":20},"end":{"line":49,"column":null}},{"start":{"line":51,"column":20},"end":{"line":60,"column":null}}],"line":48},"5":{"loc":{"start":{"line":55,"column":37},"end":{"line":55,"column":null}},"type":"binary-expr","locations":[{"start":{"line":55,"column":37},"end":{"line":55,"column":51}},{"start":{"line":55,"column":51},"end":{"line":55,"column":null}}],"line":55},"6":{"loc":{"start":{"line":57,"column":33},"end":{"line":57,"column":null}},"type":"binary-expr","locations":[{"start":{"line":57,"column":33},"end":{"line":57,"column":50}},{"start":{"line":57,"column":50},"end":{"line":57,"column":null}}],"line":57},"7":{"loc":{"start":{"line":64,"column":13},"end":{"line":76,"column":null}},"type":"binary-expr","locations":[{"start":{"line":64,"column":13},"end":{"line":64,"column":21}},{"start":{"line":64,"column":21},"end":{"line":64,"column":null}},{"start":{"line":65,"column":16},"end":{"line":76,"column":null}}],"line":64}},"s":{"0":11,"1":11,"2":11,"3":11,"4":11,"5":6,"6":4,"7":0,"8":4,"9":4,"10":0,"11":4,"12":4,"13":4,"14":4,"15":1,"16":1,"17":11,"18":6,"19":5,"20":5,"21":4,"22":3,"23":3},"f":{"0":11,"1":6,"2":4,"3":4,"4":4,"5":1,"6":3,"7":3},"b":{"0":[0,4],"1":[0,4],"2":[6,5],"3":[1,4],"4":[2,2],"5":[3,0],"6":[3,3],"7":[11,4,2]},"meta":{"lastBranch":8,"lastFunction":8,"lastStatement":24,"seen":{"f:6:24:6:35":0,"s:7:26:7:Infinity":0,"s:8:24:8:Infinity":1,"s:9:30:9:Infinity":2,"s:10:26:10:Infinity":3,"s:12:4:32:Infinity":4,"f:12:14:12:20":1,"s:13:8:31:Infinity":5,"f:14:37:14:44":2,"b:15:16:15:Infinity:undefined:undefined:undefined:undefined":0,"s:15:16:15:Infinity":6,"s:15:29:15:Infinity":7,"s:16:16:16:Infinity":8,"f:18:35:18:42":3,"b:19:16:19:Infinity:undefined:undefined:undefined:undefined":1,"s:19:16:19:Infinity":9,"s:19:29:19:Infinity":10,"s:20:16:20:Infinity":11,"f:23:18:23:19":4,"s:24:16:24:Infinity":12,"s:25:16:25:Infinity":13,"s:26:16:26:Infinity":14,"f:28:19:28:20":5,"s:29:16:29:Infinity":15,"s:30:16:30:Infinity":16,"b:34:4:34:Infinity:undefined:undefined:undefined:undefined":2,"s:34:4:34:Infinity":17,"s:34:17:34:Infinity":18,"b:35:4:35:Infinity:undefined:undefined:undefined:undefined":3,"s:35:4:35:Infinity":19,"s:35:15:35:Infinity":20,"s:37:4:78:Infinity":21,"b:49:20:49:Infinity:51:20:60:Infinity":4,"f:52:35:52:36":6,"s:53:28:58:Infinity":22,"b:55:37:55:51:55:51:55:Infinity":5,"b:57:33:57:50:57:50:57:Infinity":6,"b:64:13:64:21:64:21:64:Infinity:65:16:76:Infinity":7,"f:68:34:68:35":7,"s:69:28:73:Infinity":23}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx","statementMap":{"0":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"1":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"2":{"start":{"line":8,"column":10},"end":{"line":8,"column":null}},"3":{"start":{"line":10,"column":25},"end":{"line":33,"column":null}},"4":{"start":{"line":11,"column":8},"end":{"line":11,"column":null}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":null}},"6":{"start":{"line":14,"column":8},"end":{"line":32,"column":null}},"7":{"start":{"line":16,"column":27},"end":{"line":16,"column":null}},"8":{"start":{"line":17,"column":12},"end":{"line":17,"column":null}},"9":{"start":{"line":19,"column":24},"end":{"line":22,"column":null}},"10":{"start":{"line":24,"column":12},"end":{"line":29,"column":null}},"11":{"start":{"line":25,"column":16},"end":{"line":25,"column":null}},"12":{"start":{"line":27,"column":29},"end":{"line":27,"column":null}},"13":{"start":{"line":28,"column":16},"end":{"line":28,"column":null}},"14":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"15":{"start":{"line":35,"column":4},"end":{"line":52,"column":null}},"16":{"start":{"line":45,"column":41},"end":{"line":45,"column":null}}},"fnMap":{"0":{"name":"Login","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":32},"end":{"line":54,"column":null}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":25},"end":{"line":10,"column":32}},"loc":{"start":{"line":10,"column":49},"end":{"line":33,"column":null}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":45,"column":34},"end":{"line":45,"column":35}},"loc":{"start":{"line":45,"column":41},"end":{"line":45,"column":null}},"line":45}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":12},"end":{"line":29,"column":null}},"type":"if","locations":[{"start":{"line":24,"column":12},"end":{"line":29,"column":null}},{"start":{"line":26,"column":19},"end":{"line":29,"column":null}}],"line":24},"1":{"loc":{"start":{"line":28,"column":25},"end":{"line":28,"column":55}},"type":"binary-expr","locations":[{"start":{"line":28,"column":25},"end":{"line":28,"column":41}},{"start":{"line":28,"column":41},"end":{"line":28,"column":55}}],"line":28},"2":{"loc":{"start":{"line":49,"column":17},"end":{"line":49,"column":null}},"type":"binary-expr","locations":[{"start":{"line":49,"column":17},"end":{"line":49,"column":26}},{"start":{"line":49,"column":26},"end":{"line":49,"column":null}}],"line":49}},"s":{"0":14,"1":14,"2":14,"3":14,"4":3,"5":3,"6":3,"7":3,"8":3,"9":3,"10":2,"11":1,"12":1,"13":1,"14":1,"15":14,"16":3},"f":{"0":14,"1":3,"2":3},"b":{"0":[1,1],"1":[1,0],"2":[14,2]},"meta":{"lastBranch":3,"lastFunction":3,"lastStatement":17,"seen":{"f:5:24:5:32":0,"s:6:32:6:Infinity":0,"s:7:26:7:Infinity":1,"s:8:10:8:Infinity":2,"s:10:25:33:Infinity":3,"f:10:25:10:32":1,"s:11:8:11:Infinity":4,"s:12:8:12:Infinity":5,"s:14:8:32:Infinity":6,"s:16:27:16:Infinity":7,"s:17:12:17:Infinity":8,"s:19:24:22:Infinity":9,"b:24:12:29:Infinity:26:19:29:Infinity":0,"s:24:12:29:Infinity":10,"s:25:16:25:Infinity":11,"s:27:29:27:Infinity":12,"s:28:16:28:Infinity":13,"b:28:25:28:41:28:41:28:55":1,"s:31:12:31:Infinity":14,"s:35:4:52:Infinity":15,"f:45:34:45:35":2,"s:45:41:45:Infinity":16,"b:49:17:49:26:49:26:49:Infinity":2}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}}
-,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx","statementMap":{"0":{"start":{"line":6,"column":26},"end":{"line":6,"column":null}},"1":{"start":{"line":7,"column":36},"end":{"line":7,"column":null}},"2":{"start":{"line":8,"column":30},"end":{"line":8,"column":null}},"3":{"start":{"line":9,"column":26},"end":{"line":9,"column":null}},"4":{"start":{"line":11,"column":4},"end":{"line":13,"column":null}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":null}},"6":{"start":{"line":15,"column":23},"end":{"line":30,"column":null}},"7":{"start":{"line":16,"column":8},"end":{"line":16,"column":null}},"8":{"start":{"line":17,"column":8},"end":{"line":29,"column":null}},"9":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"10":{"start":{"line":19,"column":29},"end":{"line":19,"column":null}},"11":{"start":{"line":20,"column":16},"end":{"line":20,"column":null}},"12":{"start":{"line":23,"column":16},"end":{"line":23,"column":null}},"13":{"start":{"line":24,"column":16},"end":{"line":24,"column":null}},"14":{"start":{"line":27,"column":16},"end":{"line":27,"column":null}},"15":{"start":{"line":28,"column":16},"end":{"line":28,"column":null}},"16":{"start":{"line":32,"column":26},"end":{"line":54,"column":null}},"17":{"start":{"line":33,"column":8},"end":{"line":33,"column":null}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":null}},"19":{"start":{"line":34,"column":25},"end":{"line":34,"column":null}},"20":{"start":{"line":36,"column":8},"end":{"line":36,"column":null}},"21":{"start":{"line":37,"column":8},"end":{"line":53,"column":null}},"22":{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},"23":{"start":{"line":43,"column":29},"end":{"line":43,"column":null}},"24":{"start":{"line":44,"column":16},"end":{"line":44,"column":null}},"25":{"start":{"line":47,"column":16},"end":{"line":47,"column":null}},"26":{"start":{"line":48,"column":16},"end":{"line":48,"column":null}},"27":{"start":{"line":51,"column":16},"end":{"line":51,"column":null}},"28":{"start":{"line":52,"column":16},"end":{"line":52,"column":null}},"29":{"start":{"line":56,"column":29},"end":{"line":72,"column":null}},"30":{"start":{"line":57,"column":8},"end":{"line":57,"column":null}},"31":{"start":{"line":57,"column":79},"end":{"line":57,"column":null}},"32":{"start":{"line":59,"column":8},"end":{"line":59,"column":null}},"33":{"start":{"line":60,"column":8},"end":{"line":71,"column":null}},"34":{"start":{"line":64,"column":16},"end":{"line":64,"column":null}},"35":{"start":{"line":64,"column":29},"end":{"line":64,"column":null}},"36":{"start":{"line":65,"column":16},"end":{"line":65,"column":null}},"37":{"start":{"line":65,"column":45},"end":{"line":65,"column":57}},"38":{"start":{"line":66,"column":16},"end":{"line":66,"column":null}},"39":{"start":{"line":69,"column":16},"end":{"line":69,"column":null}},"40":{"start":{"line":70,"column":16},"end":{"line":70,"column":null}},"41":{"start":{"line":74,"column":4},"end":{"line":119,"column":null}},"42":{"start":{"line":84,"column":41},"end":{"line":84,"column":null}},"43":{"start":{"line":102,"column":24},"end":{"line":115,"column":null}},"44":{"start":{"line":108,"column":47},"end":{"line":108,"column":null}}},"fnMap":{"0":{"name":"Settings","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":35}},"loc":{"start":{"line":5,"column":35},"end":{"line":121,"column":null}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":14},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":20},"end":{"line":13,"column":7}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":23},"end":{"line":15,"column":29}},"loc":{"start":{"line":15,"column":29},"end":{"line":30,"column":null}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":18},"end":{"line":18,"column":19}},"loc":{"start":{"line":18,"column":27},"end":{"line":21,"column":13}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":18},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":28},"end":{"line":25,"column":13}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":19},"end":{"line":26,"column":20}},"loc":{"start":{"line":26,"column":28},"end":{"line":29,"column":13}},"line":26},"6":{"name":"(anonymous_6)","decl":{"start":{"line":32,"column":26},"end":{"line":32,"column":27}},"loc":{"start":{"line":32,"column":50},"end":{"line":54,"column":null}},"line":32},"7":{"name":"(anonymous_7)","decl":{"start":{"line":42,"column":18},"end":{"line":42,"column":19}},"loc":{"start":{"line":42,"column":27},"end":{"line":45,"column":13}},"line":42},"8":{"name":"(anonymous_8)","decl":{"start":{"line":46,"column":18},"end":{"line":46,"column":24}},"loc":{"start":{"line":46,"column":24},"end":{"line":49,"column":13}},"line":46},"9":{"name":"(anonymous_9)","decl":{"start":{"line":50,"column":19},"end":{"line":50,"column":20}},"loc":{"start":{"line":50,"column":28},"end":{"line":53,"column":13}},"line":50},"10":{"name":"(anonymous_10)","decl":{"start":{"line":56,"column":29},"end":{"line":56,"column":30}},"loc":{"start":{"line":56,"column":45},"end":{"line":72,"column":null}},"line":56},"11":{"name":"(anonymous_11)","decl":{"start":{"line":63,"column":18},"end":{"line":63,"column":19}},"loc":{"start":{"line":63,"column":27},"end":{"line":67,"column":13}},"line":63},"12":{"name":"(anonymous_12)","decl":{"start":{"line":65,"column":38},"end":{"line":65,"column":39}},"loc":{"start":{"line":65,"column":45},"end":{"line":65,"column":57}},"line":65},"13":{"name":"(anonymous_13)","decl":{"start":{"line":68,"column":19},"end":{"line":68,"column":20}},"loc":{"start":{"line":68,"column":28},"end":{"line":71,"column":13}},"line":68},"14":{"name":"(anonymous_14)","decl":{"start":{"line":84,"column":34},"end":{"line":84,"column":35}},"loc":{"start":{"line":84,"column":41},"end":{"line":84,"column":null}},"line":84},"15":{"name":"(anonymous_15)","decl":{"start":{"line":101,"column":31},"end":{"line":101,"column":32}},"loc":{"start":{"line":102,"column":24},"end":{"line":115,"column":null}},"line":102},"16":{"name":"(anonymous_16)","decl":{"start":{"line":108,"column":41},"end":{"line":108,"column":47}},"loc":{"start":{"line":108,"column":47},"end":{"line":108,"column":null}},"line":108}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},{"start":{},"end":{}}],"line":19},"1":{"loc":{"start":{"line":34,"column":8},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":34,"column":8},"end":{"line":34,"column":null}},{"start":{},"end":{}}],"line":34},"2":{"loc":{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},"type":"if","locations":[{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},{"start":{},"end":{}}],"line":43},"3":{"loc":{"start":{"line":57,"column":8},"end":{"line":57,"column":null}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":null}},{"start":{},"end":{}}],"line":57},"4":{"loc":{"start":{"line":64,"column":16},"end":{"line":64,"column":null}},"type":"if","locations":[{"start":{"line":64,"column":16},"end":{"line":64,"column":null}},{"start":{},"end":{}}],"line":64},"5":{"loc":{"start":{"line":94,"column":17},"end":{"line":94,"column":null}},"type":"binary-expr","locations":[{"start":{"line":94,"column":17},"end":{"line":94,"column":26}},{"start":{"line":94,"column":26},"end":{"line":94,"column":null}}],"line":94},"6":{"loc":{"start":{"line":99,"column":17},"end":{"line":99,"column":null}},"type":"binary-expr","locations":[{"start":{"line":99,"column":17},"end":{"line":99,"column":28}},{"start":{"line":99,"column":28},"end":{"line":99,"column":null}}],"line":99},"7":{"loc":{"start":{"line":104,"column":62},"end":{"line":104,"column":89}},"type":"binary-expr","locations":[{"start":{"line":104,"column":62},"end":{"line":104,"column":76}},{"start":{"line":104,"column":76},"end":{"line":104,"column":89}}],"line":104}},"s":{"0":14,"1":14,"2":14,"3":14,"4":14,"5":3,"6":14,"7":4,"8":4,"9":4,"10":0,"11":4,"12":4,"13":4,"14":0,"15":0,"16":14,"17":1,"18":1,"19":0,"20":1,"21":1,"22":1,"23":0,"24":1,"25":1,"26":1,"27":0,"28":0,"29":14,"30":1,"31":0,"32":1,"33":1,"34":1,"35":0,"36":1,"37":1,"38":1,"39":0,"40":0,"41":14,"42":1,"43":5,"44":1},"f":{"0":14,"1":3,"2":4,"3":4,"4":4,"5":0,"6":1,"7":1,"8":1,"9":0,"10":1,"11":1,"12":1,"13":0,"14":1,"15":5,"16":1},"b":{"0":[0,4],"1":[0,1],"2":[0,1],"3":[0,1],"4":[0,1],"5":[14,0],"6":[14,5],"7":[5,0]},"meta":{"lastBranch":8,"lastFunction":17,"lastStatement":45,"seen":{"f:5:24:5:35":0,"s:6:26:6:Infinity":0,"s:7:36:7:Infinity":1,"s:8:30:8:Infinity":2,"s:9:26:9:Infinity":3,"s:11:4:13:Infinity":4,"f:11:14:11:20":1,"s:12:8:12:Infinity":5,"s:15:23:30:Infinity":6,"f:15:23:15:29":2,"s:16:8:16:Infinity":7,"s:17:8:29:Infinity":8,"f:18:18:18:19":3,"b:19:16:19:Infinity:undefined:undefined:undefined:undefined":0,"s:19:16:19:Infinity":9,"s:19:29:19:Infinity":10,"s:20:16:20:Infinity":11,"f:22:18:22:19":4,"s:23:16:23:Infinity":12,"s:24:16:24:Infinity":13,"f:26:19:26:20":5,"s:27:16:27:Infinity":14,"s:28:16:28:Infinity":15,"s:32:26:54:Infinity":16,"f:32:26:32:27":6,"s:33:8:33:Infinity":17,"b:34:8:34:Infinity:undefined:undefined:undefined:undefined":1,"s:34:8:34:Infinity":18,"s:34:25:34:Infinity":19,"s:36:8:36:Infinity":20,"s:37:8:53:Infinity":21,"f:42:18:42:19":7,"b:43:16:43:Infinity:undefined:undefined:undefined:undefined":2,"s:43:16:43:Infinity":22,"s:43:29:43:Infinity":23,"s:44:16:44:Infinity":24,"f:46:18:46:24":8,"s:47:16:47:Infinity":25,"s:48:16:48:Infinity":26,"f:50:19:50:20":9,"s:51:16:51:Infinity":27,"s:52:16:52:Infinity":28,"s:56:29:72:Infinity":29,"f:56:29:56:30":10,"b:57:8:57:Infinity:undefined:undefined:undefined:undefined":3,"s:57:8:57:Infinity":30,"s:57:79:57:Infinity":31,"s:59:8:59:Infinity":32,"s:60:8:71:Infinity":33,"f:63:18:63:19":11,"b:64:16:64:Infinity:undefined:undefined:undefined:undefined":4,"s:64:16:64:Infinity":34,"s:64:29:64:Infinity":35,"s:65:16:65:Infinity":36,"f:65:38:65:39":12,"s:65:45:65:57":37,"s:66:16:66:Infinity":38,"f:68:19:68:20":13,"s:69:16:69:Infinity":39,"s:70:16:70:Infinity":40,"s:74:4:119:Infinity":41,"f:84:34:84:35":14,"s:84:41:84:Infinity":42,"b:94:17:94:26:94:26:94:Infinity":5,"b:99:17:99:28:99:28:99:Infinity":6,"f:101:31:101:32":15,"s:102:24:115:Infinity":43,"b:104:62:104:76:104:76:104:89":7,"f:108:41:108:47":16,"s:108:47:108:Infinity":44}}}
+{
+ "/Users/adam/workspace/vibecode/neko/frontend/src/App.css": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/App.css",
+ "statementMap": {},
+ "fnMap": {},
+ "branchMap": {},
+ "s": {},
+ "f": {},
+ "b": {},
+ "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx",
+ "statementMap": {
+ "0": { "start": { "line": 8, "column": 22 }, "end": { "line": 8, "column": null } },
+ "1": { "start": { "line": 9, "column": 8 }, "end": { "line": 9, "column": null } },
+ "2": { "start": { "line": 11, "column": 2 }, "end": { "line": 21, "column": null } },
+ "3": { "start": { "line": 12, "column": 4 }, "end": { "line": 20, "column": null } },
+ "4": { "start": { "line": 14, "column": 8 }, "end": { "line": 18, "column": null } },
+ "5": { "start": { "line": 15, "column": 10 }, "end": { "line": 15, "column": null } },
+ "6": { "start": { "line": 17, "column": 10 }, "end": { "line": 17, "column": null } },
+ "7": { "start": { "line": 20, "column": 19 }, "end": { "line": 20, "column": 33 } },
+ "8": { "start": { "line": 23, "column": 2 }, "end": { "line": 25, "column": null } },
+ "9": { "start": { "line": 24, "column": 4 }, "end": { "line": 24, "column": null } },
+ "10": { "start": { "line": 27, "column": 2 }, "end": { "line": 29, "column": null } },
+ "11": { "start": { "line": 28, "column": 4 }, "end": { "line": 28, "column": null } },
+ "12": { "start": { "line": 31, "column": 2 }, "end": { "line": 31, "column": null } },
+ "13": { "start": { "line": 39, "column": 8 }, "end": { "line": 39, "column": null } },
+ "14": { "start": { "line": 40, "column": 2 }, "end": { "line": 68, "column": null } },
+ "15": { "start": { "line": 45, "column": 33 }, "end": { "line": 45, "column": 56 } },
+ "16": { "start": { "line": 48, "column": 12 }, "end": { "line": 49, "column": null } },
+ "17": { "start": { "line": 49, "column": 26 }, "end": { "line": 49, "column": 60 } },
+ "18": { "start": { "line": 73, "column": 2 }, "end": { "line": 86, "column": null } }
+ },
+ "fnMap": {
+ "0": {
+ "name": "RequireAuth",
+ "decl": { "start": { "line": 7, "column": 9 }, "end": { "line": 7, "column": 21 } },
+ "loc": { "start": { "line": 7, "column": 69 }, "end": { "line": 32, "column": null } },
+ "line": 7
+ },
+ "1": {
+ "name": "(anonymous_1)",
+ "decl": { "start": { "line": 11, "column": 12 }, "end": { "line": 11, "column": 18 } },
+ "loc": { "start": { "line": 11, "column": 18 }, "end": { "line": 21, "column": 5 } },
+ "line": 11
+ },
+ "2": {
+ "name": "(anonymous_2)",
+ "decl": { "start": { "line": 13, "column": 12 }, "end": { "line": 13, "column": 13 } },
+ "loc": { "start": { "line": 13, "column": 21 }, "end": { "line": 19, "column": 7 } },
+ "line": 13
+ },
+ "3": {
+ "name": "(anonymous_3)",
+ "decl": { "start": { "line": 20, "column": 13 }, "end": { "line": 20, "column": 19 } },
+ "loc": { "start": { "line": 20, "column": 19 }, "end": { "line": 20, "column": 33 } },
+ "line": 20
+ },
+ "4": {
+ "name": "Dashboard",
+ "decl": { "start": { "line": 38, "column": 9 }, "end": { "line": 38, "column": 21 } },
+ "loc": { "start": { "line": 38, "column": 21 }, "end": { "line": 70, "column": null } },
+ "line": 38
+ },
+ "5": {
+ "name": "(anonymous_5)",
+ "decl": { "start": { "line": 45, "column": 27 }, "end": { "line": 45, "column": 33 } },
+ "loc": { "start": { "line": 45, "column": 33 }, "end": { "line": 45, "column": 56 } },
+ "line": 45
+ },
+ "6": {
+ "name": "(anonymous_6)",
+ "decl": { "start": { "line": 47, "column": 27 }, "end": { "line": 47, "column": 33 } },
+ "loc": { "start": { "line": 47, "column": 33 }, "end": { "line": 50, "column": 13 } },
+ "line": 47
+ },
+ "7": {
+ "name": "(anonymous_7)",
+ "decl": { "start": { "line": 49, "column": 20 }, "end": { "line": 49, "column": 26 } },
+ "loc": { "start": { "line": 49, "column": 26 }, "end": { "line": 49, "column": 60 } },
+ "line": 49
+ },
+ "8": {
+ "name": "App",
+ "decl": { "start": { "line": 72, "column": 9 }, "end": { "line": 72, "column": 15 } },
+ "loc": { "start": { "line": 72, "column": 15 }, "end": { "line": 88, "column": null } },
+ "line": 72
+ }
+ },
+ "branchMap": {
+ "0": {
+ "loc": { "start": { "line": 14, "column": 8 }, "end": { "line": 18, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 14, "column": 8 }, "end": { "line": 18, "column": null } },
+ { "start": { "line": 16, "column": 15 }, "end": { "line": 18, "column": null } }
+ ],
+ "line": 14
+ },
+ "1": {
+ "loc": { "start": { "line": 23, "column": 2 }, "end": { "line": 25, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 23, "column": 2 }, "end": { "line": 25, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 23
+ },
+ "2": {
+ "loc": { "start": { "line": 27, "column": 2 }, "end": { "line": 29, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 27, "column": 2 }, "end": { "line": 29, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 27
+ }
+ },
+ "s": {
+ "0": 2,
+ "1": 2,
+ "2": 2,
+ "3": 1,
+ "4": 1,
+ "5": 1,
+ "6": 0,
+ "7": 0,
+ "8": 2,
+ "9": 1,
+ "10": 1,
+ "11": 0,
+ "12": 1,
+ "13": 1,
+ "14": 1,
+ "15": 0,
+ "16": 1,
+ "17": 1,
+ "18": 2
+ },
+ "f": { "0": 2, "1": 1, "2": 1, "3": 0, "4": 1, "5": 0, "6": 1, "7": 1, "8": 2 },
+ "b": { "0": [1, 0], "1": [1, 1], "2": [0, 1] },
+ "meta": {
+ "lastBranch": 3,
+ "lastFunction": 9,
+ "lastStatement": 19,
+ "seen": {
+ "f:7:9:7:21": 0,
+ "s:8:22:8:Infinity": 0,
+ "s:9:8:9:Infinity": 1,
+ "s:11:2:21:Infinity": 2,
+ "f:11:12:11:18": 1,
+ "s:12:4:20:Infinity": 3,
+ "f:13:12:13:13": 2,
+ "b:14:8:18:Infinity:16:15:18:Infinity": 0,
+ "s:14:8:18:Infinity": 4,
+ "s:15:10:15:Infinity": 5,
+ "s:17:10:17:Infinity": 6,
+ "f:20:13:20:19": 3,
+ "s:20:19:20:33": 7,
+ "b:23:2:25:Infinity:undefined:undefined:undefined:undefined": 1,
+ "s:23:2:25:Infinity": 8,
+ "s:24:4:24:Infinity": 9,
+ "b:27:2:29:Infinity:undefined:undefined:undefined:undefined": 2,
+ "s:27:2:29:Infinity": 10,
+ "s:28:4:28:Infinity": 11,
+ "s:31:2:31:Infinity": 12,
+ "f:38:9:38:21": 4,
+ "s:39:8:39:Infinity": 13,
+ "s:40:2:68:Infinity": 14,
+ "f:45:27:45:33": 5,
+ "s:45:33:45:56": 15,
+ "f:47:27:47:33": 6,
+ "s:48:12:49:Infinity": 16,
+ "f:49:20:49:26": 7,
+ "s:49:26:49:60": 17,
+ "f:72:9:72:15": 8,
+ "s:73:2:86:Infinity": 18
+ }
+ }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css",
+ "statementMap": {},
+ "fnMap": {},
+ "branchMap": {},
+ "s": {},
+ "f": {},
+ "b": {},
+ "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx",
+ "statementMap": {
+ "0": { "start": { "line": 10, "column": 24 }, "end": { "line": 10, "column": null } },
+ "1": { "start": { "line": 11, "column": 30 }, "end": { "line": 11, "column": null } },
+ "2": { "start": { "line": 14, "column": 23 }, "end": { "line": 16, "column": null } },
+ "3": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": null } },
+ "4": { "start": { "line": 18, "column": 23 }, "end": { "line": 52, "column": null } },
+ "5": { "start": { "line": 19, "column": 8 }, "end": { "line": 19, "column": null } },
+ "6": { "start": { "line": 21, "column": 29 }, "end": { "line": 21, "column": null } },
+ "7": { "start": { "line": 22, "column": 8 }, "end": { "line": 22, "column": null } },
+ "8": { "start": { "line": 24, "column": 8 }, "end": { "line": 51, "column": null } },
+ "9": { "start": { "line": 36, "column": 16 }, "end": { "line": 38, "column": null } },
+ "10": { "start": { "line": 37, "column": 20 }, "end": { "line": 37, "column": null } },
+ "11": { "start": { "line": 39, "column": 16 }, "end": { "line": 39, "column": null } },
+ "12": { "start": { "line": 44, "column": 16 }, "end": { "line": 44, "column": null } },
+ "13": { "start": { "line": 47, "column": 16 }, "end": { "line": 47, "column": null } },
+ "14": { "start": { "line": 49, "column": 16 }, "end": { "line": 49, "column": null } },
+ "15": { "start": { "line": 50, "column": 16 }, "end": { "line": 50, "column": null } },
+ "16": { "start": { "line": 54, "column": 4 }, "end": { "line": 82, "column": null } },
+ "17": { "start": { "line": 59, "column": 24 }, "end": { "line": 59, "column": null } },
+ "18": { "start": { "line": 60, "column": 24 }, "end": { "line": 60, "column": null } }
+ },
+ "fnMap": {
+ "0": {
+ "name": "FeedItem",
+ "decl": { "start": { "line": 9, "column": 24 }, "end": { "line": 9, "column": 33 } },
+ "loc": { "start": { "line": 9, "column": 71 }, "end": { "line": 84, "column": null } },
+ "line": 9
+ },
+ "1": {
+ "name": "(anonymous_1)",
+ "decl": { "start": { "line": 14, "column": 23 }, "end": { "line": 14, "column": 29 } },
+ "loc": { "start": { "line": 14, "column": 29 }, "end": { "line": 16, "column": null } },
+ "line": 14
+ },
+ "2": {
+ "name": "(anonymous_2)",
+ "decl": { "start": { "line": 18, "column": 23 }, "end": { "line": 18, "column": 24 } },
+ "loc": { "start": { "line": 18, "column": 42 }, "end": { "line": 52, "column": null } },
+ "line": 18
+ },
+ "3": {
+ "name": "(anonymous_3)",
+ "decl": { "start": { "line": 35, "column": 18 }, "end": { "line": 35, "column": 19 } },
+ "loc": { "start": { "line": 35, "column": 27 }, "end": { "line": 40, "column": 13 } },
+ "line": 35
+ },
+ "4": {
+ "name": "(anonymous_4)",
+ "decl": { "start": { "line": 41, "column": 18 }, "end": { "line": 41, "column": 24 } },
+ "loc": { "start": { "line": 41, "column": 24 }, "end": { "line": 45, "column": 13 } },
+ "line": 41
+ },
+ "5": {
+ "name": "(anonymous_5)",
+ "decl": { "start": { "line": 46, "column": 19 }, "end": { "line": 46, "column": 20 } },
+ "loc": { "start": { "line": 46, "column": 28 }, "end": { "line": 51, "column": 13 } },
+ "line": 46
+ },
+ "6": {
+ "name": "(anonymous_6)",
+ "decl": { "start": { "line": 58, "column": 29 }, "end": { "line": 58, "column": 30 } },
+ "loc": { "start": { "line": 58, "column": 36 }, "end": { "line": 61, "column": null } },
+ "line": 58
+ }
+ },
+ "branchMap": {
+ "0": {
+ "loc": { "start": { "line": 36, "column": 16 }, "end": { "line": 38, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 36, "column": 16 }, "end": { "line": 38, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 36
+ },
+ "1": {
+ "loc": { "start": { "line": 55, "column": 36 }, "end": { "line": 55, "column": 65 } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 55, "column": 48 }, "end": { "line": 55, "column": 57 } },
+ { "start": { "line": 55, "column": 57 }, "end": { "line": 55, "column": 65 } }
+ ],
+ "line": 55
+ },
+ "2": {
+ "loc": { "start": { "line": 55, "column": 69 }, "end": { "line": 55, "column": 93 } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 55, "column": 79 }, "end": { "line": 55, "column": 91 } },
+ { "start": { "line": 55, "column": 91 }, "end": { "line": 55, "column": 93 } }
+ ],
+ "line": 55
+ },
+ "3": {
+ "loc": { "start": { "line": 62, "column": 43 }, "end": { "line": 62, "column": 87 } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 62, "column": 58 }, "end": { "line": 62, "column": 73 } },
+ { "start": { "line": 62, "column": 73 }, "end": { "line": 62, "column": 87 } }
+ ],
+ "line": 62
+ },
+ "4": {
+ "loc": { "start": { "line": 63, "column": 27 }, "end": { "line": 63, "column": null } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 63, "column": 42 }, "end": { "line": 63, "column": 53 } },
+ { "start": { "line": 63, "column": 53 }, "end": { "line": 63, "column": null } }
+ ],
+ "line": 63
+ },
+ "5": {
+ "loc": { "start": { "line": 65, "column": 21 }, "end": { "line": 65, "column": null } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 65, "column": 36 }, "end": { "line": 65, "column": 42 } },
+ { "start": { "line": 65, "column": 42 }, "end": { "line": 65, "column": null } }
+ ],
+ "line": 65
+ },
+ "6": {
+ "loc": { "start": { "line": 68, "column": 21 }, "end": { "line": 68, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 68, "column": 21 }, "end": { "line": 68, "column": 35 } },
+ { "start": { "line": 68, "column": 35 }, "end": { "line": 68, "column": null } }
+ ],
+ "line": 68
+ },
+ "7": {
+ "loc": { "start": { "line": 74, "column": 21 }, "end": { "line": 74, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 74, "column": 21 }, "end": { "line": 74, "column": 40 } },
+ { "start": { "line": 74, "column": 40 }, "end": { "line": 74, "column": null } }
+ ],
+ "line": 74
+ },
+ "8": {
+ "loc": { "start": { "line": 79, "column": 13 }, "end": { "line": 80, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 79, "column": 13 }, "end": { "line": 79, "column": null } },
+ { "start": { "line": 80, "column": 16 }, "end": { "line": 80, "column": null } }
+ ],
+ "line": 79
+ }
+ },
+ "s": {
+ "0": 21,
+ "1": 21,
+ "2": 21,
+ "3": 1,
+ "4": 21,
+ "5": 1,
+ "6": 1,
+ "7": 1,
+ "8": 1,
+ "9": 1,
+ "10": 0,
+ "11": 1,
+ "12": 1,
+ "13": 0,
+ "14": 0,
+ "15": 0,
+ "16": 21,
+ "17": 1,
+ "18": 1
+ },
+ "f": { "0": 21, "1": 1, "2": 1, "3": 1, "4": 1, "5": 0, "6": 1 },
+ "b": {
+ "0": [0, 1],
+ "1": [9, 12],
+ "2": [1, 20],
+ "3": [2, 19],
+ "4": [2, 19],
+ "5": [2, 19],
+ "6": [21, 0],
+ "7": [21, 5],
+ "8": [21, 4]
+ },
+ "meta": {
+ "lastBranch": 9,
+ "lastFunction": 7,
+ "lastStatement": 19,
+ "seen": {
+ "f:9:24:9:33": 0,
+ "s:10:24:10:Infinity": 0,
+ "s:11:30:11:Infinity": 1,
+ "s:14:23:16:Infinity": 2,
+ "f:14:23:14:29": 1,
+ "s:15:8:15:Infinity": 3,
+ "s:18:23:52:Infinity": 4,
+ "f:18:23:18:24": 2,
+ "s:19:8:19:Infinity": 5,
+ "s:21:29:21:Infinity": 6,
+ "s:22:8:22:Infinity": 7,
+ "s:24:8:51:Infinity": 8,
+ "f:35:18:35:19": 3,
+ "b:36:16:38:Infinity:undefined:undefined:undefined:undefined": 0,
+ "s:36:16:38:Infinity": 9,
+ "s:37:20:37:Infinity": 10,
+ "s:39:16:39:Infinity": 11,
+ "f:41:18:41:24": 4,
+ "s:44:16:44:Infinity": 12,
+ "f:46:19:46:20": 5,
+ "s:47:16:47:Infinity": 13,
+ "s:49:16:49:Infinity": 14,
+ "s:50:16:50:Infinity": 15,
+ "s:54:4:82:Infinity": 16,
+ "b:55:48:55:57:55:57:55:65": 1,
+ "b:55:79:55:91:55:91:55:93": 2,
+ "f:58:29:58:30": 6,
+ "s:59:24:59:Infinity": 17,
+ "s:60:24:60:Infinity": 18,
+ "b:62:58:62:73:62:73:62:87": 3,
+ "b:63:42:63:53:63:53:63:Infinity": 4,
+ "b:65:36:65:42:65:42:65:Infinity": 5,
+ "b:68:21:68:35:68:35:68:Infinity": 6,
+ "b:74:21:74:40:74:40:74:Infinity": 7,
+ "b:79:13:79:Infinity:80:16:80:Infinity": 8
+ }
+ }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css",
+ "statementMap": {},
+ "fnMap": {},
+ "branchMap": {},
+ "s": {},
+ "f": {},
+ "b": {},
+ "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx",
+ "statementMap": {
+ "0": { "start": { "line": 8, "column": 28 }, "end": { "line": 8, "column": null } },
+ "1": { "start": { "line": 9, "column": 23 }, "end": { "line": 9, "column": null } },
+ "2": { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": null } },
+ "3": { "start": { "line": 12, "column": 26 }, "end": { "line": 12, "column": null } },
+ "4": { "start": { "line": 13, "column": 30 }, "end": { "line": 13, "column": null } },
+ "5": { "start": { "line": 14, "column": 38 }, "end": { "line": 14, "column": null } },
+ "6": { "start": { "line": 15, "column": 30 }, "end": { "line": 15, "column": null } },
+ "7": { "start": { "line": 16, "column": 26 }, "end": { "line": 16, "column": null } },
+ "8": { "start": { "line": 18, "column": 23 }, "end": { "line": 78, "column": null } },
+ "9": { "start": { "line": 19, "column": 8 }, "end": { "line": 24, "column": null } },
+ "10": { "start": { "line": 20, "column": 12 }, "end": { "line": 20, "column": null } },
+ "11": { "start": { "line": 22, "column": 12 }, "end": { "line": 22, "column": null } },
+ "12": { "start": { "line": 23, "column": 12 }, "end": { "line": 23, "column": null } },
+ "13": { "start": { "line": 25, "column": 8 }, "end": { "line": 25, "column": null } },
+ "14": { "start": { "line": 27, "column": 18 }, "end": { "line": 27, "column": null } },
+ "15": { "start": { "line": 28, "column": 23 }, "end": { "line": 28, "column": null } },
+ "16": { "start": { "line": 30, "column": 8 }, "end": { "line": 34, "column": null } },
+ "17": { "start": { "line": 31, "column": 12 }, "end": { "line": 31, "column": null } },
+ "18": { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } },
+ "19": { "start": { "line": 33, "column": 12 }, "end": { "line": 33, "column": null } },
+ "20": { "start": { "line": 36, "column": 8 }, "end": { "line": 38, "column": null } },
+ "21": { "start": { "line": 37, "column": 12 }, "end": { "line": 37, "column": null } },
+ "22": { "start": { "line": 41, "column": 8 }, "end": { "line": 49, "column": null } },
+ "23": { "start": { "line": 42, "column": 12 }, "end": { "line": 42, "column": null } },
+ "24": { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } },
+ "25": { "start": { "line": 44, "column": 12 }, "end": { "line": 44, "column": null } },
+ "26": { "start": { "line": 45, "column": 12 }, "end": { "line": 45, "column": null } },
+ "27": { "start": { "line": 48, "column": 12 }, "end": { "line": 48, "column": null } },
+ "28": { "start": { "line": 51, "column": 28 }, "end": { "line": 51, "column": null } },
+ "29": { "start": { "line": 52, "column": 8 }, "end": { "line": 54, "column": null } },
+ "30": { "start": { "line": 53, "column": 12 }, "end": { "line": 53, "column": null } },
+ "31": { "start": { "line": 56, "column": 8 }, "end": { "line": 77, "column": null } },
+ "32": { "start": { "line": 58, "column": 16 }, "end": { "line": 60, "column": null } },
+ "33": { "start": { "line": 59, "column": 20 }, "end": { "line": 59, "column": null } },
+ "34": { "start": { "line": 61, "column": 16 }, "end": { "line": 61, "column": null } },
+ "35": { "start": { "line": 64, "column": 16 }, "end": { "line": 68, "column": null } },
+ "36": { "start": { "line": 65, "column": 20 }, "end": { "line": 65, "column": null } },
+ "37": { "start": { "line": 65, "column": 39 }, "end": { "line": 65, "column": 57 } },
+ "38": { "start": { "line": 67, "column": 20 }, "end": { "line": 67, "column": null } },
+ "39": { "start": { "line": 69, "column": 16 }, "end": { "line": 69, "column": null } },
+ "40": { "start": { "line": 70, "column": 16 }, "end": { "line": 70, "column": null } },
+ "41": { "start": { "line": 71, "column": 16 }, "end": { "line": 71, "column": null } },
+ "42": { "start": { "line": 74, "column": 16 }, "end": { "line": 74, "column": null } },
+ "43": { "start": { "line": 75, "column": 16 }, "end": { "line": 75, "column": null } },
+ "44": { "start": { "line": 76, "column": 16 }, "end": { "line": 76, "column": null } },
+ "45": { "start": { "line": 80, "column": 4 }, "end": { "line": 82, "column": null } },
+ "46": { "start": { "line": 81, "column": 8 }, "end": { "line": 81, "column": null } },
+ "47": { "start": { "line": 84, "column": 42 }, "end": { "line": 84, "column": null } },
+ "48": { "start": { "line": 86, "column": 4 }, "end": { "line": 122, "column": null } },
+ "49": { "start": { "line": 87, "column": 30 }, "end": { "line": 118, "column": null } },
+ "50": { "start": { "line": 88, "column": 12 }, "end": { "line": 88, "column": null } },
+ "51": { "start": { "line": 88, "column": 36 }, "end": { "line": 88, "column": null } },
+ "52": { "start": { "line": 90, "column": 12 }, "end": { "line": 117, "column": null } },
+ "53": { "start": { "line": 91, "column": 16 }, "end": { "line": 101, "column": null } },
+ "54": { "start": { "line": 92, "column": 38 }, "end": { "line": 92, "column": null } },
+ "55": { "start": { "line": 93, "column": 20 }, "end": { "line": 99, "column": null } },
+ "56": { "start": { "line": 94, "column": 37 }, "end": { "line": 94, "column": null } },
+ "57": { "start": { "line": 95, "column": 24 }, "end": { "line": 97, "column": null } },
+ "58": { "start": { "line": 96, "column": 28 }, "end": { "line": 96, "column": null } },
+ "59": { "start": { "line": 98, "column": 24 }, "end": { "line": 98, "column": null } },
+ "60": { "start": { "line": 100, "column": 20 }, "end": { "line": 100, "column": null } },
+ "61": { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } },
+ "62": { "start": { "line": 103, "column": 16 }, "end": { "line": 109, "column": null } },
+ "63": { "start": { "line": 104, "column": 38 }, "end": { "line": 104, "column": null } },
+ "64": { "start": { "line": 105, "column": 20 }, "end": { "line": 107, "column": null } },
+ "65": { "start": { "line": 106, "column": 24 }, "end": { "line": 106, "column": null } },
+ "66": { "start": { "line": 108, "column": 20 }, "end": { "line": 108, "column": null } },
+ "67": { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } },
+ "68": { "start": { "line": 111, "column": 16 }, "end": { "line": 116, "column": null } },
+ "69": { "start": { "line": 112, "column": 20 }, "end": { "line": 114, "column": null } },
+ "70": { "start": { "line": 113, "column": 24 }, "end": { "line": 113, "column": null } },
+ "71": { "start": { "line": 115, "column": 20 }, "end": { "line": 115, "column": null } },
+ "72": { "start": { "line": 120, "column": 8 }, "end": { "line": 120, "column": null } },
+ "73": { "start": { "line": 121, "column": 8 }, "end": { "line": 121, "column": null } },
+ "74": { "start": { "line": 121, "column": 21 }, "end": { "line": 121, "column": null } },
+ "75": { "start": { "line": 124, "column": 25 }, "end": { "line": 129, "column": null } },
+ "76": { "start": { "line": 125, "column": 24 }, "end": { "line": 125, "column": null } },
+ "77": { "start": { "line": 126, "column": 8 }, "end": { "line": 128, "column": null } },
+ "78": { "start": { "line": 127, "column": 12 }, "end": { "line": 127, "column": null } },
+ "79": { "start": { "line": 131, "column": 23 }, "end": { "line": 141, "column": null } },
+ "80": { "start": { "line": 132, "column": 28 }, "end": { "line": 132, "column": null } },
+ "81": { "start": { "line": 134, "column": 8 }, "end": { "line": 134, "column": null } },
+ "82": { "start": { "line": 134, "column": 32 }, "end": { "line": 134, "column": 92 } },
+ "83": { "start": { "line": 134, "column": 54 }, "end": { "line": 134, "column": 91 } },
+ "84": { "start": { "line": 136, "column": 8 }, "end": { "line": 140, "column": null } },
+ "85": { "start": { "line": 140, "column": 26 }, "end": { "line": 140, "column": 67 } },
+ "86": { "start": { "line": 143, "column": 23 }, "end": { "line": 153, "column": null } },
+ "87": { "start": { "line": 144, "column": 28 }, "end": { "line": 144, "column": null } },
+ "88": { "start": { "line": 146, "column": 8 }, "end": { "line": 146, "column": null } },
+ "89": { "start": { "line": 146, "column": 32 }, "end": { "line": 146, "column": 92 } },
+ "90": { "start": { "line": 146, "column": 54 }, "end": { "line": 146, "column": 91 } },
+ "91": { "start": { "line": 148, "column": 8 }, "end": { "line": 152, "column": null } },
+ "92": { "start": { "line": 152, "column": 26 }, "end": { "line": 152, "column": 69 } },
+ "93": { "start": { "line": 155, "column": 4 }, "end": { "line": 191, "column": null } },
+ "94": { "start": { "line": 156, "column": 25 }, "end": { "line": 180, "column": null } },
+ "95": { "start": { "line": 158, "column": 16 }, "end": { "line": 177, "column": null } },
+ "96": { "start": { "line": 160, "column": 20 }, "end": { "line": 165, "column": null } },
+ "97": { "start": { "line": 161, "column": 24 }, "end": { "line": 163, "column": null } },
+ "98": { "start": { "line": 162, "column": 28 }, "end": { "line": 162, "column": null } },
+ "99": { "start": { "line": 164, "column": 24 }, "end": { "line": 164, "column": null } },
+ "100": { "start": { "line": 168, "column": 20 }, "end": { "line": 176, "column": null } },
+ "101": { "start": { "line": 169, "column": 38 }, "end": { "line": 169, "column": null } },
+ "102": { "start": { "line": 170, "column": 24 }, "end": { "line": 175, "column": null } },
+ "103": { "start": { "line": 171, "column": 41 }, "end": { "line": 171, "column": null } },
+ "104": { "start": { "line": 172, "column": 28 }, "end": { "line": 174, "column": null } },
+ "105": { "start": { "line": 173, "column": 32 }, "end": { "line": 173, "column": null } },
+ "106": { "start": { "line": 182, "column": 8 }, "end": { "line": 185, "column": null } },
+ "107": { "start": { "line": 183, "column": 23 }, "end": { "line": 183, "column": null } },
+ "108": { "start": { "line": 184, "column": 12 }, "end": { "line": 184, "column": null } },
+ "109": { "start": { "line": 184, "column": 20 }, "end": { "line": 184, "column": null } },
+ "110": { "start": { "line": 187, "column": 25 }, "end": { "line": 187, "column": null } },
+ "111": { "start": { "line": 188, "column": 8 }, "end": { "line": 188, "column": null } },
+ "112": { "start": { "line": 188, "column": 22 }, "end": { "line": 188, "column": null } },
+ "113": { "start": { "line": 190, "column": 8 }, "end": { "line": 190, "column": null } },
+ "114": { "start": { "line": 190, "column": 21 }, "end": { "line": 190, "column": null } },
+ "115": { "start": { "line": 193, "column": 4 }, "end": { "line": 193, "column": null } },
+ "116": { "start": { "line": 193, "column": 17 }, "end": { "line": 193, "column": null } },
+ "117": { "start": { "line": 194, "column": 4 }, "end": { "line": 194, "column": null } },
+ "118": { "start": { "line": 194, "column": 15 }, "end": { "line": 194, "column": null } },
+ "119": { "start": { "line": 197, "column": 4 }, "end": { "line": 221, "column": null } },
+ "120": { "start": { "line": 204, "column": 24 }, "end": { "line": 212, "column": null } },
+ "121": { "start": { "line": 209, "column": 43 }, "end": { "line": 209, "column": null } }
+ },
+ "fnMap": {
+ "0": {
+ "name": "FeedItems",
+ "decl": { "start": { "line": 7, "column": 24 }, "end": { "line": 7, "column": 36 } },
+ "loc": { "start": { "line": 7, "column": 36 }, "end": { "line": 223, "column": null } },
+ "line": 7
+ },
+ "1": {
+ "name": "(anonymous_1)",
+ "decl": { "start": { "line": 18, "column": 23 }, "end": { "line": 18, "column": 24 } },
+ "loc": { "start": { "line": 18, "column": 43 }, "end": { "line": 78, "column": null } },
+ "line": 18
+ },
+ "2": {
+ "name": "(anonymous_2)",
+ "decl": { "start": { "line": 57, "column": 18 }, "end": { "line": 57, "column": 19 } },
+ "loc": { "start": { "line": 57, "column": 27 }, "end": { "line": 62, "column": 13 } },
+ "line": 57
+ },
+ "3": {
+ "name": "(anonymous_3)",
+ "decl": { "start": { "line": 63, "column": 18 }, "end": { "line": 63, "column": 19 } },
+ "loc": { "start": { "line": 63, "column": 28 }, "end": { "line": 72, "column": 13 } },
+ "line": 63
+ },
+ "4": {
+ "name": "(anonymous_4)",
+ "decl": { "start": { "line": 65, "column": 29 }, "end": { "line": 65, "column": 30 } },
+ "loc": { "start": { "line": 65, "column": 39 }, "end": { "line": 65, "column": 57 } },
+ "line": 65
+ },
+ "5": {
+ "name": "(anonymous_5)",
+ "decl": { "start": { "line": 73, "column": 19 }, "end": { "line": 73, "column": 20 } },
+ "loc": { "start": { "line": 73, "column": 28 }, "end": { "line": 77, "column": 13 } },
+ "line": 73
+ },
+ "6": {
+ "name": "(anonymous_6)",
+ "decl": { "start": { "line": 80, "column": 14 }, "end": { "line": 80, "column": 20 } },
+ "loc": { "start": { "line": 80, "column": 20 }, "end": { "line": 82, "column": 7 } },
+ "line": 80
+ },
+ "7": {
+ "name": "(anonymous_7)",
+ "decl": { "start": { "line": 86, "column": 14 }, "end": { "line": 86, "column": 20 } },
+ "loc": { "start": { "line": 86, "column": 20 }, "end": { "line": 122, "column": 7 } },
+ "line": 86
+ },
+ "8": {
+ "name": "(anonymous_8)",
+ "decl": { "start": { "line": 87, "column": 30 }, "end": { "line": 87, "column": 31 } },
+ "loc": { "start": { "line": 87, "column": 52 }, "end": { "line": 118, "column": null } },
+ "line": 87
+ },
+ "9": {
+ "name": "(anonymous_9)",
+ "decl": { "start": { "line": 91, "column": 33 }, "end": { "line": 91, "column": 34 } },
+ "loc": { "start": { "line": 91, "column": 43 }, "end": { "line": 101, "column": 17 } },
+ "line": 91
+ },
+ "10": {
+ "name": "(anonymous_10)",
+ "decl": { "start": { "line": 103, "column": 33 }, "end": { "line": 103, "column": 34 } },
+ "loc": { "start": { "line": 103, "column": 43 }, "end": { "line": 109, "column": 17 } },
+ "line": 103
+ },
+ "11": {
+ "name": "(anonymous_11)",
+ "decl": { "start": { "line": 111, "column": 33 }, "end": { "line": 111, "column": 34 } },
+ "loc": { "start": { "line": 111, "column": 51 }, "end": { "line": 116, "column": 17 } },
+ "line": 111
+ },
+ "12": {
+ "name": "(anonymous_12)",
+ "decl": { "start": { "line": 121, "column": 15 }, "end": { "line": 121, "column": 21 } },
+ "loc": { "start": { "line": 121, "column": 21 }, "end": { "line": 121, "column": null } },
+ "line": 121
+ },
+ "13": {
+ "name": "(anonymous_13)",
+ "decl": { "start": { "line": 124, "column": 25 }, "end": { "line": 124, "column": 26 } },
+ "loc": { "start": { "line": 124, "column": 44 }, "end": { "line": 129, "column": null } },
+ "line": 124
+ },
+ "14": {
+ "name": "(anonymous_14)",
+ "decl": { "start": { "line": 131, "column": 23 }, "end": { "line": 131, "column": 24 } },
+ "loc": { "start": { "line": 131, "column": 39 }, "end": { "line": 141, "column": null } },
+ "line": 131
+ },
+ "15": {
+ "name": "(anonymous_15)",
+ "decl": { "start": { "line": 134, "column": 17 }, "end": { "line": 134, "column": 18 } },
+ "loc": { "start": { "line": 134, "column": 32 }, "end": { "line": 134, "column": 92 } },
+ "line": 134
+ },
+ "16": {
+ "name": "(anonymous_16)",
+ "decl": { "start": { "line": 134, "column": 46 }, "end": { "line": 134, "column": 47 } },
+ "loc": { "start": { "line": 134, "column": 54 }, "end": { "line": 134, "column": 91 } },
+ "line": 134
+ },
+ "17": {
+ "name": "(anonymous_17)",
+ "decl": { "start": { "line": 140, "column": 17 }, "end": { "line": 140, "column": 18 } },
+ "loc": { "start": { "line": 140, "column": 26 }, "end": { "line": 140, "column": 67 } },
+ "line": 140
+ },
+ "18": {
+ "name": "(anonymous_18)",
+ "decl": { "start": { "line": 143, "column": 23 }, "end": { "line": 143, "column": 24 } },
+ "loc": { "start": { "line": 143, "column": 39 }, "end": { "line": 153, "column": null } },
+ "line": 143
+ },
+ "19": {
+ "name": "(anonymous_19)",
+ "decl": { "start": { "line": 146, "column": 17 }, "end": { "line": 146, "column": 18 } },
+ "loc": { "start": { "line": 146, "column": 32 }, "end": { "line": 146, "column": 92 } },
+ "line": 146
+ },
+ "20": {
+ "name": "(anonymous_20)",
+ "decl": { "start": { "line": 146, "column": 46 }, "end": { "line": 146, "column": 47 } },
+ "loc": { "start": { "line": 146, "column": 54 }, "end": { "line": 146, "column": 91 } },
+ "line": 146
+ },
+ "21": {
+ "name": "(anonymous_21)",
+ "decl": { "start": { "line": 152, "column": 17 }, "end": { "line": 152, "column": 18 } },
+ "loc": { "start": { "line": 152, "column": 26 }, "end": { "line": 152, "column": 69 } },
+ "line": 152
+ },
+ "22": {
+ "name": "(anonymous_22)",
+ "decl": { "start": { "line": 155, "column": 14 }, "end": { "line": 155, "column": 20 } },
+ "loc": { "start": { "line": 155, "column": 20 }, "end": { "line": 191, "column": 7 } },
+ "line": 155
+ },
+ "23": {
+ "name": "(anonymous_23)",
+ "decl": { "start": { "line": 157, "column": 12 }, "end": { "line": 157, "column": 13 } },
+ "loc": { "start": { "line": 157, "column": 25 }, "end": { "line": 178, "column": null } },
+ "line": 157
+ },
+ "24": {
+ "name": "(anonymous_24)",
+ "decl": { "start": { "line": 158, "column": 32 }, "end": { "line": 158, "column": 33 } },
+ "loc": { "start": { "line": 158, "column": 43 }, "end": { "line": 177, "column": 17 } },
+ "line": 158
+ },
+ "25": {
+ "name": "(anonymous_25)",
+ "decl": { "start": { "line": 182, "column": 22 }, "end": { "line": 182, "column": 23 } },
+ "loc": { "start": { "line": 182, "column": 36 }, "end": { "line": 185, "column": 9 } },
+ "line": 182
+ },
+ "26": {
+ "name": "(anonymous_26)",
+ "decl": { "start": { "line": 190, "column": 15 }, "end": { "line": 190, "column": 21 } },
+ "loc": { "start": { "line": 190, "column": 21 }, "end": { "line": 190, "column": null } },
+ "line": 190
+ },
+ "27": {
+ "name": "(anonymous_27)",
+ "decl": { "start": { "line": 203, "column": 31 }, "end": { "line": 203, "column": 32 } },
+ "loc": { "start": { "line": 204, "column": 24 }, "end": { "line": 212, "column": null } },
+ "line": 204
+ },
+ "28": {
+ "name": "(anonymous_28)",
+ "decl": { "start": { "line": 209, "column": 37 }, "end": { "line": 209, "column": 43 } },
+ "loc": { "start": { "line": 209, "column": 43 }, "end": { "line": 209, "column": null } },
+ "line": 209
+ }
+ },
+ "branchMap": {
+ "0": {
+ "loc": { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": 51 } },
+ { "start": { "line": 10, "column": 51 }, "end": { "line": 10, "column": null } }
+ ],
+ "line": 10
+ },
+ "1": {
+ "loc": { "start": { "line": 19, "column": 8 }, "end": { "line": 24, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 19, "column": 8 }, "end": { "line": 24, "column": null } },
+ { "start": { "line": 21, "column": 15 }, "end": { "line": 24, "column": null } }
+ ],
+ "line": 19
+ },
+ "2": {
+ "loc": { "start": { "line": 30, "column": 8 }, "end": { "line": 34, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 30, "column": 8 }, "end": { "line": 34, "column": null } },
+ { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } }
+ ],
+ "line": 30
+ },
+ "3": {
+ "loc": { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 32
+ },
+ "4": {
+ "loc": { "start": { "line": 36, "column": 8 }, "end": { "line": 38, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 36, "column": 8 }, "end": { "line": 38, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 36
+ },
+ "5": {
+ "loc": { "start": { "line": 41, "column": 8 }, "end": { "line": 49, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 41, "column": 8 }, "end": { "line": 49, "column": null } },
+ { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } }
+ ],
+ "line": 41
+ },
+ "6": {
+ "loc": { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } },
+ { "start": { "line": 46, "column": 15 }, "end": { "line": 49, "column": null } }
+ ],
+ "line": 43
+ },
+ "7": {
+ "loc": { "start": { "line": 52, "column": 8 }, "end": { "line": 54, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 52, "column": 8 }, "end": { "line": 54, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 52
+ },
+ "8": {
+ "loc": { "start": { "line": 58, "column": 16 }, "end": { "line": 60, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 58, "column": 16 }, "end": { "line": 60, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 58
+ },
+ "9": {
+ "loc": { "start": { "line": 64, "column": 16 }, "end": { "line": 68, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 64, "column": 16 }, "end": { "line": 68, "column": null } },
+ { "start": { "line": 66, "column": 23 }, "end": { "line": 68, "column": null } }
+ ],
+ "line": 64
+ },
+ "10": {
+ "loc": { "start": { "line": 88, "column": 12 }, "end": { "line": 88, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 88, "column": 12 }, "end": { "line": 88, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 88
+ },
+ "11": {
+ "loc": { "start": { "line": 90, "column": 12 }, "end": { "line": 117, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 90, "column": 12 }, "end": { "line": 117, "column": null } },
+ { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } }
+ ],
+ "line": 90
+ },
+ "12": {
+ "loc": { "start": { "line": 93, "column": 20 }, "end": { "line": 99, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 93, "column": 20 }, "end": { "line": 99, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 93
+ },
+ "13": {
+ "loc": { "start": { "line": 95, "column": 24 }, "end": { "line": 97, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 95, "column": 24 }, "end": { "line": 97, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 95
+ },
+ "14": {
+ "loc": { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } },
+ { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } }
+ ],
+ "line": 102
+ },
+ "15": {
+ "loc": { "start": { "line": 105, "column": 20 }, "end": { "line": 107, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 105, "column": 20 }, "end": { "line": 107, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 105
+ },
+ "16": {
+ "loc": { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 110
+ },
+ "17": {
+ "loc": { "start": { "line": 112, "column": 20 }, "end": { "line": 114, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 112, "column": 20 }, "end": { "line": 114, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 112
+ },
+ "18": {
+ "loc": { "start": { "line": 112, "column": 24 }, "end": { "line": 112, "column": 74 } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 112, "column": 24 }, "end": { "line": 112, "column": 45 } },
+ { "start": { "line": 112, "column": 45 }, "end": { "line": 112, "column": 74 } }
+ ],
+ "line": 112
+ },
+ "19": {
+ "loc": { "start": { "line": 126, "column": 8 }, "end": { "line": 128, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 126, "column": 8 }, "end": { "line": 128, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 126
+ },
+ "20": {
+ "loc": { "start": { "line": 134, "column": 54 }, "end": { "line": 134, "column": 91 } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 134, "column": 75 }, "end": { "line": 134, "column": 89 } },
+ { "start": { "line": 134, "column": 89 }, "end": { "line": 134, "column": 91 } }
+ ],
+ "line": 134
+ },
+ "21": {
+ "loc": { "start": { "line": 146, "column": 54 }, "end": { "line": 146, "column": 91 } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 146, "column": 75 }, "end": { "line": 146, "column": 89 } },
+ { "start": { "line": 146, "column": 89 }, "end": { "line": 146, "column": 91 } }
+ ],
+ "line": 146
+ },
+ "22": {
+ "loc": { "start": { "line": 160, "column": 20 }, "end": { "line": 165, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 160, "column": 20 }, "end": { "line": 165, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 160
+ },
+ "23": {
+ "loc": { "start": { "line": 161, "column": 24 }, "end": { "line": 163, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 161, "column": 24 }, "end": { "line": 163, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 161
+ },
+ "24": {
+ "loc": { "start": { "line": 161, "column": 28 }, "end": { "line": 161, "column": 97 } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 161, "column": 28 }, "end": { "line": 161, "column": 52 } },
+ { "start": { "line": 161, "column": 52 }, "end": { "line": 161, "column": 68 } },
+ { "start": { "line": 161, "column": 68 }, "end": { "line": 161, "column": 79 } },
+ { "start": { "line": 161, "column": 79 }, "end": { "line": 161, "column": 97 } }
+ ],
+ "line": 161
+ },
+ "25": {
+ "loc": { "start": { "line": 168, "column": 20 }, "end": { "line": 176, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 168, "column": 20 }, "end": { "line": 176, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 168
+ },
+ "26": {
+ "loc": { "start": { "line": 168, "column": 24 }, "end": { "line": 168, "column": 83 } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 168, "column": 24 }, "end": { "line": 168, "column": 49 } },
+ { "start": { "line": 168, "column": 49 }, "end": { "line": 168, "column": 83 } }
+ ],
+ "line": 168
+ },
+ "27": {
+ "loc": { "start": { "line": 170, "column": 24 }, "end": { "line": 175, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 170, "column": 24 }, "end": { "line": 175, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 170
+ },
+ "28": {
+ "loc": { "start": { "line": 170, "column": 28 }, "end": { "line": 170, "column": 81 } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 170, "column": 28 }, "end": { "line": 170, "column": 45 } },
+ { "start": { "line": 170, "column": 45 }, "end": { "line": 170, "column": 59 } },
+ { "start": { "line": 170, "column": 59 }, "end": { "line": 170, "column": 81 } }
+ ],
+ "line": 170
+ },
+ "29": {
+ "loc": { "start": { "line": 172, "column": 28 }, "end": { "line": 174, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 172, "column": 28 }, "end": { "line": 174, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 172
+ },
+ "30": {
+ "loc": { "start": { "line": 184, "column": 12 }, "end": { "line": 184, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 184, "column": 12 }, "end": { "line": 184, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 184
+ },
+ "31": {
+ "loc": { "start": { "line": 188, "column": 8 }, "end": { "line": 188, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 188, "column": 8 }, "end": { "line": 188, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 188
+ },
+ "32": {
+ "loc": { "start": { "line": 193, "column": 4 }, "end": { "line": 193, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 193, "column": 4 }, "end": { "line": 193, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 193
+ },
+ "33": {
+ "loc": { "start": { "line": 194, "column": 4 }, "end": { "line": 194, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 194, "column": 4 }, "end": { "line": 194, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 194
+ },
+ "34": {
+ "loc": { "start": { "line": 199, "column": 13 }, "end": { "line": 219, "column": null } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 200, "column": 16 }, "end": { "line": 200, "column": null } },
+ { "start": { "line": 202, "column": 16 }, "end": { "line": 219, "column": null } }
+ ],
+ "line": 199
+ },
+ "35": {
+ "loc": { "start": { "line": 208, "column": 39 }, "end": { "line": 208, "column": null } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 208, "column": 65 }, "end": { "line": 208, "column": 93 } },
+ { "start": { "line": 208, "column": 93 }, "end": { "line": 208, "column": null } }
+ ],
+ "line": 208
+ },
+ "36": {
+ "loc": { "start": { "line": 214, "column": 21 }, "end": { "line": 217, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 214, "column": 21 }, "end": { "line": 214, "column": null } },
+ { "start": { "line": 215, "column": 24 }, "end": { "line": 217, "column": null } }
+ ],
+ "line": 214
+ },
+ "37": {
+ "loc": { "start": { "line": 216, "column": 29 }, "end": { "line": 216, "column": null } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 216, "column": 43 }, "end": { "line": 216, "column": 63 } },
+ { "start": { "line": 216, "column": 63 }, "end": { "line": 216, "column": null } }
+ ],
+ "line": 216
+ }
+ },
+ "s": {
+ "0": 27,
+ "1": 27,
+ "2": 27,
+ "3": 27,
+ "4": 27,
+ "5": 27,
+ "6": 27,
+ "7": 27,
+ "8": 27,
+ "9": 8,
+ "10": 1,
+ "11": 7,
+ "12": 7,
+ "13": 8,
+ "14": 8,
+ "15": 8,
+ "16": 8,
+ "17": 2,
+ "18": 6,
+ "19": 1,
+ "20": 8,
+ "21": 1,
+ "22": 8,
+ "23": 0,
+ "24": 8,
+ "25": 0,
+ "26": 0,
+ "27": 8,
+ "28": 8,
+ "29": 8,
+ "30": 8,
+ "31": 8,
+ "32": 7,
+ "33": 0,
+ "34": 7,
+ "35": 6,
+ "36": 1,
+ "37": 1,
+ "38": 5,
+ "39": 6,
+ "40": 6,
+ "41": 6,
+ "42": 1,
+ "43": 1,
+ "44": 1,
+ "45": 27,
+ "46": 7,
+ "47": 27,
+ "48": 27,
+ "49": 23,
+ "50": 3,
+ "51": 0,
+ "52": 3,
+ "53": 2,
+ "54": 2,
+ "55": 2,
+ "56": 2,
+ "57": 2,
+ "58": 1,
+ "59": 2,
+ "60": 2,
+ "61": 1,
+ "62": 0,
+ "63": 0,
+ "64": 0,
+ "65": 0,
+ "66": 0,
+ "67": 1,
+ "68": 1,
+ "69": 1,
+ "70": 1,
+ "71": 1,
+ "72": 23,
+ "73": 23,
+ "74": 23,
+ "75": 27,
+ "76": 2,
+ "77": 2,
+ "78": 2,
+ "79": 27,
+ "80": 2,
+ "81": 2,
+ "82": 2,
+ "83": 3,
+ "84": 2,
+ "85": 0,
+ "86": 27,
+ "87": 1,
+ "88": 1,
+ "89": 1,
+ "90": 2,
+ "91": 1,
+ "92": 0,
+ "93": 27,
+ "94": 24,
+ "95": 2,
+ "96": 2,
+ "97": 1,
+ "98": 1,
+ "99": 1,
+ "100": 1,
+ "101": 1,
+ "102": 1,
+ "103": 1,
+ "104": 1,
+ "105": 1,
+ "106": 24,
+ "107": 15,
+ "108": 15,
+ "109": 15,
+ "110": 24,
+ "111": 24,
+ "112": 10,
+ "113": 24,
+ "114": 24,
+ "115": 27,
+ "116": 13,
+ "117": 14,
+ "118": 14,
+ "119": 13,
+ "120": 21,
+ "121": 0
+ },
+ "f": {
+ "0": 27,
+ "1": 8,
+ "2": 7,
+ "3": 6,
+ "4": 1,
+ "5": 1,
+ "6": 7,
+ "7": 23,
+ "8": 3,
+ "9": 2,
+ "10": 0,
+ "11": 1,
+ "12": 23,
+ "13": 2,
+ "14": 2,
+ "15": 2,
+ "16": 3,
+ "17": 0,
+ "18": 1,
+ "19": 1,
+ "20": 2,
+ "21": 0,
+ "22": 24,
+ "23": 2,
+ "24": 2,
+ "25": 15,
+ "26": 24,
+ "27": 21,
+ "28": 0
+ },
+ "b": {
+ "0": [27, 27],
+ "1": [1, 7],
+ "2": [2, 6],
+ "3": [1, 5],
+ "4": [1, 7],
+ "5": [0, 8],
+ "6": [0, 8],
+ "7": [8, 0],
+ "8": [0, 7],
+ "9": [1, 5],
+ "10": [0, 3],
+ "11": [2, 1],
+ "12": [2, 0],
+ "13": [1, 1],
+ "14": [0, 1],
+ "15": [0, 0],
+ "16": [1, 0],
+ "17": [1, 0],
+ "18": [1, 1],
+ "19": [2, 0],
+ "20": [2, 1],
+ "21": [1, 1],
+ "22": [1, 1],
+ "23": [1, 0],
+ "24": [1, 1, 1, 1],
+ "25": [1, 0],
+ "26": [1, 1],
+ "27": [1, 0],
+ "28": [1, 1, 1],
+ "29": [1, 0],
+ "30": [15, 0],
+ "31": [10, 14],
+ "32": [13, 14],
+ "33": [1, 13],
+ "34": [0, 13],
+ "35": [5, 16],
+ "36": [13, 13],
+ "37": [1, 12]
+ },
+ "meta": {
+ "lastBranch": 38,
+ "lastFunction": 29,
+ "lastStatement": 122,
+ "seen": {
+ "f:7:24:7:36": 0,
+ "s:8:28:8:Infinity": 0,
+ "s:9:23:9:Infinity": 1,
+ "s:10:21:10:Infinity": 2,
+ "b:10:21:10:51:10:51:10:Infinity": 0,
+ "s:12:26:12:Infinity": 3,
+ "s:13:30:13:Infinity": 4,
+ "s:14:38:14:Infinity": 5,
+ "s:15:30:15:Infinity": 6,
+ "s:16:26:16:Infinity": 7,
+ "s:18:23:78:Infinity": 8,
+ "f:18:23:18:24": 1,
+ "b:19:8:24:Infinity:21:15:24:Infinity": 1,
+ "s:19:8:24:Infinity": 9,
+ "s:20:12:20:Infinity": 10,
+ "s:22:12:22:Infinity": 11,
+ "s:23:12:23:Infinity": 12,
+ "s:25:8:25:Infinity": 13,
+ "s:27:18:27:Infinity": 14,
+ "s:28:23:28:Infinity": 15,
+ "b:30:8:34:Infinity:32:8:34:Infinity": 2,
+ "s:30:8:34:Infinity": 16,
+ "s:31:12:31:Infinity": 17,
+ "b:32:8:34:Infinity:undefined:undefined:undefined:undefined": 3,
+ "s:32:8:34:Infinity": 18,
+ "s:33:12:33:Infinity": 19,
+ "b:36:8:38:Infinity:undefined:undefined:undefined:undefined": 4,
+ "s:36:8:38:Infinity": 20,
+ "s:37:12:37:Infinity": 21,
+ "b:41:8:49:Infinity:43:8:49:Infinity": 5,
+ "s:41:8:49:Infinity": 22,
+ "s:42:12:42:Infinity": 23,
+ "b:43:8:49:Infinity:46:15:49:Infinity": 6,
+ "s:43:8:49:Infinity": 24,
+ "s:44:12:44:Infinity": 25,
+ "s:45:12:45:Infinity": 26,
+ "s:48:12:48:Infinity": 27,
+ "s:51:28:51:Infinity": 28,
+ "b:52:8:54:Infinity:undefined:undefined:undefined:undefined": 7,
+ "s:52:8:54:Infinity": 29,
+ "s:53:12:53:Infinity": 30,
+ "s:56:8:77:Infinity": 31,
+ "f:57:18:57:19": 2,
+ "b:58:16:60:Infinity:undefined:undefined:undefined:undefined": 8,
+ "s:58:16:60:Infinity": 32,
+ "s:59:20:59:Infinity": 33,
+ "s:61:16:61:Infinity": 34,
+ "f:63:18:63:19": 3,
+ "b:64:16:68:Infinity:66:23:68:Infinity": 9,
+ "s:64:16:68:Infinity": 35,
+ "s:65:20:65:Infinity": 36,
+ "f:65:29:65:30": 4,
+ "s:65:39:65:57": 37,
+ "s:67:20:67:Infinity": 38,
+ "s:69:16:69:Infinity": 39,
+ "s:70:16:70:Infinity": 40,
+ "s:71:16:71:Infinity": 41,
+ "f:73:19:73:20": 5,
+ "s:74:16:74:Infinity": 42,
+ "s:75:16:75:Infinity": 43,
+ "s:76:16:76:Infinity": 44,
+ "s:80:4:82:Infinity": 45,
+ "f:80:14:80:20": 6,
+ "s:81:8:81:Infinity": 46,
+ "s:84:42:84:Infinity": 47,
+ "s:86:4:122:Infinity": 48,
+ "f:86:14:86:20": 7,
+ "s:87:30:118:Infinity": 49,
+ "f:87:30:87:31": 8,
+ "b:88:12:88:Infinity:undefined:undefined:undefined:undefined": 10,
+ "s:88:12:88:Infinity": 50,
+ "s:88:36:88:Infinity": 51,
+ "b:90:12:117:Infinity:102:12:117:Infinity": 11,
+ "s:90:12:117:Infinity": 52,
+ "s:91:16:101:Infinity": 53,
+ "f:91:33:91:34": 9,
+ "s:92:38:92:Infinity": 54,
+ "b:93:20:99:Infinity:undefined:undefined:undefined:undefined": 12,
+ "s:93:20:99:Infinity": 55,
+ "s:94:37:94:Infinity": 56,
+ "b:95:24:97:Infinity:undefined:undefined:undefined:undefined": 13,
+ "s:95:24:97:Infinity": 57,
+ "s:96:28:96:Infinity": 58,
+ "s:98:24:98:Infinity": 59,
+ "s:100:20:100:Infinity": 60,
+ "b:102:12:117:Infinity:110:12:117:Infinity": 14,
+ "s:102:12:117:Infinity": 61,
+ "s:103:16:109:Infinity": 62,
+ "f:103:33:103:34": 10,
+ "s:104:38:104:Infinity": 63,
+ "b:105:20:107:Infinity:undefined:undefined:undefined:undefined": 15,
+ "s:105:20:107:Infinity": 64,
+ "s:106:24:106:Infinity": 65,
+ "s:108:20:108:Infinity": 66,
+ "b:110:12:117:Infinity:undefined:undefined:undefined:undefined": 16,
+ "s:110:12:117:Infinity": 67,
+ "s:111:16:116:Infinity": 68,
+ "f:111:33:111:34": 11,
+ "b:112:20:114:Infinity:undefined:undefined:undefined:undefined": 17,
+ "s:112:20:114:Infinity": 69,
+ "b:112:24:112:45:112:45:112:74": 18,
+ "s:113:24:113:Infinity": 70,
+ "s:115:20:115:Infinity": 71,
+ "s:120:8:120:Infinity": 72,
+ "s:121:8:121:Infinity": 73,
+ "f:121:15:121:21": 12,
+ "s:121:21:121:Infinity": 74,
+ "s:124:25:129:Infinity": 75,
+ "f:124:25:124:26": 13,
+ "s:125:24:125:Infinity": 76,
+ "b:126:8:128:Infinity:undefined:undefined:undefined:undefined": 19,
+ "s:126:8:128:Infinity": 77,
+ "s:127:12:127:Infinity": 78,
+ "s:131:23:141:Infinity": 79,
+ "f:131:23:131:24": 14,
+ "s:132:28:132:Infinity": 80,
+ "s:134:8:134:Infinity": 81,
+ "f:134:17:134:18": 15,
+ "s:134:32:134:92": 82,
+ "f:134:46:134:47": 16,
+ "s:134:54:134:91": 83,
+ "b:134:75:134:89:134:89:134:91": 20,
+ "s:136:8:140:Infinity": 84,
+ "f:140:17:140:18": 17,
+ "s:140:26:140:67": 85,
+ "s:143:23:153:Infinity": 86,
+ "f:143:23:143:24": 18,
+ "s:144:28:144:Infinity": 87,
+ "s:146:8:146:Infinity": 88,
+ "f:146:17:146:18": 19,
+ "s:146:32:146:92": 89,
+ "f:146:46:146:47": 20,
+ "s:146:54:146:91": 90,
+ "b:146:75:146:89:146:89:146:91": 21,
+ "s:148:8:152:Infinity": 91,
+ "f:152:17:152:18": 21,
+ "s:152:26:152:69": 92,
+ "s:155:4:191:Infinity": 93,
+ "f:155:14:155:20": 22,
+ "s:156:25:180:Infinity": 94,
+ "f:157:12:157:13": 23,
+ "s:158:16:177:Infinity": 95,
+ "f:158:32:158:33": 24,
+ "b:160:20:165:Infinity:undefined:undefined:undefined:undefined": 22,
+ "s:160:20:165:Infinity": 96,
+ "b:161:24:163:Infinity:undefined:undefined:undefined:undefined": 23,
+ "s:161:24:163:Infinity": 97,
+ "b:161:28:161:52:161:52:161:68:161:68:161:79:161:79:161:97": 24,
+ "s:162:28:162:Infinity": 98,
+ "s:164:24:164:Infinity": 99,
+ "b:168:20:176:Infinity:undefined:undefined:undefined:undefined": 25,
+ "s:168:20:176:Infinity": 100,
+ "b:168:24:168:49:168:49:168:83": 26,
+ "s:169:38:169:Infinity": 101,
+ "b:170:24:175:Infinity:undefined:undefined:undefined:undefined": 27,
+ "s:170:24:175:Infinity": 102,
+ "b:170:28:170:45:170:45:170:59:170:59:170:81": 28,
+ "s:171:41:171:Infinity": 103,
+ "b:172:28:174:Infinity:undefined:undefined:undefined:undefined": 29,
+ "s:172:28:174:Infinity": 104,
+ "s:173:32:173:Infinity": 105,
+ "s:182:8:185:Infinity": 106,
+ "f:182:22:182:23": 25,
+ "s:183:23:183:Infinity": 107,
+ "b:184:12:184:Infinity:undefined:undefined:undefined:undefined": 30,
+ "s:184:12:184:Infinity": 108,
+ "s:184:20:184:Infinity": 109,
+ "s:187:25:187:Infinity": 110,
+ "b:188:8:188:Infinity:undefined:undefined:undefined:undefined": 31,
+ "s:188:8:188:Infinity": 111,
+ "s:188:22:188:Infinity": 112,
+ "s:190:8:190:Infinity": 113,
+ "f:190:15:190:21": 26,
+ "s:190:21:190:Infinity": 114,
+ "b:193:4:193:Infinity:undefined:undefined:undefined:undefined": 32,
+ "s:193:4:193:Infinity": 115,
+ "s:193:17:193:Infinity": 116,
+ "b:194:4:194:Infinity:undefined:undefined:undefined:undefined": 33,
+ "s:194:4:194:Infinity": 117,
+ "s:194:15:194:Infinity": 118,
+ "s:197:4:221:Infinity": 119,
+ "b:200:16:200:Infinity:202:16:219:Infinity": 34,
+ "f:203:31:203:32": 27,
+ "s:204:24:212:Infinity": 120,
+ "b:208:65:208:93:208:93:208:Infinity": 35,
+ "f:209:37:209:43": 28,
+ "s:209:43:209:Infinity": 121,
+ "b:214:21:214:Infinity:215:24:217:Infinity": 36,
+ "b:216:43:216:63:216:63:216:Infinity": 37
+ }
+ }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css",
+ "statementMap": {},
+ "fnMap": {},
+ "branchMap": {},
+ "s": {},
+ "f": {},
+ "b": {},
+ "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx",
+ "statementMap": {
+ "0": { "start": { "line": 7, "column": 26 }, "end": { "line": 7, "column": null } },
+ "1": { "start": { "line": 8, "column": 24 }, "end": { "line": 8, "column": null } },
+ "2": { "start": { "line": 9, "column": 30 }, "end": { "line": 9, "column": null } },
+ "3": { "start": { "line": 10, "column": 26 }, "end": { "line": 10, "column": null } },
+ "4": { "start": { "line": 12, "column": 4 }, "end": { "line": 32, "column": null } },
+ "5": { "start": { "line": 13, "column": 8 }, "end": { "line": 31, "column": null } },
+ "6": { "start": { "line": 15, "column": 16 }, "end": { "line": 15, "column": null } },
+ "7": { "start": { "line": 15, "column": 29 }, "end": { "line": 15, "column": null } },
+ "8": { "start": { "line": 16, "column": 16 }, "end": { "line": 16, "column": null } },
+ "9": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } },
+ "10": { "start": { "line": 19, "column": 29 }, "end": { "line": 19, "column": null } },
+ "11": { "start": { "line": 20, "column": 16 }, "end": { "line": 20, "column": null } },
+ "12": { "start": { "line": 24, "column": 16 }, "end": { "line": 24, "column": null } },
+ "13": { "start": { "line": 25, "column": 16 }, "end": { "line": 25, "column": null } },
+ "14": { "start": { "line": 26, "column": 16 }, "end": { "line": 26, "column": null } },
+ "15": { "start": { "line": 29, "column": 16 }, "end": { "line": 29, "column": null } },
+ "16": { "start": { "line": 30, "column": 16 }, "end": { "line": 30, "column": null } },
+ "17": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": null } },
+ "18": { "start": { "line": 34, "column": 17 }, "end": { "line": 34, "column": null } },
+ "19": { "start": { "line": 35, "column": 4 }, "end": { "line": 35, "column": null } },
+ "20": { "start": { "line": 35, "column": 15 }, "end": { "line": 35, "column": null } },
+ "21": { "start": { "line": 37, "column": 4 }, "end": { "line": 78, "column": null } },
+ "22": { "start": { "line": 53, "column": 28 }, "end": { "line": 58, "column": null } },
+ "23": { "start": { "line": 69, "column": 28 }, "end": { "line": 73, "column": null } }
+ },
+ "fnMap": {
+ "0": {
+ "name": "FeedList",
+ "decl": { "start": { "line": 6, "column": 24 }, "end": { "line": 6, "column": 35 } },
+ "loc": { "start": { "line": 6, "column": 35 }, "end": { "line": 80, "column": null } },
+ "line": 6
+ },
+ "1": {
+ "name": "(anonymous_1)",
+ "decl": { "start": { "line": 12, "column": 14 }, "end": { "line": 12, "column": 20 } },
+ "loc": { "start": { "line": 12, "column": 20 }, "end": { "line": 32, "column": 7 } },
+ "line": 12
+ },
+ "2": {
+ "name": "(anonymous_2)",
+ "decl": { "start": { "line": 14, "column": 37 }, "end": { "line": 14, "column": 44 } },
+ "loc": { "start": { "line": 14, "column": 44 }, "end": { "line": 17, "column": 13 } },
+ "line": 14
+ },
+ "3": {
+ "name": "(anonymous_3)",
+ "decl": { "start": { "line": 18, "column": 35 }, "end": { "line": 18, "column": 42 } },
+ "loc": { "start": { "line": 18, "column": 42 }, "end": { "line": 21, "column": 13 } },
+ "line": 18
+ },
+ "4": {
+ "name": "(anonymous_4)",
+ "decl": { "start": { "line": 23, "column": 18 }, "end": { "line": 23, "column": 19 } },
+ "loc": { "start": { "line": 23, "column": 45 }, "end": { "line": 27, "column": 13 } },
+ "line": 23
+ },
+ "5": {
+ "name": "(anonymous_5)",
+ "decl": { "start": { "line": 28, "column": 19 }, "end": { "line": 28, "column": 20 } },
+ "loc": { "start": { "line": 28, "column": 28 }, "end": { "line": 31, "column": 13 } },
+ "line": 28
+ },
+ "6": {
+ "name": "(anonymous_6)",
+ "decl": { "start": { "line": 52, "column": 35 }, "end": { "line": 52, "column": 36 } },
+ "loc": { "start": { "line": 53, "column": 28 }, "end": { "line": 58, "column": null } },
+ "line": 53
+ },
+ "7": {
+ "name": "(anonymous_7)",
+ "decl": { "start": { "line": 68, "column": 34 }, "end": { "line": 68, "column": 35 } },
+ "loc": { "start": { "line": 69, "column": 28 }, "end": { "line": 73, "column": null } },
+ "line": 69
+ }
+ },
+ "branchMap": {
+ "0": {
+ "loc": { "start": { "line": 15, "column": 16 }, "end": { "line": 15, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 15, "column": 16 }, "end": { "line": 15, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 15
+ },
+ "1": {
+ "loc": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 19
+ },
+ "2": {
+ "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 34
+ },
+ "3": {
+ "loc": { "start": { "line": 35, "column": 4 }, "end": { "line": 35, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 35, "column": 4 }, "end": { "line": 35, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 35
+ },
+ "4": {
+ "loc": { "start": { "line": 48, "column": 17 }, "end": { "line": 60, "column": null } },
+ "type": "cond-expr",
+ "locations": [
+ { "start": { "line": 49, "column": 20 }, "end": { "line": 49, "column": null } },
+ { "start": { "line": 51, "column": 20 }, "end": { "line": 60, "column": null } }
+ ],
+ "line": 48
+ },
+ "5": {
+ "loc": { "start": { "line": 55, "column": 37 }, "end": { "line": 55, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 55, "column": 37 }, "end": { "line": 55, "column": 51 } },
+ { "start": { "line": 55, "column": 51 }, "end": { "line": 55, "column": null } }
+ ],
+ "line": 55
+ },
+ "6": {
+ "loc": { "start": { "line": 57, "column": 33 }, "end": { "line": 57, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 57, "column": 33 }, "end": { "line": 57, "column": 50 } },
+ { "start": { "line": 57, "column": 50 }, "end": { "line": 57, "column": null } }
+ ],
+ "line": 57
+ },
+ "7": {
+ "loc": { "start": { "line": 64, "column": 13 }, "end": { "line": 76, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 64, "column": 13 }, "end": { "line": 64, "column": 21 } },
+ { "start": { "line": 64, "column": 21 }, "end": { "line": 64, "column": null } },
+ { "start": { "line": 65, "column": 16 }, "end": { "line": 76, "column": null } }
+ ],
+ "line": 64
+ }
+ },
+ "s": {
+ "0": 11,
+ "1": 11,
+ "2": 11,
+ "3": 11,
+ "4": 11,
+ "5": 6,
+ "6": 4,
+ "7": 0,
+ "8": 4,
+ "9": 4,
+ "10": 0,
+ "11": 4,
+ "12": 4,
+ "13": 4,
+ "14": 4,
+ "15": 1,
+ "16": 1,
+ "17": 11,
+ "18": 6,
+ "19": 5,
+ "20": 5,
+ "21": 4,
+ "22": 3,
+ "23": 3
+ },
+ "f": { "0": 11, "1": 6, "2": 4, "3": 4, "4": 4, "5": 1, "6": 3, "7": 3 },
+ "b": {
+ "0": [0, 4],
+ "1": [0, 4],
+ "2": [6, 5],
+ "3": [1, 4],
+ "4": [2, 2],
+ "5": [3, 0],
+ "6": [3, 3],
+ "7": [11, 4, 2]
+ },
+ "meta": {
+ "lastBranch": 8,
+ "lastFunction": 8,
+ "lastStatement": 24,
+ "seen": {
+ "f:6:24:6:35": 0,
+ "s:7:26:7:Infinity": 0,
+ "s:8:24:8:Infinity": 1,
+ "s:9:30:9:Infinity": 2,
+ "s:10:26:10:Infinity": 3,
+ "s:12:4:32:Infinity": 4,
+ "f:12:14:12:20": 1,
+ "s:13:8:31:Infinity": 5,
+ "f:14:37:14:44": 2,
+ "b:15:16:15:Infinity:undefined:undefined:undefined:undefined": 0,
+ "s:15:16:15:Infinity": 6,
+ "s:15:29:15:Infinity": 7,
+ "s:16:16:16:Infinity": 8,
+ "f:18:35:18:42": 3,
+ "b:19:16:19:Infinity:undefined:undefined:undefined:undefined": 1,
+ "s:19:16:19:Infinity": 9,
+ "s:19:29:19:Infinity": 10,
+ "s:20:16:20:Infinity": 11,
+ "f:23:18:23:19": 4,
+ "s:24:16:24:Infinity": 12,
+ "s:25:16:25:Infinity": 13,
+ "s:26:16:26:Infinity": 14,
+ "f:28:19:28:20": 5,
+ "s:29:16:29:Infinity": 15,
+ "s:30:16:30:Infinity": 16,
+ "b:34:4:34:Infinity:undefined:undefined:undefined:undefined": 2,
+ "s:34:4:34:Infinity": 17,
+ "s:34:17:34:Infinity": 18,
+ "b:35:4:35:Infinity:undefined:undefined:undefined:undefined": 3,
+ "s:35:4:35:Infinity": 19,
+ "s:35:15:35:Infinity": 20,
+ "s:37:4:78:Infinity": 21,
+ "b:49:20:49:Infinity:51:20:60:Infinity": 4,
+ "f:52:35:52:36": 6,
+ "s:53:28:58:Infinity": 22,
+ "b:55:37:55:51:55:51:55:Infinity": 5,
+ "b:57:33:57:50:57:50:57:Infinity": 6,
+ "b:64:13:64:21:64:21:64:Infinity:65:16:76:Infinity": 7,
+ "f:68:34:68:35": 7,
+ "s:69:28:73:Infinity": 23
+ }
+ }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css",
+ "statementMap": {},
+ "fnMap": {},
+ "branchMap": {},
+ "s": {},
+ "f": {},
+ "b": {},
+ "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx",
+ "statementMap": {
+ "0": { "start": { "line": 6, "column": 32 }, "end": { "line": 6, "column": null } },
+ "1": { "start": { "line": 7, "column": 26 }, "end": { "line": 7, "column": null } },
+ "2": { "start": { "line": 8, "column": 10 }, "end": { "line": 8, "column": null } },
+ "3": { "start": { "line": 10, "column": 25 }, "end": { "line": 33, "column": null } },
+ "4": { "start": { "line": 11, "column": 8 }, "end": { "line": 11, "column": null } },
+ "5": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": null } },
+ "6": { "start": { "line": 14, "column": 8 }, "end": { "line": 32, "column": null } },
+ "7": { "start": { "line": 16, "column": 27 }, "end": { "line": 16, "column": null } },
+ "8": { "start": { "line": 17, "column": 12 }, "end": { "line": 17, "column": null } },
+ "9": { "start": { "line": 19, "column": 24 }, "end": { "line": 22, "column": null } },
+ "10": { "start": { "line": 24, "column": 12 }, "end": { "line": 29, "column": null } },
+ "11": { "start": { "line": 25, "column": 16 }, "end": { "line": 25, "column": null } },
+ "12": { "start": { "line": 27, "column": 29 }, "end": { "line": 27, "column": null } },
+ "13": { "start": { "line": 28, "column": 16 }, "end": { "line": 28, "column": null } },
+ "14": { "start": { "line": 31, "column": 12 }, "end": { "line": 31, "column": null } },
+ "15": { "start": { "line": 35, "column": 4 }, "end": { "line": 52, "column": null } },
+ "16": { "start": { "line": 45, "column": 41 }, "end": { "line": 45, "column": null } }
+ },
+ "fnMap": {
+ "0": {
+ "name": "Login",
+ "decl": { "start": { "line": 5, "column": 24 }, "end": { "line": 5, "column": 32 } },
+ "loc": { "start": { "line": 5, "column": 32 }, "end": { "line": 54, "column": null } },
+ "line": 5
+ },
+ "1": {
+ "name": "(anonymous_1)",
+ "decl": { "start": { "line": 10, "column": 25 }, "end": { "line": 10, "column": 32 } },
+ "loc": { "start": { "line": 10, "column": 49 }, "end": { "line": 33, "column": null } },
+ "line": 10
+ },
+ "2": {
+ "name": "(anonymous_2)",
+ "decl": { "start": { "line": 45, "column": 34 }, "end": { "line": 45, "column": 35 } },
+ "loc": { "start": { "line": 45, "column": 41 }, "end": { "line": 45, "column": null } },
+ "line": 45
+ }
+ },
+ "branchMap": {
+ "0": {
+ "loc": { "start": { "line": 24, "column": 12 }, "end": { "line": 29, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 24, "column": 12 }, "end": { "line": 29, "column": null } },
+ { "start": { "line": 26, "column": 19 }, "end": { "line": 29, "column": null } }
+ ],
+ "line": 24
+ },
+ "1": {
+ "loc": { "start": { "line": 28, "column": 25 }, "end": { "line": 28, "column": 55 } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 28, "column": 25 }, "end": { "line": 28, "column": 41 } },
+ { "start": { "line": 28, "column": 41 }, "end": { "line": 28, "column": 55 } }
+ ],
+ "line": 28
+ },
+ "2": {
+ "loc": { "start": { "line": 49, "column": 17 }, "end": { "line": 49, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 49, "column": 17 }, "end": { "line": 49, "column": 26 } },
+ { "start": { "line": 49, "column": 26 }, "end": { "line": 49, "column": null } }
+ ],
+ "line": 49
+ }
+ },
+ "s": {
+ "0": 14,
+ "1": 14,
+ "2": 14,
+ "3": 14,
+ "4": 3,
+ "5": 3,
+ "6": 3,
+ "7": 3,
+ "8": 3,
+ "9": 3,
+ "10": 2,
+ "11": 1,
+ "12": 1,
+ "13": 1,
+ "14": 1,
+ "15": 14,
+ "16": 3
+ },
+ "f": { "0": 14, "1": 3, "2": 3 },
+ "b": { "0": [1, 1], "1": [1, 0], "2": [14, 2] },
+ "meta": {
+ "lastBranch": 3,
+ "lastFunction": 3,
+ "lastStatement": 17,
+ "seen": {
+ "f:5:24:5:32": 0,
+ "s:6:32:6:Infinity": 0,
+ "s:7:26:7:Infinity": 1,
+ "s:8:10:8:Infinity": 2,
+ "s:10:25:33:Infinity": 3,
+ "f:10:25:10:32": 1,
+ "s:11:8:11:Infinity": 4,
+ "s:12:8:12:Infinity": 5,
+ "s:14:8:32:Infinity": 6,
+ "s:16:27:16:Infinity": 7,
+ "s:17:12:17:Infinity": 8,
+ "s:19:24:22:Infinity": 9,
+ "b:24:12:29:Infinity:26:19:29:Infinity": 0,
+ "s:24:12:29:Infinity": 10,
+ "s:25:16:25:Infinity": 11,
+ "s:27:29:27:Infinity": 12,
+ "s:28:16:28:Infinity": 13,
+ "b:28:25:28:41:28:41:28:55": 1,
+ "s:31:12:31:Infinity": 14,
+ "s:35:4:52:Infinity": 15,
+ "f:45:34:45:35": 2,
+ "s:45:41:45:Infinity": 16,
+ "b:49:17:49:26:49:26:49:Infinity": 2
+ }
+ }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css",
+ "statementMap": {},
+ "fnMap": {},
+ "branchMap": {},
+ "s": {},
+ "f": {},
+ "b": {},
+ "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} }
+ },
+ "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx": {
+ "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx",
+ "statementMap": {
+ "0": { "start": { "line": 6, "column": 26 }, "end": { "line": 6, "column": null } },
+ "1": { "start": { "line": 7, "column": 36 }, "end": { "line": 7, "column": null } },
+ "2": { "start": { "line": 8, "column": 30 }, "end": { "line": 8, "column": null } },
+ "3": { "start": { "line": 9, "column": 26 }, "end": { "line": 9, "column": null } },
+ "4": { "start": { "line": 11, "column": 4 }, "end": { "line": 13, "column": null } },
+ "5": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": null } },
+ "6": { "start": { "line": 15, "column": 23 }, "end": { "line": 30, "column": null } },
+ "7": { "start": { "line": 16, "column": 8 }, "end": { "line": 16, "column": null } },
+ "8": { "start": { "line": 17, "column": 8 }, "end": { "line": 29, "column": null } },
+ "9": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } },
+ "10": { "start": { "line": 19, "column": 29 }, "end": { "line": 19, "column": null } },
+ "11": { "start": { "line": 20, "column": 16 }, "end": { "line": 20, "column": null } },
+ "12": { "start": { "line": 23, "column": 16 }, "end": { "line": 23, "column": null } },
+ "13": { "start": { "line": 24, "column": 16 }, "end": { "line": 24, "column": null } },
+ "14": { "start": { "line": 27, "column": 16 }, "end": { "line": 27, "column": null } },
+ "15": { "start": { "line": 28, "column": 16 }, "end": { "line": 28, "column": null } },
+ "16": { "start": { "line": 32, "column": 26 }, "end": { "line": 54, "column": null } },
+ "17": { "start": { "line": 33, "column": 8 }, "end": { "line": 33, "column": null } },
+ "18": { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": null } },
+ "19": { "start": { "line": 34, "column": 25 }, "end": { "line": 34, "column": null } },
+ "20": { "start": { "line": 36, "column": 8 }, "end": { "line": 36, "column": null } },
+ "21": { "start": { "line": 37, "column": 8 }, "end": { "line": 53, "column": null } },
+ "22": { "start": { "line": 43, "column": 16 }, "end": { "line": 43, "column": null } },
+ "23": { "start": { "line": 43, "column": 29 }, "end": { "line": 43, "column": null } },
+ "24": { "start": { "line": 44, "column": 16 }, "end": { "line": 44, "column": null } },
+ "25": { "start": { "line": 47, "column": 16 }, "end": { "line": 47, "column": null } },
+ "26": { "start": { "line": 48, "column": 16 }, "end": { "line": 48, "column": null } },
+ "27": { "start": { "line": 51, "column": 16 }, "end": { "line": 51, "column": null } },
+ "28": { "start": { "line": 52, "column": 16 }, "end": { "line": 52, "column": null } },
+ "29": { "start": { "line": 56, "column": 29 }, "end": { "line": 72, "column": null } },
+ "30": { "start": { "line": 57, "column": 8 }, "end": { "line": 57, "column": null } },
+ "31": { "start": { "line": 57, "column": 79 }, "end": { "line": 57, "column": null } },
+ "32": { "start": { "line": 59, "column": 8 }, "end": { "line": 59, "column": null } },
+ "33": { "start": { "line": 60, "column": 8 }, "end": { "line": 71, "column": null } },
+ "34": { "start": { "line": 64, "column": 16 }, "end": { "line": 64, "column": null } },
+ "35": { "start": { "line": 64, "column": 29 }, "end": { "line": 64, "column": null } },
+ "36": { "start": { "line": 65, "column": 16 }, "end": { "line": 65, "column": null } },
+ "37": { "start": { "line": 65, "column": 45 }, "end": { "line": 65, "column": 57 } },
+ "38": { "start": { "line": 66, "column": 16 }, "end": { "line": 66, "column": null } },
+ "39": { "start": { "line": 69, "column": 16 }, "end": { "line": 69, "column": null } },
+ "40": { "start": { "line": 70, "column": 16 }, "end": { "line": 70, "column": null } },
+ "41": { "start": { "line": 74, "column": 4 }, "end": { "line": 119, "column": null } },
+ "42": { "start": { "line": 84, "column": 41 }, "end": { "line": 84, "column": null } },
+ "43": { "start": { "line": 102, "column": 24 }, "end": { "line": 115, "column": null } },
+ "44": { "start": { "line": 108, "column": 47 }, "end": { "line": 108, "column": null } }
+ },
+ "fnMap": {
+ "0": {
+ "name": "Settings",
+ "decl": { "start": { "line": 5, "column": 24 }, "end": { "line": 5, "column": 35 } },
+ "loc": { "start": { "line": 5, "column": 35 }, "end": { "line": 121, "column": null } },
+ "line": 5
+ },
+ "1": {
+ "name": "(anonymous_1)",
+ "decl": { "start": { "line": 11, "column": 14 }, "end": { "line": 11, "column": 20 } },
+ "loc": { "start": { "line": 11, "column": 20 }, "end": { "line": 13, "column": 7 } },
+ "line": 11
+ },
+ "2": {
+ "name": "(anonymous_2)",
+ "decl": { "start": { "line": 15, "column": 23 }, "end": { "line": 15, "column": 29 } },
+ "loc": { "start": { "line": 15, "column": 29 }, "end": { "line": 30, "column": null } },
+ "line": 15
+ },
+ "3": {
+ "name": "(anonymous_3)",
+ "decl": { "start": { "line": 18, "column": 18 }, "end": { "line": 18, "column": 19 } },
+ "loc": { "start": { "line": 18, "column": 27 }, "end": { "line": 21, "column": 13 } },
+ "line": 18
+ },
+ "4": {
+ "name": "(anonymous_4)",
+ "decl": { "start": { "line": 22, "column": 18 }, "end": { "line": 22, "column": 19 } },
+ "loc": { "start": { "line": 22, "column": 28 }, "end": { "line": 25, "column": 13 } },
+ "line": 22
+ },
+ "5": {
+ "name": "(anonymous_5)",
+ "decl": { "start": { "line": 26, "column": 19 }, "end": { "line": 26, "column": 20 } },
+ "loc": { "start": { "line": 26, "column": 28 }, "end": { "line": 29, "column": 13 } },
+ "line": 26
+ },
+ "6": {
+ "name": "(anonymous_6)",
+ "decl": { "start": { "line": 32, "column": 26 }, "end": { "line": 32, "column": 27 } },
+ "loc": { "start": { "line": 32, "column": 50 }, "end": { "line": 54, "column": null } },
+ "line": 32
+ },
+ "7": {
+ "name": "(anonymous_7)",
+ "decl": { "start": { "line": 42, "column": 18 }, "end": { "line": 42, "column": 19 } },
+ "loc": { "start": { "line": 42, "column": 27 }, "end": { "line": 45, "column": 13 } },
+ "line": 42
+ },
+ "8": {
+ "name": "(anonymous_8)",
+ "decl": { "start": { "line": 46, "column": 18 }, "end": { "line": 46, "column": 24 } },
+ "loc": { "start": { "line": 46, "column": 24 }, "end": { "line": 49, "column": 13 } },
+ "line": 46
+ },
+ "9": {
+ "name": "(anonymous_9)",
+ "decl": { "start": { "line": 50, "column": 19 }, "end": { "line": 50, "column": 20 } },
+ "loc": { "start": { "line": 50, "column": 28 }, "end": { "line": 53, "column": 13 } },
+ "line": 50
+ },
+ "10": {
+ "name": "(anonymous_10)",
+ "decl": { "start": { "line": 56, "column": 29 }, "end": { "line": 56, "column": 30 } },
+ "loc": { "start": { "line": 56, "column": 45 }, "end": { "line": 72, "column": null } },
+ "line": 56
+ },
+ "11": {
+ "name": "(anonymous_11)",
+ "decl": { "start": { "line": 63, "column": 18 }, "end": { "line": 63, "column": 19 } },
+ "loc": { "start": { "line": 63, "column": 27 }, "end": { "line": 67, "column": 13 } },
+ "line": 63
+ },
+ "12": {
+ "name": "(anonymous_12)",
+ "decl": { "start": { "line": 65, "column": 38 }, "end": { "line": 65, "column": 39 } },
+ "loc": { "start": { "line": 65, "column": 45 }, "end": { "line": 65, "column": 57 } },
+ "line": 65
+ },
+ "13": {
+ "name": "(anonymous_13)",
+ "decl": { "start": { "line": 68, "column": 19 }, "end": { "line": 68, "column": 20 } },
+ "loc": { "start": { "line": 68, "column": 28 }, "end": { "line": 71, "column": 13 } },
+ "line": 68
+ },
+ "14": {
+ "name": "(anonymous_14)",
+ "decl": { "start": { "line": 84, "column": 34 }, "end": { "line": 84, "column": 35 } },
+ "loc": { "start": { "line": 84, "column": 41 }, "end": { "line": 84, "column": null } },
+ "line": 84
+ },
+ "15": {
+ "name": "(anonymous_15)",
+ "decl": { "start": { "line": 101, "column": 31 }, "end": { "line": 101, "column": 32 } },
+ "loc": { "start": { "line": 102, "column": 24 }, "end": { "line": 115, "column": null } },
+ "line": 102
+ },
+ "16": {
+ "name": "(anonymous_16)",
+ "decl": { "start": { "line": 108, "column": 41 }, "end": { "line": 108, "column": 47 } },
+ "loc": { "start": { "line": 108, "column": 47 }, "end": { "line": 108, "column": null } },
+ "line": 108
+ }
+ },
+ "branchMap": {
+ "0": {
+ "loc": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 19
+ },
+ "1": {
+ "loc": { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 34
+ },
+ "2": {
+ "loc": { "start": { "line": 43, "column": 16 }, "end": { "line": 43, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 43, "column": 16 }, "end": { "line": 43, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 43
+ },
+ "3": {
+ "loc": { "start": { "line": 57, "column": 8 }, "end": { "line": 57, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 57, "column": 8 }, "end": { "line": 57, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 57
+ },
+ "4": {
+ "loc": { "start": { "line": 64, "column": 16 }, "end": { "line": 64, "column": null } },
+ "type": "if",
+ "locations": [
+ { "start": { "line": 64, "column": 16 }, "end": { "line": 64, "column": null } },
+ { "start": {}, "end": {} }
+ ],
+ "line": 64
+ },
+ "5": {
+ "loc": { "start": { "line": 94, "column": 17 }, "end": { "line": 94, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 94, "column": 17 }, "end": { "line": 94, "column": 26 } },
+ { "start": { "line": 94, "column": 26 }, "end": { "line": 94, "column": null } }
+ ],
+ "line": 94
+ },
+ "6": {
+ "loc": { "start": { "line": 99, "column": 17 }, "end": { "line": 99, "column": null } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 99, "column": 17 }, "end": { "line": 99, "column": 28 } },
+ { "start": { "line": 99, "column": 28 }, "end": { "line": 99, "column": null } }
+ ],
+ "line": 99
+ },
+ "7": {
+ "loc": { "start": { "line": 104, "column": 62 }, "end": { "line": 104, "column": 89 } },
+ "type": "binary-expr",
+ "locations": [
+ { "start": { "line": 104, "column": 62 }, "end": { "line": 104, "column": 76 } },
+ { "start": { "line": 104, "column": 76 }, "end": { "line": 104, "column": 89 } }
+ ],
+ "line": 104
+ }
+ },
+ "s": {
+ "0": 14,
+ "1": 14,
+ "2": 14,
+ "3": 14,
+ "4": 14,
+ "5": 3,
+ "6": 14,
+ "7": 4,
+ "8": 4,
+ "9": 4,
+ "10": 0,
+ "11": 4,
+ "12": 4,
+ "13": 4,
+ "14": 0,
+ "15": 0,
+ "16": 14,
+ "17": 1,
+ "18": 1,
+ "19": 0,
+ "20": 1,
+ "21": 1,
+ "22": 1,
+ "23": 0,
+ "24": 1,
+ "25": 1,
+ "26": 1,
+ "27": 0,
+ "28": 0,
+ "29": 14,
+ "30": 1,
+ "31": 0,
+ "32": 1,
+ "33": 1,
+ "34": 1,
+ "35": 0,
+ "36": 1,
+ "37": 1,
+ "38": 1,
+ "39": 0,
+ "40": 0,
+ "41": 14,
+ "42": 1,
+ "43": 5,
+ "44": 1
+ },
+ "f": {
+ "0": 14,
+ "1": 3,
+ "2": 4,
+ "3": 4,
+ "4": 4,
+ "5": 0,
+ "6": 1,
+ "7": 1,
+ "8": 1,
+ "9": 0,
+ "10": 1,
+ "11": 1,
+ "12": 1,
+ "13": 0,
+ "14": 1,
+ "15": 5,
+ "16": 1
+ },
+ "b": {
+ "0": [0, 4],
+ "1": [0, 1],
+ "2": [0, 1],
+ "3": [0, 1],
+ "4": [0, 1],
+ "5": [14, 0],
+ "6": [14, 5],
+ "7": [5, 0]
+ },
+ "meta": {
+ "lastBranch": 8,
+ "lastFunction": 17,
+ "lastStatement": 45,
+ "seen": {
+ "f:5:24:5:35": 0,
+ "s:6:26:6:Infinity": 0,
+ "s:7:36:7:Infinity": 1,
+ "s:8:30:8:Infinity": 2,
+ "s:9:26:9:Infinity": 3,
+ "s:11:4:13:Infinity": 4,
+ "f:11:14:11:20": 1,
+ "s:12:8:12:Infinity": 5,
+ "s:15:23:30:Infinity": 6,
+ "f:15:23:15:29": 2,
+ "s:16:8:16:Infinity": 7,
+ "s:17:8:29:Infinity": 8,
+ "f:18:18:18:19": 3,
+ "b:19:16:19:Infinity:undefined:undefined:undefined:undefined": 0,
+ "s:19:16:19:Infinity": 9,
+ "s:19:29:19:Infinity": 10,
+ "s:20:16:20:Infinity": 11,
+ "f:22:18:22:19": 4,
+ "s:23:16:23:Infinity": 12,
+ "s:24:16:24:Infinity": 13,
+ "f:26:19:26:20": 5,
+ "s:27:16:27:Infinity": 14,
+ "s:28:16:28:Infinity": 15,
+ "s:32:26:54:Infinity": 16,
+ "f:32:26:32:27": 6,
+ "s:33:8:33:Infinity": 17,
+ "b:34:8:34:Infinity:undefined:undefined:undefined:undefined": 1,
+ "s:34:8:34:Infinity": 18,
+ "s:34:25:34:Infinity": 19,
+ "s:36:8:36:Infinity": 20,
+ "s:37:8:53:Infinity": 21,
+ "f:42:18:42:19": 7,
+ "b:43:16:43:Infinity:undefined:undefined:undefined:undefined": 2,
+ "s:43:16:43:Infinity": 22,
+ "s:43:29:43:Infinity": 23,
+ "s:44:16:44:Infinity": 24,
+ "f:46:18:46:24": 8,
+ "s:47:16:47:Infinity": 25,
+ "s:48:16:48:Infinity": 26,
+ "f:50:19:50:20": 9,
+ "s:51:16:51:Infinity": 27,
+ "s:52:16:52:Infinity": 28,
+ "s:56:29:72:Infinity": 29,
+ "f:56:29:56:30": 10,
+ "b:57:8:57:Infinity:undefined:undefined:undefined:undefined": 3,
+ "s:57:8:57:Infinity": 30,
+ "s:57:79:57:Infinity": 31,
+ "s:59:8:59:Infinity": 32,
+ "s:60:8:71:Infinity": 33,
+ "f:63:18:63:19": 11,
+ "b:64:16:64:Infinity:undefined:undefined:undefined:undefined": 4,
+ "s:64:16:64:Infinity": 34,
+ "s:64:29:64:Infinity": 35,
+ "s:65:16:65:Infinity": 36,
+ "f:65:38:65:39": 12,
+ "s:65:45:65:57": 37,
+ "s:66:16:66:Infinity": 38,
+ "f:68:19:68:20": 13,
+ "s:69:16:69:Infinity": 39,
+ "s:70:16:70:Infinity": 40,
+ "s:74:4:119:Infinity": 41,
+ "f:84:34:84:35": 14,
+ "s:84:41:84:Infinity": 42,
+ "b:94:17:94:26:94:26:94:Infinity": 5,
+ "b:99:17:99:28:99:28:99:Infinity": 6,
+ "f:101:31:101:32": 15,
+ "s:102:24:115:Infinity": 43,
+ "b:104:62:104:76:104:76:104:89": 7,
+ "f:108:41:108:47": 16,
+ "s:108:47:108:Infinity": 44
+ }
+ }
+ }
}
diff --git a/frontend/coverage/index.html b/frontend/coverage/index.html
index 450975d..bd1150d 100644
--- a/frontend/coverage/index.html
+++ b/frontend/coverage/index.html
@@ -1,131 +1,141 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for All files</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
<h1>All files</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">86.17% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>212/246</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">76.76% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>109/142</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">86.3% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>63/73</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">88.39% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>198/224</span>
- </div>
-
-
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">86.17% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">212/246</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">76.76% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">109/142</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">86.3% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">63/73</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">88.39% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">198/224</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line high'></div>
- <div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file medium" data-value="src"><a href="src/index.html">src</a></td>
- <td data-value="78.94" class="pic medium">
- <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
- </td>
- <td data-value="78.94" class="pct medium">78.94%</td>
- <td data-value="19" class="abs medium">15/19</td>
- <td data-value="66.66" class="pct medium">66.66%</td>
- <td data-value="6" class="abs medium">4/6</td>
- <td data-value="77.77" class="pct medium">77.77%</td>
- <td data-value="9" class="abs medium">7/9</td>
- <td data-value="78.94" class="pct medium">78.94%</td>
- <td data-value="19" class="abs medium">15/19</td>
- </tr>
-
-<tr>
- <td class="file high" data-value="src/components"><a href="src/components/index.html">src/components</a></td>
- <td data-value="86.78" class="pic high">
- <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
- </td>
- <td data-value="86.78" class="pct high">86.78%</td>
- <td data-value="227" class="abs high">197/227</td>
- <td data-value="77.2" class="pct medium">77.2%</td>
- <td data-value="136" class="abs medium">105/136</td>
- <td data-value="87.5" class="pct high">87.5%</td>
- <td data-value="64" class="abs high">56/64</td>
- <td data-value="89.26" class="pct high">89.26%</td>
- <td data-value="205" class="abs high">183/205</td>
- </tr>
+ </div>
+ <div class="status-line high"></div>
+ <div class="pad1">
+ <table class="coverage-summary">
+ <thead>
+ <tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th
+ data-col="pic"
+ data-type="number"
+ data-fmt="html"
+ data-html="true"
+ class="pic"
+ ></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">
+ Statements
+ </th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="file medium" data-value="src"><a href="src/index.html">src</a></td>
+ <td data-value="78.94" class="pic medium">
+ <div class="chart">
+ <div class="cover-fill" style="width: 78%"></div>
+ <div class="cover-empty" style="width: 22%"></div>
+ </div>
+ </td>
+ <td data-value="78.94" class="pct medium">78.94%</td>
+ <td data-value="19" class="abs medium">15/19</td>
+ <td data-value="66.66" class="pct medium">66.66%</td>
+ <td data-value="6" class="abs medium">4/6</td>
+ <td data-value="77.77" class="pct medium">77.77%</td>
+ <td data-value="9" class="abs medium">7/9</td>
+ <td data-value="78.94" class="pct medium">78.94%</td>
+ <td data-value="19" class="abs medium">15/19</td>
+ </tr>
-</tbody>
-</table>
-</div>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="sorter.js"></script>
- <script src="block-navigation.js"></script>
- </body>
+ <tr>
+ <td class="file high" data-value="src/components">
+ <a href="src/components/index.html">src/components</a>
+ </td>
+ <td data-value="86.78" class="pic high">
+ <div class="chart">
+ <div class="cover-fill" style="width: 86%"></div>
+ <div class="cover-empty" style="width: 14%"></div>
+ </div>
+ </td>
+ <td data-value="86.78" class="pct high">86.78%</td>
+ <td data-value="227" class="abs high">197/227</td>
+ <td data-value="77.2" class="pct medium">77.2%</td>
+ <td data-value="136" class="abs medium">105/136</td>
+ <td data-value="87.5" class="pct high">87.5%</td>
+ <td data-value="64" class="abs high">56/64</td>
+ <td data-value="89.26" class="pct high">89.26%</td>
+ <td data-value="205" class="abs high">183/205</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="sorter.js"></script>
+ <script src="block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/prettify.css b/frontend/coverage/prettify.css
index b317a7c..006492c 100644
--- a/frontend/coverage/prettify.css
+++ b/frontend/coverage/prettify.css
@@ -1 +1,101 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
+.pln {
+ color: #000;
+}
+@media screen {
+ .str {
+ color: #080;
+ }
+ .kwd {
+ color: #008;
+ }
+ .com {
+ color: #800;
+ }
+ .typ {
+ color: #606;
+ }
+ .lit {
+ color: #066;
+ }
+ .pun,
+ .opn,
+ .clo {
+ color: #660;
+ }
+ .tag {
+ color: #008;
+ }
+ .atn {
+ color: #606;
+ }
+ .atv {
+ color: #080;
+ }
+ .dec,
+ .var {
+ color: #606;
+ }
+ .fun {
+ color: red;
+ }
+}
+@media print, projection {
+ .str {
+ color: #060;
+ }
+ .kwd {
+ color: #006;
+ font-weight: bold;
+ }
+ .com {
+ color: #600;
+ font-style: italic;
+ }
+ .typ {
+ color: #404;
+ font-weight: bold;
+ }
+ .lit {
+ color: #044;
+ }
+ .pun,
+ .opn,
+ .clo {
+ color: #440;
+ }
+ .tag {
+ color: #006;
+ font-weight: bold;
+ }
+ .atn {
+ color: #404;
+ }
+ .atv {
+ color: #060;
+ }
+}
+pre.prettyprint {
+ padding: 2px;
+ border: 1px solid #888;
+}
+ol.linenums {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L5,
+li.L6,
+li.L7,
+li.L8 {
+ list-style-type: none;
+}
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+ background: #eee;
+}
diff --git a/frontend/coverage/prettify.js b/frontend/coverage/prettify.js
index b322523..a318211 100644
--- a/frontend/coverage/prettify.js
+++ b/frontend/coverage/prettify.js
@@ -1,2 +1,937 @@
-/* eslint-disable */
-window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"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 p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"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,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,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 r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="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 I=[h,"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 f=[h,"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 H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.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 ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["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"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
+
+window.PR_SHOULD_USE_CONTINUATION = true;
+(function () {
+ var h = ['break,continue,do,else,for,if,return,while'];
+ var u = [
+ h,
+ '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 p = [
+ u,
+ 'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof',
+ ];
+ var l = [
+ p,
+ '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,where',
+ ];
+ var x = [
+ p,
+ 'abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient',
+ ];
+ var R = [
+ x,
+ 'as,base,by,checked,decimal,delegate,descending,dynamic,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 r =
+ 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes';
+ var w = [p, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN'];
+ var s =
+ '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 I = [
+ h,
+ '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 f = [
+ h,
+ '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 H = [h, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until'];
+ var A = [l, R, w, s + I, f, H];
+ var e =
+ /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;
+ var C = 'str';
+ var z = 'kwd';
+ var j = 'com';
+ var O = 'typ';
+ var G = 'lit';
+ var L = 'pun';
+ var F = 'pln';
+ var m = 'tag';
+ var E = 'dec';
+ var J = 'src';
+ var P = 'atn';
+ var n = 'atv';
+ var N = 'nocode';
+ var M =
+ '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
+ function k(Z) {
+ var ad = 0;
+ var S = false;
+ var ac = false;
+ for (var V = 0, U = Z.length; V < U; ++V) {
+ var ae = Z[V];
+ if (ae.ignoreCase) {
+ ac = true;
+ } else {
+ if (/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+ S = true;
+ ac = false;
+ break;
+ }
+ }
+ }
+ var Y = { b: 8, t: 9, n: 10, v: 11, f: 12, r: 13 };
+ function ab(ah) {
+ var ag = ah.charCodeAt(0);
+ if (ag !== 92) {
+ return ag;
+ }
+ var af = ah.charAt(1);
+ ag = Y[af];
+ if (ag) {
+ return ag;
+ } else {
+ if ('0' <= af && af <= '7') {
+ return parseInt(ah.substring(1), 8);
+ } else {
+ if (af === 'u' || af === 'x') {
+ return parseInt(ah.substring(2), 16);
+ } else {
+ return ah.charCodeAt(1);
+ }
+ }
+ }
+ }
+ function T(af) {
+ if (af < 32) {
+ return (af < 16 ? '\\x0' : '\\x') + af.toString(16);
+ }
+ var ag = String.fromCharCode(af);
+ if (ag === '\\' || ag === '-' || ag === '[' || ag === ']') {
+ ag = '\\' + ag;
+ }
+ return ag;
+ }
+ function X(am) {
+ var aq = am
+ .substring(1, am.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 ak = [];
+ var af = [];
+ var ao = aq[0] === '^';
+ for (var ar = ao ? 1 : 0, aj = aq.length; ar < aj; ++ar) {
+ var ah = aq[ar];
+ if (/\\[bdsw]/i.test(ah)) {
+ ak.push(ah);
+ } else {
+ var ag = ab(ah);
+ var al;
+ if (ar + 2 < aj && '-' === aq[ar + 1]) {
+ al = ab(aq[ar + 2]);
+ ar += 2;
+ } else {
+ al = ag;
+ }
+ af.push([ag, al]);
+ if (!(al < 65 || ag > 122)) {
+ if (!(al < 65 || ag > 90)) {
+ af.push([Math.max(65, ag) | 32, Math.min(al, 90) | 32]);
+ }
+ if (!(al < 97 || ag > 122)) {
+ af.push([Math.max(97, ag) & ~32, Math.min(al, 122) & ~32]);
+ }
+ }
+ }
+ }
+ af.sort(function (av, au) {
+ return av[0] - au[0] || au[1] - av[1];
+ });
+ var ai = [];
+ var ap = [NaN, NaN];
+ for (var ar = 0; ar < af.length; ++ar) {
+ var at = af[ar];
+ if (at[0] <= ap[1] + 1) {
+ ap[1] = Math.max(ap[1], at[1]);
+ } else {
+ ai.push((ap = at));
+ }
+ }
+ var an = ['['];
+ if (ao) {
+ an.push('^');
+ }
+ an.push.apply(an, ak);
+ for (var ar = 0; ar < ai.length; ++ar) {
+ var at = ai[ar];
+ an.push(T(at[0]));
+ if (at[1] > at[0]) {
+ if (at[1] + 1 > at[0]) {
+ an.push('-');
+ }
+ an.push(T(at[1]));
+ }
+ }
+ an.push(']');
+ return an.join('');
+ }
+ function W(al) {
+ var aj = al.source.match(
+ new RegExp(
+ '(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)',
+ 'g'
+ )
+ );
+ var ah = aj.length;
+ var an = [];
+ for (var ak = 0, am = 0; ak < ah; ++ak) {
+ var ag = aj[ak];
+ if (ag === '(') {
+ ++am;
+ } else {
+ if ('\\' === ag.charAt(0)) {
+ var af = +ag.substring(1);
+ if (af && af <= am) {
+ an[af] = -1;
+ }
+ }
+ }
+ }
+ for (var ak = 1; ak < an.length; ++ak) {
+ if (-1 === an[ak]) {
+ an[ak] = ++ad;
+ }
+ }
+ for (var ak = 0, am = 0; ak < ah; ++ak) {
+ var ag = aj[ak];
+ if (ag === '(') {
+ ++am;
+ if (an[am] === undefined) {
+ aj[ak] = '(?:';
+ }
+ } else {
+ if ('\\' === ag.charAt(0)) {
+ var af = +ag.substring(1);
+ if (af && af <= am) {
+ aj[ak] = '\\' + an[am];
+ }
+ }
+ }
+ }
+ for (var ak = 0, am = 0; ak < ah; ++ak) {
+ if ('^' === aj[ak] && '^' !== aj[ak + 1]) {
+ aj[ak] = '';
+ }
+ }
+ if (al.ignoreCase && S) {
+ for (var ak = 0; ak < ah; ++ak) {
+ var ag = aj[ak];
+ var ai = ag.charAt(0);
+ if (ag.length >= 2 && ai === '[') {
+ aj[ak] = X(ag);
+ } else {
+ if (ai !== '\\') {
+ aj[ak] = ag.replace(/[a-zA-Z]/g, function (ao) {
+ var ap = ao.charCodeAt(0);
+ return '[' + String.fromCharCode(ap & ~32, ap | 32) + ']';
+ });
+ }
+ }
+ }
+ }
+ return aj.join('');
+ }
+ var aa = [];
+ for (var V = 0, U = Z.length; V < U; ++V) {
+ var ae = Z[V];
+ if (ae.global || ae.multiline) {
+ throw new Error('' + ae);
+ }
+ aa.push('(?:' + W(ae) + ')');
+ }
+ return new RegExp(aa.join('|'), ac ? 'gi' : 'g');
+ }
+ function a(V) {
+ var U = /(?:^|\s)nocode(?:\s|$)/;
+ var X = [];
+ var T = 0;
+ var Z = [];
+ var W = 0;
+ var S;
+ if (V.currentStyle) {
+ S = V.currentStyle.whiteSpace;
+ } else {
+ if (window.getComputedStyle) {
+ S = document.defaultView.getComputedStyle(V, null).getPropertyValue('white-space');
+ }
+ }
+ var Y = S && 'pre' === S.substring(0, 3);
+ function aa(ab) {
+ switch (ab.nodeType) {
+ case 1:
+ if (U.test(ab.className)) {
+ return;
+ }
+ for (var ae = ab.firstChild; ae; ae = ae.nextSibling) {
+ aa(ae);
+ }
+ var ad = ab.nodeName;
+ if ('BR' === ad || 'LI' === ad) {
+ X[W] = '\n';
+ Z[W << 1] = T++;
+ Z[(W++ << 1) | 1] = ab;
+ }
+ break;
+ case 3:
+ case 4:
+ var ac = ab.nodeValue;
+ if (ac.length) {
+ if (!Y) {
+ ac = ac.replace(/[ \t\r\n]+/g, ' ');
+ } else {
+ ac = ac.replace(/\r\n?/g, '\n');
+ }
+ X[W] = ac;
+ Z[W << 1] = T;
+ T += ac.length;
+ Z[(W++ << 1) | 1] = ab;
+ }
+ break;
+ }
+ }
+ aa(V);
+ return { sourceCode: X.join('').replace(/\n$/, ''), spans: Z };
+ }
+ function B(S, U, W, T) {
+ if (!U) {
+ return;
+ }
+ var V = { sourceCode: U, basePos: S };
+ W(V);
+ T.push.apply(T, V.decorations);
+ }
+ var v = /\S/;
+ function o(S) {
+ var V = undefined;
+ for (var U = S.firstChild; U; U = U.nextSibling) {
+ var T = U.nodeType;
+ V = T === 1 ? (V ? S : U) : T === 3 ? (v.test(U.nodeValue) ? S : V) : V;
+ }
+ return V === S ? undefined : V;
+ }
+ function g(U, T) {
+ var S = {};
+ var V;
+ (function () {
+ var ad = U.concat(T);
+ var ah = [];
+ var ag = {};
+ for (var ab = 0, Z = ad.length; ab < Z; ++ab) {
+ var Y = ad[ab];
+ var ac = Y[3];
+ if (ac) {
+ for (var ae = ac.length; --ae >= 0; ) {
+ S[ac.charAt(ae)] = Y;
+ }
+ }
+ var af = Y[1];
+ var aa = '' + af;
+ if (!ag.hasOwnProperty(aa)) {
+ ah.push(af);
+ ag[aa] = null;
+ }
+ }
+ ah.push(/[\0-\uffff]/);
+ V = k(ah);
+ })();
+ var X = T.length;
+ var W = function (ah) {
+ var Z = ah.sourceCode,
+ Y = ah.basePos;
+ var ad = [Y, F];
+ var af = 0;
+ var an = Z.match(V) || [];
+ var aj = {};
+ for (var ae = 0, aq = an.length; ae < aq; ++ae) {
+ var ag = an[ae];
+ var ap = aj[ag];
+ var ai = void 0;
+ var am;
+ if (typeof ap === 'string') {
+ am = false;
+ } else {
+ var aa = S[ag.charAt(0)];
+ if (aa) {
+ ai = ag.match(aa[1]);
+ ap = aa[0];
+ } else {
+ for (var ao = 0; ao < X; ++ao) {
+ aa = T[ao];
+ ai = ag.match(aa[1]);
+ if (ai) {
+ ap = aa[0];
+ break;
+ }
+ }
+ if (!ai) {
+ ap = F;
+ }
+ }
+ am = ap.length >= 5 && 'lang-' === ap.substring(0, 5);
+ if (am && !(ai && typeof ai[1] === 'string')) {
+ am = false;
+ ap = J;
+ }
+ if (!am) {
+ aj[ag] = ap;
+ }
+ }
+ var ab = af;
+ af += ag.length;
+ if (!am) {
+ ad.push(Y + ab, ap);
+ } else {
+ var al = ai[1];
+ var ak = ag.indexOf(al);
+ var ac = ak + al.length;
+ if (ai[2]) {
+ ac = ag.length - ai[2].length;
+ ak = ac - al.length;
+ }
+ var ar = ap.substring(5);
+ B(Y + ab, ag.substring(0, ak), W, ad);
+ B(Y + ab + ak, al, q(ar, al), ad);
+ B(Y + ab + ac, ag.substring(ac), W, ad);
+ }
+ }
+ ah.decorations = ad;
+ };
+ return W;
+ }
+ function i(T) {
+ var W = [],
+ S = [];
+ if (T.tripleQuotedStrings) {
+ W.push([
+ C,
+ /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+ null,
+ '\'"',
+ ]);
+ } else {
+ if (T.multiLineStrings) {
+ W.push([
+ C,
+ /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+ null,
+ '\'"`',
+ ]);
+ } else {
+ W.push([
+ C,
+ /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+ null,
+ '"\'',
+ ]);
+ }
+ }
+ if (T.verbatimStrings) {
+ S.push([C, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+ }
+ var Y = T.hashComments;
+ if (Y) {
+ if (T.cStyleComments) {
+ if (Y > 1) {
+ W.push([j, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
+ } else {
+ W.push([
+ j,
+ /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+ null,
+ '#',
+ ]);
+ }
+ S.push([C, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null]);
+ } else {
+ W.push([j, /^#[^\r\n]*/, null, '#']);
+ }
+ }
+ if (T.cStyleComments) {
+ S.push([j, /^\/\/[^\r\n]*/, null]);
+ S.push([j, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+ }
+ if (T.regexLiterals) {
+ var X =
+ '/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/';
+ S.push(['lang-regex', new RegExp('^' + M + '(' + X + ')')]);
+ }
+ var V = T.types;
+ if (V) {
+ S.push([O, V]);
+ }
+ var U = ('' + T.keywords).replace(/^ | $/g, '');
+ if (U.length) {
+ S.push([z, new RegExp('^(?:' + U.replace(/[\s,]+/g, '|') + ')\\b'), null]);
+ }
+ W.push([F, /^\s+/, null, ' \r\n\t\xA0']);
+ S.push(
+ [G, /^@[a-z_$][a-z_$@0-9]*/i, null],
+ [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null],
+ [F, /^[a-z_$][a-z_$@0-9]*/i, null],
+ [
+ G,
+ new RegExp(
+ '^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*',
+ 'i'
+ ),
+ null,
+ '0123456789',
+ ],
+ [F, /^\\[\s\S]?/, null],
+ [L, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]
+ );
+ return g(W, S);
+ }
+ var K = i({
+ keywords: A,
+ hashComments: true,
+ cStyleComments: true,
+ multiLineStrings: true,
+ regexLiterals: true,
+ });
+ function Q(V, ag) {
+ var U = /(?:^|\s)nocode(?:\s|$)/;
+ var ab = /\r\n?|\n/;
+ var ac = V.ownerDocument;
+ var S;
+ if (V.currentStyle) {
+ S = V.currentStyle.whiteSpace;
+ } else {
+ if (window.getComputedStyle) {
+ S = ac.defaultView.getComputedStyle(V, null).getPropertyValue('white-space');
+ }
+ }
+ var Z = S && 'pre' === S.substring(0, 3);
+ var af = ac.createElement('LI');
+ while (V.firstChild) {
+ af.appendChild(V.firstChild);
+ }
+ var W = [af];
+ function ae(al) {
+ switch (al.nodeType) {
+ case 1:
+ if (U.test(al.className)) {
+ break;
+ }
+ if ('BR' === al.nodeName) {
+ ad(al);
+ if (al.parentNode) {
+ al.parentNode.removeChild(al);
+ }
+ } else {
+ for (var an = al.firstChild; an; an = an.nextSibling) {
+ ae(an);
+ }
+ }
+ break;
+ case 3:
+ case 4:
+ if (Z) {
+ var am = al.nodeValue;
+ var aj = am.match(ab);
+ if (aj) {
+ var ai = am.substring(0, aj.index);
+ al.nodeValue = ai;
+ var ah = am.substring(aj.index + aj[0].length);
+ if (ah) {
+ var ak = al.parentNode;
+ ak.insertBefore(ac.createTextNode(ah), al.nextSibling);
+ }
+ ad(al);
+ if (!ai) {
+ al.parentNode.removeChild(al);
+ }
+ }
+ }
+ break;
+ }
+ }
+ function ad(ak) {
+ while (!ak.nextSibling) {
+ ak = ak.parentNode;
+ if (!ak) {
+ return;
+ }
+ }
+ function ai(al, ar) {
+ var aq = ar ? al.cloneNode(false) : al;
+ var ao = al.parentNode;
+ if (ao) {
+ var ap = ai(ao, 1);
+ var an = al.nextSibling;
+ ap.appendChild(aq);
+ for (var am = an; am; am = an) {
+ an = am.nextSibling;
+ ap.appendChild(am);
+ }
+ }
+ return aq;
+ }
+ var ah = ai(ak.nextSibling, 0);
+ for (var aj; (aj = ah.parentNode) && aj.nodeType === 1; ) {
+ ah = aj;
+ }
+ W.push(ah);
+ }
+ for (var Y = 0; Y < W.length; ++Y) {
+ ae(W[Y]);
+ }
+ if (ag === (ag | 0)) {
+ W[0].setAttribute('value', ag);
+ }
+ var aa = ac.createElement('OL');
+ aa.className = 'linenums';
+ var X = Math.max(0, (ag - 1) | 0) || 0;
+ for (var Y = 0, T = W.length; Y < T; ++Y) {
+ af = W[Y];
+ af.className = 'L' + ((Y + X) % 10);
+ if (!af.firstChild) {
+ af.appendChild(ac.createTextNode('\xA0'));
+ }
+ aa.appendChild(af);
+ }
+ V.appendChild(aa);
+ }
+ function D(ac) {
+ var aj = /\bMSIE\b/.test(navigator.userAgent);
+ var am = /\n/g;
+ var al = ac.sourceCode;
+ var an = al.length;
+ var V = 0;
+ var aa = ac.spans;
+ var T = aa.length;
+ var ah = 0;
+ var X = ac.decorations;
+ var Y = X.length;
+ var Z = 0;
+ X[Y] = an;
+ var ar, aq;
+ for (aq = ar = 0; aq < Y; ) {
+ if (X[aq] !== X[aq + 2]) {
+ X[ar++] = X[aq++];
+ X[ar++] = X[aq++];
+ } else {
+ aq += 2;
+ }
+ }
+ Y = ar;
+ for (aq = ar = 0; aq < Y; ) {
+ var at = X[aq];
+ var ab = X[aq + 1];
+ var W = aq + 2;
+ while (W + 2 <= Y && X[W + 1] === ab) {
+ W += 2;
+ }
+ X[ar++] = at;
+ X[ar++] = ab;
+ aq = W;
+ }
+ Y = X.length = ar;
+ var ae = null;
+ while (ah < T) {
+ var af = aa[ah];
+ var S = aa[ah + 2] || an;
+ var ag = X[Z];
+ var ap = X[Z + 2] || an;
+ var W = Math.min(S, ap);
+ var ak = aa[ah + 1];
+ var U;
+ if (ak.nodeType !== 1 && (U = al.substring(V, W))) {
+ if (aj) {
+ U = U.replace(am, '\r');
+ }
+ ak.nodeValue = U;
+ var ai = ak.ownerDocument;
+ var ao = ai.createElement('SPAN');
+ ao.className = X[Z + 1];
+ var ad = ak.parentNode;
+ ad.replaceChild(ao, ak);
+ ao.appendChild(ak);
+ if (V < S) {
+ aa[ah + 1] = ak = ai.createTextNode(al.substring(W, S));
+ ad.insertBefore(ak, ao.nextSibling);
+ }
+ }
+ V = W;
+ if (V >= S) {
+ ah += 2;
+ }
+ if (V >= ap) {
+ Z += 2;
+ }
+ }
+ }
+ var t = {};
+ function c(U, V) {
+ for (var S = V.length; --S >= 0; ) {
+ var T = V[S];
+ if (!t.hasOwnProperty(T)) {
+ t[T] = U;
+ } else {
+ if (window.console) {
+ console.warn('cannot override language handler %s', T);
+ }
+ }
+ }
+ }
+ function q(T, S) {
+ if (!(T && t.hasOwnProperty(T))) {
+ T = /^\s*</.test(S) ? 'default-markup' : 'default-code';
+ }
+ return t[T];
+ }
+ c(K, ['default-code']);
+ c(
+ g(
+ [],
+ [
+ [F, /^[^<?]+/],
+ [E, /^<!\w[^>]*(?:>|$)/],
+ [j, /^<\!--[\s\S]*?(?:-\->|$)/],
+ ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/],
+ ['lang-', /^<%([\s\S]+?)(?:%>|$)/],
+ [L, /^(?:<[%?]|[%?]>)/],
+ ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+ ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+ ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+ ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i],
+ ]
+ ),
+ ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']
+ );
+ c(
+ g(
+ [
+ [F, /^[\s]+/, null, ' \t\r\n'],
+ [n, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '"\''],
+ ],
+ [
+ [m, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+ [P, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+ ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+ [L, /^[=<>\/]+/],
+ ['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']
+ );
+ c(g([], [[n, /^[\s\S]+/]]), ['uq.val']);
+ c(i({ keywords: l, hashComments: true, cStyleComments: true, types: e }), [
+ 'c',
+ 'cc',
+ 'cpp',
+ 'cxx',
+ 'cyc',
+ 'm',
+ ]);
+ c(i({ keywords: 'null,true,false' }), ['json']);
+ c(i({ keywords: R, hashComments: true, cStyleComments: true, verbatimStrings: true, types: e }), [
+ 'cs',
+ ]);
+ c(i({ keywords: x, cStyleComments: true }), ['java']);
+ c(i({ keywords: H, hashComments: true, multiLineStrings: true }), ['bsh', 'csh', 'sh']);
+ c(i({ keywords: I, hashComments: true, multiLineStrings: true, tripleQuotedStrings: true }), [
+ 'cv',
+ 'py',
+ ]);
+ c(i({ keywords: s, hashComments: true, multiLineStrings: true, regexLiterals: true }), [
+ 'perl',
+ 'pl',
+ 'pm',
+ ]);
+ c(i({ keywords: f, hashComments: true, multiLineStrings: true, regexLiterals: true }), ['rb']);
+ c(i({ keywords: w, cStyleComments: true, regexLiterals: true }), ['js']);
+ c(
+ i({
+ keywords: r,
+ hashComments: 3,
+ cStyleComments: true,
+ multilineStrings: true,
+ tripleQuotedStrings: true,
+ regexLiterals: true,
+ }),
+ ['coffee']
+ );
+ c(g([], [[C, /^[\s\S]+/]]), ['regex']);
+ function d(V) {
+ var U = V.langExtension;
+ try {
+ var S = a(V.sourceNode);
+ var T = S.sourceCode;
+ V.sourceCode = T;
+ V.spans = S.spans;
+ V.basePos = 0;
+ q(U, T)(V);
+ D(V);
+ } catch (W) {
+ if ('console' in window) {
+ console.log(W && W.stack ? W.stack : W);
+ }
+ }
+ }
+ function y(W, V, U) {
+ var S = document.createElement('PRE');
+ S.innerHTML = W;
+ if (U) {
+ Q(S, U);
+ }
+ var T = { langExtension: V, numberLines: U, sourceNode: S };
+ d(T);
+ return S.innerHTML;
+ }
+ function b(ad) {
+ function Y(af) {
+ return document.getElementsByTagName(af);
+ }
+ var ac = [Y('pre'), Y('code'), Y('xmp')];
+ var T = [];
+ for (var aa = 0; aa < ac.length; ++aa) {
+ for (var Z = 0, V = ac[aa].length; Z < V; ++Z) {
+ T.push(ac[aa][Z]);
+ }
+ }
+ ac = null;
+ var W = Date;
+ if (!W.now) {
+ W = {
+ now: function () {
+ return +new Date();
+ },
+ };
+ }
+ var X = 0;
+ var S;
+ var ab = /\blang(?:uage)?-([\w.]+)(?!\S)/;
+ var ae = /\bprettyprint\b/;
+ function U() {
+ var ag = window.PR_SHOULD_USE_CONTINUATION ? W.now() + 250 : Infinity;
+ for (; X < T.length && W.now() < ag; X++) {
+ var aj = T[X];
+ var ai = aj.className;
+ if (ai.indexOf('prettyprint') >= 0) {
+ var ah = ai.match(ab);
+ var am;
+ if (!ah && (am = o(aj)) && 'CODE' === am.tagName) {
+ ah = am.className.match(ab);
+ }
+ if (ah) {
+ ah = ah[1];
+ }
+ var al = false;
+ for (var ak = aj.parentNode; ak; ak = ak.parentNode) {
+ if (
+ (ak.tagName === 'pre' || ak.tagName === 'code' || ak.tagName === 'xmp') &&
+ ak.className &&
+ ak.className.indexOf('prettyprint') >= 0
+ ) {
+ al = true;
+ break;
+ }
+ }
+ if (!al) {
+ var af = aj.className.match(/\blinenums\b(?::(\d+))?/);
+ af = af ? (af[1] && af[1].length ? +af[1] : true) : false;
+ if (af) {
+ Q(aj, af);
+ }
+ S = { langExtension: ah, sourceNode: aj, numberLines: af };
+ d(S);
+ }
+ }
+ }
+ if (X < T.length) {
+ setTimeout(U, 250);
+ } else {
+ if (ad) {
+ ad();
+ }
+ }
+ }
+ U();
+ }
+ window.prettyPrintOne = y;
+ window.prettyPrint = b;
+ window.PR = {
+ createSimpleLexer: g,
+ registerLangHandler: c,
+ sourceDecorator: i,
+ PR_ATTRIB_NAME: P,
+ PR_ATTRIB_VALUE: n,
+ PR_COMMENT: j,
+ PR_DECLARATION: E,
+ PR_KEYWORD: z,
+ PR_LITERAL: G,
+ PR_NOCODE: N,
+ PR_PLAIN: F,
+ PR_PUNCTUATION: L,
+ PR_SOURCE: J,
+ PR_STRING: C,
+ PR_TAG: m,
+ PR_TYPE: O,
+ };
+})();
+PR.registerLangHandler(
+ PR.createSimpleLexer(
+ [],
+ [
+ [PR.PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+ [PR.PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/],
+ [PR.PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+ ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/],
+ ['lang-', /^<%([\s\S]+?)(?:%>|$)/],
+ ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+ [
+ 'lang-handlebars',
+ /^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i,
+ ],
+ ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+ ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+ ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i],
+ [PR.PR_DECLARATION, /^{{[#^>/]?\s*[\w.][^}]*}}/],
+ [PR.PR_DECLARATION, /^{{&?\s*[\w.][^}]*}}/],
+ [PR.PR_DECLARATION, /^{{{>?\s*[\w.][^}]*}}}/],
+ [PR.PR_COMMENT, /^{{![^}]*}}/],
+ ]
+ ),
+ ['handlebars', 'hbs']
+);
+PR.registerLangHandler(
+ PR.createSimpleLexer(
+ [[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, ' \t\r\n\f']],
+ [
+ [PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null],
+ [PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null],
+ ['lang-css-str', /^url\(([^\)\"\']*)\)/i],
+ [
+ PR.PR_KEYWORD,
+ /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,
+ null,
+ ],
+ ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],
+ [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
+ [PR.PR_COMMENT, /^(?:<!--|-->)/],
+ [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
+ [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i],
+ [PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],
+ [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/],
+ ]
+ ),
+ ['css']
+);
+PR.registerLangHandler(
+ PR.createSimpleLexer(
+ [],
+ [[PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]
+ ),
+ ['css-kw']
+);
+PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_STRING, /^[^\)\"\']+/]]), ['css-str']);
diff --git a/frontend/coverage/sorter.js b/frontend/coverage/sorter.js
index 4ed70ae..c3fbef4 100644
--- a/frontend/coverage/sorter.js
+++ b/frontend/coverage/sorter.js
@@ -1,210 +1,205 @@
-/* eslint-disable */
-var addSorting = (function() {
- 'use strict';
- var cols,
- currentSort = {
- index: 0,
- desc: false
- };
+
+var addSorting = (function () {
+ 'use strict';
+ var cols,
+ currentSort = {
+ index: 0,
+ desc: false,
+ };
- // returns the summary table element
- function getTable() {
- return document.querySelector('.coverage-summary');
- }
- // returns the thead element of the summary table
- function getTableHeader() {
- return getTable().querySelector('thead tr');
- }
- // returns the tbody element of the summary table
- function getTableBody() {
- return getTable().querySelector('tbody');
- }
- // returns the th element for nth column
- function getNthColumn(n) {
- return getTableHeader().querySelectorAll('th')[n];
+ // returns the summary table element
+ function getTable() {
+ return document.querySelector('.coverage-summary');
+ }
+ // returns the thead element of the summary table
+ function getTableHeader() {
+ return getTable().querySelector('thead tr');
+ }
+ // returns the tbody element of the summary table
+ function getTableBody() {
+ return getTable().querySelector('tbody');
+ }
+ // returns the th element for nth column
+ function getNthColumn(n) {
+ return getTableHeader().querySelectorAll('th')[n];
+ }
+
+ function onFilterInput() {
+ const searchValue = document.getElementById('fileSearch').value;
+ const rows = document.getElementsByTagName('tbody')[0].children;
+
+ // Try to create a RegExp from the searchValue. If it fails (invalid regex),
+ // it will be treated as a plain text search
+ let searchRegex;
+ try {
+ searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
+ } catch (error) {
+ searchRegex = null;
}
- function onFilterInput() {
- const searchValue = document.getElementById('fileSearch').value;
- const rows = document.getElementsByTagName('tbody')[0].children;
-
- // Try to create a RegExp from the searchValue. If it fails (invalid regex),
- // it will be treated as a plain text search
- let searchRegex;
- try {
- searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
- } catch (error) {
- searchRegex = null;
- }
+ for (let i = 0; i < rows.length; i++) {
+ const row = rows[i];
+ let isMatch = false;
- for (let i = 0; i < rows.length; i++) {
- const row = rows[i];
- let isMatch = false;
-
- if (searchRegex) {
- // If a valid regex was created, use it for matching
- isMatch = searchRegex.test(row.textContent);
- } else {
- // Otherwise, fall back to the original plain text search
- isMatch = row.textContent
- .toLowerCase()
- .includes(searchValue.toLowerCase());
- }
-
- row.style.display = isMatch ? '' : 'none';
- }
- }
+ if (searchRegex) {
+ // If a valid regex was created, use it for matching
+ isMatch = searchRegex.test(row.textContent);
+ } else {
+ // Otherwise, fall back to the original plain text search
+ isMatch = row.textContent.toLowerCase().includes(searchValue.toLowerCase());
+ }
- // loads the search box
- function addSearchBox() {
- var template = document.getElementById('filterTemplate');
- var templateClone = template.content.cloneNode(true);
- templateClone.getElementById('fileSearch').oninput = onFilterInput;
- template.parentElement.appendChild(templateClone);
+ row.style.display = isMatch ? '' : 'none';
}
-
- // loads all columns
- function loadColumns() {
- var colNodes = getTableHeader().querySelectorAll('th'),
- colNode,
- cols = [],
- col,
- i;
-
- for (i = 0; i < colNodes.length; i += 1) {
- colNode = colNodes[i];
- col = {
- key: colNode.getAttribute('data-col'),
- sortable: !colNode.getAttribute('data-nosort'),
- type: colNode.getAttribute('data-type') || 'string'
- };
- cols.push(col);
- if (col.sortable) {
- col.defaultDescSort = col.type === 'number';
- colNode.innerHTML =
- colNode.innerHTML + '<span class="sorter"></span>';
- }
- }
- return cols;
+ }
+
+ // loads the search box
+ function addSearchBox() {
+ var template = document.getElementById('filterTemplate');
+ var templateClone = template.content.cloneNode(true);
+ templateClone.getElementById('fileSearch').oninput = onFilterInput;
+ template.parentElement.appendChild(templateClone);
+ }
+
+ // loads all columns
+ function loadColumns() {
+ var colNodes = getTableHeader().querySelectorAll('th'),
+ colNode,
+ cols = [],
+ col,
+ i;
+
+ for (i = 0; i < colNodes.length; i += 1) {
+ colNode = colNodes[i];
+ col = {
+ key: colNode.getAttribute('data-col'),
+ sortable: !colNode.getAttribute('data-nosort'),
+ type: colNode.getAttribute('data-type') || 'string',
+ };
+ cols.push(col);
+ if (col.sortable) {
+ col.defaultDescSort = col.type === 'number';
+ colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
+ }
}
- // attaches a data attribute to every tr element with an object
- // of data values keyed by column name
- function loadRowData(tableRow) {
- var tableCols = tableRow.querySelectorAll('td'),
- colNode,
- col,
- data = {},
- i,
- val;
- for (i = 0; i < tableCols.length; i += 1) {
- colNode = tableCols[i];
- col = cols[i];
- val = colNode.getAttribute('data-value');
- if (col.type === 'number') {
- val = Number(val);
- }
- data[col.key] = val;
- }
- return data;
+ return cols;
+ }
+ // attaches a data attribute to every tr element with an object
+ // of data values keyed by column name
+ function loadRowData(tableRow) {
+ var tableCols = tableRow.querySelectorAll('td'),
+ colNode,
+ col,
+ data = {},
+ i,
+ val;
+ for (i = 0; i < tableCols.length; i += 1) {
+ colNode = tableCols[i];
+ col = cols[i];
+ val = colNode.getAttribute('data-value');
+ if (col.type === 'number') {
+ val = Number(val);
+ }
+ data[col.key] = val;
}
- // loads all row data
- function loadData() {
- var rows = getTableBody().querySelectorAll('tr'),
- i;
-
- for (i = 0; i < rows.length; i += 1) {
- rows[i].data = loadRowData(rows[i]);
- }
+ return data;
+ }
+ // loads all row data
+ function loadData() {
+ var rows = getTableBody().querySelectorAll('tr'),
+ i;
+
+ for (i = 0; i < rows.length; i += 1) {
+ rows[i].data = loadRowData(rows[i]);
}
- // sorts the table using the data for the ith column
- function sortByIndex(index, desc) {
- var key = cols[index].key,
- sorter = function(a, b) {
- a = a.data[key];
- b = b.data[key];
- return a < b ? -1 : a > b ? 1 : 0;
- },
- finalSorter = sorter,
- tableBody = document.querySelector('.coverage-summary tbody'),
- rowNodes = tableBody.querySelectorAll('tr'),
- rows = [],
- i;
-
- if (desc) {
- finalSorter = function(a, b) {
- return -1 * sorter(a, b);
- };
- }
-
- for (i = 0; i < rowNodes.length; i += 1) {
- rows.push(rowNodes[i]);
- tableBody.removeChild(rowNodes[i]);
- }
-
- rows.sort(finalSorter);
-
- for (i = 0; i < rows.length; i += 1) {
- tableBody.appendChild(rows[i]);
- }
+ }
+ // sorts the table using the data for the ith column
+ function sortByIndex(index, desc) {
+ var key = cols[index].key,
+ sorter = function (a, b) {
+ a = a.data[key];
+ b = b.data[key];
+ return a < b ? -1 : a > b ? 1 : 0;
+ },
+ finalSorter = sorter,
+ tableBody = document.querySelector('.coverage-summary tbody'),
+ rowNodes = tableBody.querySelectorAll('tr'),
+ rows = [],
+ i;
+
+ if (desc) {
+ finalSorter = function (a, b) {
+ return -1 * sorter(a, b);
+ };
}
- // removes sort indicators for current column being sorted
- function removeSortIndicators() {
- var col = getNthColumn(currentSort.index),
- cls = col.className;
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
- col.className = cls;
+ for (i = 0; i < rowNodes.length; i += 1) {
+ rows.push(rowNodes[i]);
+ tableBody.removeChild(rowNodes[i]);
}
- // adds sort indicators for current column being sorted
- function addSortIndicators() {
- getNthColumn(currentSort.index).className += currentSort.desc
- ? ' sorted-desc'
- : ' sorted';
+
+ rows.sort(finalSorter);
+
+ for (i = 0; i < rows.length; i += 1) {
+ tableBody.appendChild(rows[i]);
}
- // adds event listeners for all sorter widgets
- function enableUI() {
- var i,
- el,
- ithSorter = function ithSorter(i) {
- var col = cols[i];
-
- return function() {
- var desc = col.defaultDescSort;
-
- if (currentSort.index === i) {
- desc = !currentSort.desc;
- }
- sortByIndex(i, desc);
- removeSortIndicators();
- currentSort.index = i;
- currentSort.desc = desc;
- addSortIndicators();
- };
- };
- for (i = 0; i < cols.length; i += 1) {
- if (cols[i].sortable) {
- // add the click event handler on the th so users
- // dont have to click on those tiny arrows
- el = getNthColumn(i).querySelector('.sorter').parentElement;
- if (el.addEventListener) {
- el.addEventListener('click', ithSorter(i));
- } else {
- el.attachEvent('onclick', ithSorter(i));
- }
- }
+ }
+ // removes sort indicators for current column being sorted
+ function removeSortIndicators() {
+ var col = getNthColumn(currentSort.index),
+ cls = col.className;
+
+ cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
+ col.className = cls;
+ }
+ // adds sort indicators for current column being sorted
+ function addSortIndicators() {
+ getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
+ }
+ // adds event listeners for all sorter widgets
+ function enableUI() {
+ var i,
+ el,
+ ithSorter = function ithSorter(i) {
+ var col = cols[i];
+
+ return function () {
+ var desc = col.defaultDescSort;
+
+ if (currentSort.index === i) {
+ desc = !currentSort.desc;
+ }
+ sortByIndex(i, desc);
+ removeSortIndicators();
+ currentSort.index = i;
+ currentSort.desc = desc;
+ addSortIndicators();
+ };
+ };
+ for (i = 0; i < cols.length; i += 1) {
+ if (cols[i].sortable) {
+ // add the click event handler on the th so users
+ // dont have to click on those tiny arrows
+ el = getNthColumn(i).querySelector('.sorter').parentElement;
+ if (el.addEventListener) {
+ el.addEventListener('click', ithSorter(i));
+ } else {
+ el.attachEvent('onclick', ithSorter(i));
}
+ }
}
- // adds sorting functionality to the UI
- return function() {
- if (!getTable()) {
- return;
- }
- cols = loadColumns();
- loadData();
- addSearchBox();
- addSortIndicators();
- enableUI();
- };
+ }
+ // adds sorting functionality to the UI
+ return function () {
+ if (!getTable()) {
+ return;
+ }
+ cols = loadColumns();
+ loadData();
+ addSearchBox();
+ addSortIndicators();
+ enableUI();
+ };
})();
window.addEventListener('load', addSorting);
diff --git a/frontend/coverage/src/App.css.html b/frontend/coverage/src/App.css.html
index 213109e..a5aa753 100644
--- a/frontend/coverage/src/App.css.html
+++ b/frontend/coverage/src/App.css.html
@@ -1,68 +1,61 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/App.css</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> App.css</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">0/0</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line low'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line low"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -374,21 +367,22 @@ body {
border-color: rgba(255, 255, 255, 0.5);
}</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../sorter.js"></script>
- <script src="../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../sorter.js"></script>
+ <script src="../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/App.tsx.html b/frontend/coverage/src/App.tsx.html
index 0d5195d..ed02366 100644
--- a/frontend/coverage/src/App.tsx.html
+++ b/frontend/coverage/src/App.tsx.html
@@ -1,68 +1,61 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/App.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> App.tsx</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">78.94% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>15/19</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">66.66% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>4/6</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">77.77% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>7/9</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">78.94% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>15/19</span>
- </div>
-
-
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">78.94% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">15/19</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">66.66% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">4/6</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">77.77% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">7/9</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">78.94% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">15/19</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line medium'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line medium"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -335,21 +328,22 @@ function App() {
export default App;
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../sorter.js"></script>
- <script src="../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../sorter.js"></script>
+ <script src="../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/FeedItem.css.html b/frontend/coverage/src/components/FeedItem.css.html
index dd239a3..f6fe1a3 100644
--- a/frontend/coverage/src/components/FeedItem.css.html
+++ b/frontend/coverage/src/components/FeedItem.css.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/FeedItem.css</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItem.css</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> FeedItem.css
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">0/0</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line low'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line low"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -413,21 +409,22 @@
margin-left: 0;
}</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/FeedItem.tsx.html b/frontend/coverage/src/components/FeedItem.tsx.html
index f6b08e5..5512b78 100644
--- a/frontend/coverage/src/components/FeedItem.tsx.html
+++ b/frontend/coverage/src/components/FeedItem.tsx.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/FeedItem.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItem.tsx</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">78.94% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>15/19</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">88.88% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>16/18</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">85.71% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>6/7</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">78.94% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>15/19</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> FeedItem.tsx
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">78.94% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">15/19</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">88.88% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">16/18</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">85.71% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">6/7</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">78.94% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">15/19</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line medium'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line medium"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -317,21 +313,22 @@ export default function FeedItem({ item: initialItem }: FeedItemProps) {
}
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/FeedItems.css.html b/frontend/coverage/src/components/FeedItems.css.html
index b5d2c41..0b1c77d 100644
--- a/frontend/coverage/src/components/FeedItems.css.html
+++ b/frontend/coverage/src/components/FeedItems.css.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/FeedItems.css</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItems.css</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> FeedItems.css
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">0/0</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line low'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line low"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -155,21 +151,22 @@
min-height: 50px;
}</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/FeedItems.tsx.html b/frontend/coverage/src/components/FeedItems.tsx.html
index e0f73cf..e57acf9 100644
--- a/frontend/coverage/src/components/FeedItems.tsx.html
+++ b/frontend/coverage/src/components/FeedItems.tsx.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/FeedItems.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItems.tsx</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">89.34% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>109/122</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">77.21% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>61/79</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">86.2% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>25/29</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">89.09% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>98/110</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> FeedItems.tsx
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">89.34% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">109/122</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">77.21% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">61/79</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">86.2% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">25/29</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">89.09% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">98/110</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line high'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line high"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -734,21 +730,22 @@ export default function FeedItems() {
}
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/FeedList.css.html b/frontend/coverage/src/components/FeedList.css.html
index ffaa1a9..fe60b9d 100644
--- a/frontend/coverage/src/components/FeedList.css.html
+++ b/frontend/coverage/src/components/FeedList.css.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/FeedList.css</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedList.css</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> FeedList.css
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">0/0</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line low'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line low"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -356,21 +352,22 @@
background-color: transparent;
}</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/FeedList.tsx.html b/frontend/coverage/src/components/FeedList.tsx.html
index b1b0a27..ba7d81f 100644
--- a/frontend/coverage/src/components/FeedList.tsx.html
+++ b/frontend/coverage/src/components/FeedList.tsx.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/FeedList.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedList.tsx</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">91.66% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>22/24</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">82.35% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>14/17</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">100% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>8/8</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">100% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>20/20</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> FeedList.tsx
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">91.66% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">22/24</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">82.35% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">14/17</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">100% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">8/8</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">100% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">20/20</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line high'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line high"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -305,21 +301,22 @@ export default function FeedList() {
}
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/Login.css.html b/frontend/coverage/src/components/Login.css.html
index 2b2fe0d..bb3654e 100644
--- a/frontend/coverage/src/components/Login.css.html
+++ b/frontend/coverage/src/components/Login.css.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/Login.css</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Login.css</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> Login.css
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">0/0</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line low'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line low"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -254,21 +250,22 @@ button[type="submit"]:hover {
}
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/Login.tsx.html b/frontend/coverage/src/components/Login.tsx.html
index 263fe57..f29e3cb 100644
--- a/frontend/coverage/src/components/Login.tsx.html
+++ b/frontend/coverage/src/components/Login.tsx.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/Login.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Login.tsx</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">100% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>17/17</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">83.33% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>5/6</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">100% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>3/3</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">100% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>17/17</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> Login.tsx
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">100% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">17/17</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">83.33% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">5/6</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">100% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">3/3</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">100% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">17/17</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line high'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line high"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -227,21 +223,22 @@ export default function Login() {
}
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/Settings.css.html b/frontend/coverage/src/components/Settings.css.html
index 428c9d2..6a1155e 100644
--- a/frontend/coverage/src/components/Settings.css.html
+++ b/frontend/coverage/src/components/Settings.css.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/Settings.css</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Settings.css</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">0% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>0/0</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> Settings.css
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">0/0</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">0% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">0/0</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line low'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line low"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -311,21 +307,22 @@
cursor: not-allowed;
}</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/Settings.tsx.html b/frontend/coverage/src/components/Settings.tsx.html
index 62ca241..df6d027 100644
--- a/frontend/coverage/src/components/Settings.tsx.html
+++ b/frontend/coverage/src/components/Settings.tsx.html
@@ -1,68 +1,64 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components/Settings.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Settings.tsx</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">75.55% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>34/45</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">56.25% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>9/16</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">82.35% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>14/17</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">84.61% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>33/39</span>
- </div>
-
-
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
+ <h1>
+ <a href="../../index.html">All files</a> /
+ <a href="index.html">src/components</a> Settings.tsx
+ </h1>
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">75.55% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">34/45</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">56.25% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">9/16</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">82.35% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">14/17</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">84.61% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">33/39</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line medium'></div>
- <pre><table class="coverage">
+ </div>
+ <div class="status-line medium"></div>
+ <pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
@@ -428,21 +424,22 @@ export default function Settings() {
}
&nbsp;</pre></td></tr></table></pre>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/components/index.html b/frontend/coverage/src/components/index.html
index 534e353..7e1a0b7 100644
--- a/frontend/coverage/src/components/index.html
+++ b/frontend/coverage/src/components/index.html
@@ -1,251 +1,303 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src/components</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
<h1><a href="../../index.html">All files</a> src/components</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">86.78% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>197/227</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">77.2% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>105/136</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">87.5% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>56/64</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">89.26% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>183/205</span>
- </div>
-
-
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">86.78% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">197/227</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">77.2% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">105/136</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">87.5% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">56/64</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">89.26% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">183/205</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line high'></div>
- <div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file empty" data-value="FeedItem.css"><a href="FeedItem.css.html">FeedItem.css</a></td>
- <td data-value="0" class="pic empty">
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
- </td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- </tr>
-
-<tr>
- <td class="file medium" data-value="FeedItem.tsx"><a href="FeedItem.tsx.html">FeedItem.tsx</a></td>
- <td data-value="78.94" class="pic medium">
- <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
- </td>
- <td data-value="78.94" class="pct medium">78.94%</td>
- <td data-value="19" class="abs medium">15/19</td>
- <td data-value="88.88" class="pct high">88.88%</td>
- <td data-value="18" class="abs high">16/18</td>
- <td data-value="85.71" class="pct high">85.71%</td>
- <td data-value="7" class="abs high">6/7</td>
- <td data-value="78.94" class="pct medium">78.94%</td>
- <td data-value="19" class="abs medium">15/19</td>
- </tr>
+ </div>
+ <div class="status-line high"></div>
+ <div class="pad1">
+ <table class="coverage-summary">
+ <thead>
+ <tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th
+ data-col="pic"
+ data-type="number"
+ data-fmt="html"
+ data-html="true"
+ class="pic"
+ ></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">
+ Statements
+ </th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="file empty" data-value="FeedItem.css">
+ <a href="FeedItem.css.html">FeedItem.css</a>
+ </td>
+ <td data-value="0" class="pic empty">
+ <div class="chart">
+ <div class="cover-fill" style="width: 0%"></div>
+ <div class="cover-empty" style="width: 100%"></div>
+ </div>
+ </td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ </tr>
-<tr>
- <td class="file empty" data-value="FeedItems.css"><a href="FeedItems.css.html">FeedItems.css</a></td>
- <td data-value="0" class="pic empty">
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
- </td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- </tr>
+ <tr>
+ <td class="file medium" data-value="FeedItem.tsx">
+ <a href="FeedItem.tsx.html">FeedItem.tsx</a>
+ </td>
+ <td data-value="78.94" class="pic medium">
+ <div class="chart">
+ <div class="cover-fill" style="width: 78%"></div>
+ <div class="cover-empty" style="width: 22%"></div>
+ </div>
+ </td>
+ <td data-value="78.94" class="pct medium">78.94%</td>
+ <td data-value="19" class="abs medium">15/19</td>
+ <td data-value="88.88" class="pct high">88.88%</td>
+ <td data-value="18" class="abs high">16/18</td>
+ <td data-value="85.71" class="pct high">85.71%</td>
+ <td data-value="7" class="abs high">6/7</td>
+ <td data-value="78.94" class="pct medium">78.94%</td>
+ <td data-value="19" class="abs medium">15/19</td>
+ </tr>
-<tr>
- <td class="file high" data-value="FeedItems.tsx"><a href="FeedItems.tsx.html">FeedItems.tsx</a></td>
- <td data-value="89.34" class="pic high">
- <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
- </td>
- <td data-value="89.34" class="pct high">89.34%</td>
- <td data-value="122" class="abs high">109/122</td>
- <td data-value="77.21" class="pct medium">77.21%</td>
- <td data-value="79" class="abs medium">61/79</td>
- <td data-value="86.2" class="pct high">86.2%</td>
- <td data-value="29" class="abs high">25/29</td>
- <td data-value="89.09" class="pct high">89.09%</td>
- <td data-value="110" class="abs high">98/110</td>
- </tr>
+ <tr>
+ <td class="file empty" data-value="FeedItems.css">
+ <a href="FeedItems.css.html">FeedItems.css</a>
+ </td>
+ <td data-value="0" class="pic empty">
+ <div class="chart">
+ <div class="cover-fill" style="width: 0%"></div>
+ <div class="cover-empty" style="width: 100%"></div>
+ </div>
+ </td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ </tr>
-<tr>
- <td class="file empty" data-value="FeedList.css"><a href="FeedList.css.html">FeedList.css</a></td>
- <td data-value="0" class="pic empty">
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
- </td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- </tr>
+ <tr>
+ <td class="file high" data-value="FeedItems.tsx">
+ <a href="FeedItems.tsx.html">FeedItems.tsx</a>
+ </td>
+ <td data-value="89.34" class="pic high">
+ <div class="chart">
+ <div class="cover-fill" style="width: 89%"></div>
+ <div class="cover-empty" style="width: 11%"></div>
+ </div>
+ </td>
+ <td data-value="89.34" class="pct high">89.34%</td>
+ <td data-value="122" class="abs high">109/122</td>
+ <td data-value="77.21" class="pct medium">77.21%</td>
+ <td data-value="79" class="abs medium">61/79</td>
+ <td data-value="86.2" class="pct high">86.2%</td>
+ <td data-value="29" class="abs high">25/29</td>
+ <td data-value="89.09" class="pct high">89.09%</td>
+ <td data-value="110" class="abs high">98/110</td>
+ </tr>
-<tr>
- <td class="file high" data-value="FeedList.tsx"><a href="FeedList.tsx.html">FeedList.tsx</a></td>
- <td data-value="91.66" class="pic high">
- <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
- </td>
- <td data-value="91.66" class="pct high">91.66%</td>
- <td data-value="24" class="abs high">22/24</td>
- <td data-value="82.35" class="pct high">82.35%</td>
- <td data-value="17" class="abs high">14/17</td>
- <td data-value="100" class="pct high">100%</td>
- <td data-value="8" class="abs high">8/8</td>
- <td data-value="100" class="pct high">100%</td>
- <td data-value="20" class="abs high">20/20</td>
- </tr>
+ <tr>
+ <td class="file empty" data-value="FeedList.css">
+ <a href="FeedList.css.html">FeedList.css</a>
+ </td>
+ <td data-value="0" class="pic empty">
+ <div class="chart">
+ <div class="cover-fill" style="width: 0%"></div>
+ <div class="cover-empty" style="width: 100%"></div>
+ </div>
+ </td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ </tr>
-<tr>
- <td class="file empty" data-value="Login.css"><a href="Login.css.html">Login.css</a></td>
- <td data-value="0" class="pic empty">
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
- </td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- </tr>
+ <tr>
+ <td class="file high" data-value="FeedList.tsx">
+ <a href="FeedList.tsx.html">FeedList.tsx</a>
+ </td>
+ <td data-value="91.66" class="pic high">
+ <div class="chart">
+ <div class="cover-fill" style="width: 91%"></div>
+ <div class="cover-empty" style="width: 9%"></div>
+ </div>
+ </td>
+ <td data-value="91.66" class="pct high">91.66%</td>
+ <td data-value="24" class="abs high">22/24</td>
+ <td data-value="82.35" class="pct high">82.35%</td>
+ <td data-value="17" class="abs high">14/17</td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="8" class="abs high">8/8</td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="20" class="abs high">20/20</td>
+ </tr>
-<tr>
- <td class="file high" data-value="Login.tsx"><a href="Login.tsx.html">Login.tsx</a></td>
- <td data-value="100" class="pic high">
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
- </td>
- <td data-value="100" class="pct high">100%</td>
- <td data-value="17" class="abs high">17/17</td>
- <td data-value="83.33" class="pct high">83.33%</td>
- <td data-value="6" class="abs high">5/6</td>
- <td data-value="100" class="pct high">100%</td>
- <td data-value="3" class="abs high">3/3</td>
- <td data-value="100" class="pct high">100%</td>
- <td data-value="17" class="abs high">17/17</td>
- </tr>
+ <tr>
+ <td class="file empty" data-value="Login.css">
+ <a href="Login.css.html">Login.css</a>
+ </td>
+ <td data-value="0" class="pic empty">
+ <div class="chart">
+ <div class="cover-fill" style="width: 0%"></div>
+ <div class="cover-empty" style="width: 100%"></div>
+ </div>
+ </td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ </tr>
-<tr>
- <td class="file empty" data-value="Settings.css"><a href="Settings.css.html">Settings.css</a></td>
- <td data-value="0" class="pic empty">
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
- </td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- </tr>
+ <tr>
+ <td class="file high" data-value="Login.tsx">
+ <a href="Login.tsx.html">Login.tsx</a>
+ </td>
+ <td data-value="100" class="pic high">
+ <div class="chart">
+ <div class="cover-fill cover-full" style="width: 100%"></div>
+ <div class="cover-empty" style="width: 0%"></div>
+ </div>
+ </td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="17" class="abs high">17/17</td>
+ <td data-value="83.33" class="pct high">83.33%</td>
+ <td data-value="6" class="abs high">5/6</td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="3" class="abs high">3/3</td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="17" class="abs high">17/17</td>
+ </tr>
-<tr>
- <td class="file medium" data-value="Settings.tsx"><a href="Settings.tsx.html">Settings.tsx</a></td>
- <td data-value="75.55" class="pic medium">
- <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
- </td>
- <td data-value="75.55" class="pct medium">75.55%</td>
- <td data-value="45" class="abs medium">34/45</td>
- <td data-value="56.25" class="pct medium">56.25%</td>
- <td data-value="16" class="abs medium">9/16</td>
- <td data-value="82.35" class="pct high">82.35%</td>
- <td data-value="17" class="abs high">14/17</td>
- <td data-value="84.61" class="pct high">84.61%</td>
- <td data-value="39" class="abs high">33/39</td>
- </tr>
+ <tr>
+ <td class="file empty" data-value="Settings.css">
+ <a href="Settings.css.html">Settings.css</a>
+ </td>
+ <td data-value="0" class="pic empty">
+ <div class="chart">
+ <div class="cover-fill" style="width: 0%"></div>
+ <div class="cover-empty" style="width: 100%"></div>
+ </div>
+ </td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ </tr>
-</tbody>
-</table>
-</div>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../../sorter.js"></script>
- <script src="../../block-navigation.js"></script>
- </body>
+ <tr>
+ <td class="file medium" data-value="Settings.tsx">
+ <a href="Settings.tsx.html">Settings.tsx</a>
+ </td>
+ <td data-value="75.55" class="pic medium">
+ <div class="chart">
+ <div class="cover-fill" style="width: 75%"></div>
+ <div class="cover-empty" style="width: 25%"></div>
+ </div>
+ </td>
+ <td data-value="75.55" class="pct medium">75.55%</td>
+ <td data-value="45" class="abs medium">34/45</td>
+ <td data-value="56.25" class="pct medium">56.25%</td>
+ <td data-value="16" class="abs medium">9/16</td>
+ <td data-value="82.35" class="pct high">82.35%</td>
+ <td data-value="17" class="abs high">14/17</td>
+ <td data-value="84.61" class="pct high">84.61%</td>
+ <td data-value="39" class="abs high">33/39</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../../sorter.js"></script>
+ <script src="../../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file
diff --git a/frontend/coverage/src/index.html b/frontend/coverage/src/index.html
index 023e9bb..14e9f51 100644
--- a/frontend/coverage/src/index.html
+++ b/frontend/coverage/src/index.html
@@ -1,131 +1,139 @@
-
<!doctype html>
<html lang="en">
-
-<head>
+ <head>
<title>Code coverage report for src</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
+ <style type="text/css">
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
</style>
-</head>
-
-<body>
-<div class='wrapper'>
- <div class='pad1'>
+ </head>
+
+ <body>
+ <div class="wrapper">
+ <div class="pad1">
<h1><a href="../index.html">All files</a> src</h1>
- <div class='clearfix'>
-
- <div class='fl pad1y space-right2'>
- <span class="strong">78.94% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>15/19</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">66.66% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>4/6</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">77.77% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>7/9</span>
- </div>
-
-
- <div class='fl pad1y space-right2'>
- <span class="strong">78.94% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>15/19</span>
- </div>
-
-
+ <div class="clearfix">
+ <div class="fl pad1y space-right2">
+ <span class="strong">78.94% </span>
+ <span class="quiet">Statements</span>
+ <span class="fraction">15/19</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">66.66% </span>
+ <span class="quiet">Branches</span>
+ <span class="fraction">4/6</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">77.77% </span>
+ <span class="quiet">Functions</span>
+ <span class="fraction">7/9</span>
+ </div>
+
+ <div class="fl pad1y space-right2">
+ <span class="strong">78.94% </span>
+ <span class="quiet">Lines</span>
+ <span class="fraction">15/19</span>
+ </div>
</div>
<p class="quiet">
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>,
+ <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
- <div class="quiet">
- Filter:
- <input type="search" id="fileSearch">
- </div>
+ <div class="quiet">
+ Filter:
+ <input type="search" id="fileSearch" />
+ </div>
</template>
- </div>
- <div class='status-line medium'></div>
- <div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file empty" data-value="App.css"><a href="App.css.html">App.css</a></td>
- <td data-value="0" class="pic empty">
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
- </td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- <td data-value="0" class="pct empty">0%</td>
- <td data-value="0" class="abs empty">0/0</td>
- </tr>
-
-<tr>
- <td class="file medium" data-value="App.tsx"><a href="App.tsx.html">App.tsx</a></td>
- <td data-value="78.94" class="pic medium">
- <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
- </td>
- <td data-value="78.94" class="pct medium">78.94%</td>
- <td data-value="19" class="abs medium">15/19</td>
- <td data-value="66.66" class="pct medium">66.66%</td>
- <td data-value="6" class="abs medium">4/6</td>
- <td data-value="77.77" class="pct medium">77.77%</td>
- <td data-value="9" class="abs medium">7/9</td>
- <td data-value="78.94" class="pct medium">78.94%</td>
- <td data-value="19" class="abs medium">15/19</td>
- </tr>
+ </div>
+ <div class="status-line medium"></div>
+ <div class="pad1">
+ <table class="coverage-summary">
+ <thead>
+ <tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th
+ data-col="pic"
+ data-type="number"
+ data-fmt="html"
+ data-html="true"
+ class="pic"
+ ></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">
+ Statements
+ </th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="file empty" data-value="App.css"><a href="App.css.html">App.css</a></td>
+ <td data-value="0" class="pic empty">
+ <div class="chart">
+ <div class="cover-fill" style="width: 0%"></div>
+ <div class="cover-empty" style="width: 100%"></div>
+ </div>
+ </td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ <td data-value="0" class="pct empty">0%</td>
+ <td data-value="0" class="abs empty">0/0</td>
+ </tr>
-</tbody>
-</table>
-</div>
- <div class='push'></div><!-- for sticky footer -->
- </div><!-- /wrapper -->
- <div class='footer quiet pad2 space-top1 center small'>
- Code coverage generated by
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
- at 2026-02-13T21:49:58.924Z
- </div>
- <script src="../prettify.js"></script>
- <script>
- window.onload = function () {
- prettyPrint();
- };
- </script>
- <script src="../sorter.js"></script>
- <script src="../block-navigation.js"></script>
- </body>
+ <tr>
+ <td class="file medium" data-value="App.tsx"><a href="App.tsx.html">App.tsx</a></td>
+ <td data-value="78.94" class="pic medium">
+ <div class="chart">
+ <div class="cover-fill" style="width: 78%"></div>
+ <div class="cover-empty" style="width: 22%"></div>
+ </div>
+ </td>
+ <td data-value="78.94" class="pct medium">78.94%</td>
+ <td data-value="19" class="abs medium">15/19</td>
+ <td data-value="66.66" class="pct medium">66.66%</td>
+ <td data-value="6" class="abs medium">4/6</td>
+ <td data-value="77.77" class="pct medium">77.77%</td>
+ <td data-value="9" class="abs medium">7/9</td>
+ <td data-value="78.94" class="pct medium">78.94%</td>
+ <td data-value="19" class="abs medium">15/19</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="push"></div>
+ <!-- for sticky footer -->
+ </div>
+ <!-- /wrapper -->
+ <div class="footer quiet pad2 space-top1 center small">
+ Code coverage generated by
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
+ at 2026-02-13T21:49:58.924Z
+ </div>
+ <script src="../prettify.js"></script>
+ <script>
+ window.onload = function () {
+ prettyPrint();
+ };
+ </script>
+ <script src="../sorter.js"></script>
+ <script src="../block-navigation.js"></script>
+ </body>
</html>
- \ No newline at end of file