common_nostr.mjs raw

   1  // Package common/nostr
   2  // Generated by TinyJS — TinyGo JavaScript backend
   3  
   4  import * as $rt from './$runtime/index.mjs';
   5  
   6  import * as common$crypto$secp256k1 from './common_crypto_secp256k1.mjs';
   7  import * as common$crypto$sha256 from './common_crypto_sha256.mjs';
   8  import * as common$helpers from './common_helpers.mjs';
   9  
  10  // Package-level variables
  11  
  12  $rt.types.registerType('common/nostr.Filter', {
  13    id: 'common/nostr.Filter',
  14    kind: 'struct',
  15    methods: new Map(),
  16    fields: [
  17      { name: 'IDs', type: '[]string', tag: '', embedded: false },
  18      { name: 'Authors', type: '[]string', tag: '', embedded: false },
  19      { name: 'Kinds', type: '[]int', tag: '', embedded: false },
  20      { name: 'Tags', type: 'map[string][]string', tag: '', embedded: false },
  21      { name: 'Since', type: 'int64', tag: '', embedded: false },
  22      { name: 'Until', type: 'int64', tag: '', embedded: false },
  23      { name: 'Limit', type: 'int', tag: '', embedded: false },
  24      { name: 'Proxy', type: '[]string', tag: '', embedded: false },
  25    ],
  26    zero: () => ({ IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0, Until: 0, Limit: 0, Proxy: null }),
  27  });
  28  $rt.types.registerType('common/nostr.Event', {
  29    id: 'common/nostr.Event',
  30    kind: 'struct',
  31    methods: new Map(),
  32    fields: [
  33      { name: 'ID', type: 'string', tag: 'json:"id"', embedded: false },
  34      { name: 'PubKey', type: 'string', tag: 'json:"pubkey"', embedded: false },
  35      { name: 'CreatedAt', type: 'int64', tag: 'json:"created_at"', embedded: false },
  36      { name: 'Kind', type: 'int', tag: 'json:"kind"', embedded: false },
  37      { name: 'Tags', type: 'common/nostr.Tags', tag: 'json:"tags"', embedded: false },
  38      { name: 'Content', type: 'string', tag: 'json:"content"', embedded: false },
  39      { name: 'Sig', type: 'string', tag: 'json:"sig"', embedded: false },
  40    ],
  41    zero: () => ({ ID: '', PubKey: '', CreatedAt: 0, Kind: 0, Tags: null, Content: '', Sig: '' }),
  42  });
  43  export function init() {
  44    return;
  45  }
  46  
  47  export function appendField(buf, first) {
  48    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
  49    let $block = 0;
  50    while (true) {
  51      switch ($block) {
  52        case 0: {
  53          $t0_1 = first.$get();
  54          if ($t0_1) {
  55            $t5_6 = buf;
  56            $block = 2; break;
  57          }
  58          else {
  59            $block = 1; break;
  60          }
  61          break;
  62        }
  63        case 1: {
  64          $t1_2 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  65          $t2_3 = $t1_2.$get().addr(0);
  66          $t2_3.$set(44);
  67          $t3_4 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
  68          $t4_5 = $rt.builtin.appendSlice(buf, $t3_4);
  69          $t5_6 = $t4_5;
  70          $block = 2; break;
  71          break;
  72        }
  73        case 2: {
  74          first.$set(false);
  75          return $t5_6;
  76          break;
  77        }
  78      }
  79    }
  80  }
  81  
  82  export function appendStrArray(buf, ss) {
  83    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30;
  84    let $block = 0;
  85    while (true) {
  86      switch ($block) {
  87        case 0: {
  88          $t0_1 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  89          $t1_2 = $t0_1.$get().addr(0);
  90          $t1_2.$set(91);
  91          $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
  92          $t3_4 = $rt.builtin.appendSlice(buf, $t2_3);
  93          $t4_5 = $rt.builtin.len(ss);
  94          $t5_6 = $t3_4;
  95          $t6_7 = -1;
  96          $block = 1; break;
  97          break;
  98        }
  99        case 1: {
 100          $t7_8 = ($t6_7 + 1);
 101          $t8_9 = ($t7_8 < $t4_5);
 102          if ($t8_9) {
 103            $block = 2; break;
 104          }
 105          else {
 106            $block = 3; break;
 107          }
 108          break;
 109        }
 110        case 2: {
 111          $t9_10 = ss.addr($t7_8);
 112          $t10_11 = $t9_10.$get();
 113          $t11_12 = ($t7_8 > 0);
 114          if ($t11_12) {
 115            $block = 4; break;
 116          }
 117          else {
 118            $t20_21 = $t5_6;
 119            $block = 5; break;
 120          }
 121          break;
 122        }
 123        case 3: {
 124          $t12_13 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 125          $t13_14 = $t12_13.$get().addr(0);
 126          $t13_14.$set(93);
 127          $t14_15 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
 128          $t15_16 = $rt.builtin.appendSlice($t5_6, $t14_15);
 129          return $t15_16;
 130          break;
 131        }
 132        case 4: {
 133          $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 134          $t17_18 = $t16_17.$get().addr(0);
 135          $t17_18.$set(44);
 136          $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
 137          $t19_20 = $rt.builtin.appendSlice($t5_6, $t18_19);
 138          $t20_21 = $t19_20;
 139          $block = 5; break;
 140          break;
 141        }
 142        case 5: {
 143          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 144          $t22_23 = $t21_22.$get().addr(0);
 145          $t22_23.$set(34);
 146          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
 147          $t24_25 = $rt.builtin.appendSlice($t20_21, $t23_24);
 148          $t25_26 = $rt.builtin.appendString($t24_25, $t10_11);
 149          $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 150          $t27_28 = $t26_27.$get().addr(0);
 151          $t27_28.$set(34);
 152          $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
 153          $t29_30 = $rt.builtin.appendSlice($t25_26, $t28_29);
 154          $t5_6 = $t29_30;
 155          $t6_7 = $t7_8;
 156          $block = 1; break;
 157          break;
 158        }
 159      }
 160    }
 161  }
 162  
 163  export function i64ToStr(n) {
 164    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
 165    let $block = 0;
 166    while (true) {
 167      switch ($block) {
 168        case 0: {
 169          $t0_1 = (n === 0);
 170          if ($t0_1) {
 171            $block = 1; break;
 172          }
 173          else {
 174            $block = 2; break;
 175          }
 176          break;
 177        }
 178        case 1: {
 179          return '0';
 180          break;
 181        }
 182        case 2: {
 183          $t1_2 = (n < 0);
 184          if ($t1_2) {
 185            $block = 3; break;
 186          }
 187          else {
 188            $t3_4 = n;
 189            $t4_5 = false;
 190            $block = 4; break;
 191          }
 192          break;
 193        }
 194        case 3: {
 195          $t2_3 = -n;
 196          $t3_4 = $t2_3;
 197          $t4_5 = true;
 198          $block = 4; break;
 199          break;
 200        }
 201        case 4: {
 202          $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 203          $t12_13 = $t3_4;
 204          $t13_14 = 20;
 205          $block = 7; break;
 206          break;
 207        }
 208        case 5: {
 209          $t6_7 = ($t13_14 - 1);
 210          $t7_8 = ($t12_13 % 10);
 211          $t8_9 = (48 + $t7_8);
 212          $t9_10 = ($t8_9 & 0xFF);
 213          $t10_11 = $t5_6.$get().addr($t6_7);
 214          $t10_11.$set($t9_10);
 215          $t11_12 = Math.trunc($t12_13 / 10);
 216          $t12_13 = $t11_12;
 217          $t13_14 = $t6_7;
 218          $block = 7; break;
 219          break;
 220        }
 221        case 6: {
 222          if ($t4_5) {
 223            $block = 8; break;
 224          }
 225          else {
 226            $t17_18 = $t13_14;
 227            $block = 9; break;
 228          }
 229          break;
 230        }
 231        case 7: {
 232          $t14_15 = ($t12_13 > 0);
 233          if ($t14_15) {
 234            $block = 5; break;
 235          }
 236          else {
 237            $block = 6; break;
 238          }
 239          break;
 240        }
 241        case 8: {
 242          $t15_16 = ($t13_14 - 1);
 243          $t16_17 = $t5_6.$get().addr($t15_16);
 244          $t16_17.$set(45);
 245          $t17_18 = $t15_16;
 246          $block = 9; break;
 247          break;
 248        }
 249        case 9: {
 250          $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
 251          $t19_20 = $rt.builtin.bytesToString($t18_19);
 252          return $t19_20;
 253          break;
 254        }
 255      }
 256    }
 257  }
 258  
 259  export function intToStr(n) {
 260    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
 261    let $block = 0;
 262    while (true) {
 263      switch ($block) {
 264        case 0: {
 265          $t0_1 = (n === 0);
 266          if ($t0_1) {
 267            $block = 1; break;
 268          }
 269          else {
 270            $block = 2; break;
 271          }
 272          break;
 273        }
 274        case 1: {
 275          return '0';
 276          break;
 277        }
 278        case 2: {
 279          $t1_2 = (n < 0);
 280          if ($t1_2) {
 281            $block = 3; break;
 282          }
 283          else {
 284            $t3_4 = n;
 285            $t4_5 = false;
 286            $block = 4; break;
 287          }
 288          break;
 289        }
 290        case 3: {
 291          $t2_3 = -n;
 292          $t3_4 = $t2_3;
 293          $t4_5 = true;
 294          $block = 4; break;
 295          break;
 296        }
 297        case 4: {
 298          $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 299          $t12_13 = $t3_4;
 300          $t13_14 = 20;
 301          $block = 7; break;
 302          break;
 303        }
 304        case 5: {
 305          $t6_7 = ($t13_14 - 1);
 306          $t7_8 = ($t12_13 % 10);
 307          $t8_9 = (48 + $t7_8);
 308          $t9_10 = ($t8_9 & 0xFF);
 309          $t10_11 = $t5_6.$get().addr($t6_7);
 310          $t10_11.$set($t9_10);
 311          $t11_12 = Math.trunc($t12_13 / 10);
 312          $t12_13 = $t11_12;
 313          $t13_14 = $t6_7;
 314          $block = 7; break;
 315          break;
 316        }
 317        case 6: {
 318          if ($t4_5) {
 319            $block = 8; break;
 320          }
 321          else {
 322            $t17_18 = $t13_14;
 323            $block = 9; break;
 324          }
 325          break;
 326        }
 327        case 7: {
 328          $t14_15 = ($t12_13 > 0);
 329          if ($t14_15) {
 330            $block = 5; break;
 331          }
 332          else {
 333            $block = 6; break;
 334          }
 335          break;
 336        }
 337        case 8: {
 338          $t15_16 = ($t13_14 - 1);
 339          $t16_17 = $t5_6.$get().addr($t15_16);
 340          $t16_17.$set(45);
 341          $t17_18 = $t15_16;
 342          $block = 9; break;
 343          break;
 344        }
 345        case 9: {
 346          $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
 347          $t19_20 = $rt.builtin.bytesToString($t18_19);
 348          return $t19_20;
 349          break;
 350        }
 351      }
 352    }
 353  }
 354  
 355  export function containsStr(ss, s) {
 356    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 357    let $block = 0;
 358    while (true) {
 359      switch ($block) {
 360        case 0: {
 361          $t0_1 = $rt.builtin.len(ss);
 362          $t1_2 = -1;
 363          $block = 1; break;
 364          break;
 365        }
 366        case 1: {
 367          $t2_3 = ($t1_2 + 1);
 368          $t3_4 = ($t2_3 < $t0_1);
 369          if ($t3_4) {
 370            $block = 2; break;
 371          }
 372          else {
 373            $block = 3; break;
 374          }
 375          break;
 376        }
 377        case 2: {
 378          $t4_5 = ss.addr($t2_3);
 379          $t5_6 = $t4_5.$get();
 380          $t6_7 = ($t5_6 === s);
 381          if ($t6_7) {
 382            $block = 4; break;
 383          }
 384          else {
 385            $t1_2 = $t2_3;
 386            $block = 1; break;
 387          }
 388          break;
 389        }
 390        case 3: {
 391          return false;
 392          break;
 393        }
 394        case 4: {
 395          return true;
 396          break;
 397        }
 398      }
 399    }
 400  }
 401  
 402  export function containsInt(ns, n) {
 403    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 404    let $block = 0;
 405    while (true) {
 406      switch ($block) {
 407        case 0: {
 408          $t0_1 = $rt.builtin.len(ns);
 409          $t1_2 = -1;
 410          $block = 1; break;
 411          break;
 412        }
 413        case 1: {
 414          $t2_3 = ($t1_2 + 1);
 415          $t3_4 = ($t2_3 < $t0_1);
 416          if ($t3_4) {
 417            $block = 2; break;
 418          }
 419          else {
 420            $block = 3; break;
 421          }
 422          break;
 423        }
 424        case 2: {
 425          $t4_5 = ns.addr($t2_3);
 426          $t5_6 = $t4_5.$get();
 427          $t6_7 = ($t5_6 === n);
 428          if ($t6_7) {
 429            $block = 4; break;
 430          }
 431          else {
 432            $t1_2 = $t2_3;
 433            $block = 1; break;
 434          }
 435          break;
 436        }
 437        case 3: {
 438          return false;
 439          break;
 440        }
 441        case 4: {
 442          return true;
 443          break;
 444        }
 445      }
 446    }
 447  }
 448  
 449  export function eventHasTagValue(e, tagKey, values) {
 450    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22;
 451    let $block = 0;
 452    while (true) {
 453      switch ($block) {
 454        case 0: {
 455          $t0_1 = { $get() { return e.$get().Tags; }, $set(v) { const obj = e.$get(); obj.Tags = v; e.$set(obj); } };
 456          $t1_2 = $t0_1.$get();
 457          $t2_3 = $rt.builtin.len($t1_2);
 458          $t3_4 = -1;
 459          $block = 1; break;
 460          break;
 461        }
 462        case 1: {
 463          $t4_5 = ($t3_4 + 1);
 464          $t5_6 = ($t4_5 < $t2_3);
 465          if ($t5_6) {
 466            $block = 2; break;
 467          }
 468          else {
 469            $block = 3; break;
 470          }
 471          break;
 472        }
 473        case 2: {
 474          $t6_7 = $t1_2.addr($t4_5);
 475          $t7_8 = $t6_7.$get();
 476          $t8_9 = $rt.builtin.len($t7_8);
 477          $t9_10 = ($t8_9 > 1);
 478          if ($t9_10) {
 479            $block = 5; break;
 480          }
 481          else {
 482            $t3_4 = $t4_5;
 483            $block = 1; break;
 484          }
 485          break;
 486        }
 487        case 3: {
 488          return false;
 489          break;
 490        }
 491        case 4: {
 492          $t10_11 = $rt.builtin.len(values);
 493          $t14_15 = -1;
 494          $block = 6; break;
 495          break;
 496        }
 497        case 5: {
 498          $t11_12 = $t7_8.addr(0);
 499          $t12_13 = $t11_12.$get();
 500          $t13_14 = ($t12_13 === tagKey);
 501          if ($t13_14) {
 502            $block = 4; break;
 503          }
 504          else {
 505            $t3_4 = $t4_5;
 506            $block = 1; break;
 507          }
 508          break;
 509        }
 510        case 6: {
 511          $t15_16 = ($t14_15 + 1);
 512          $t16_17 = ($t15_16 < $t10_11);
 513          if ($t16_17) {
 514            $block = 7; break;
 515          }
 516          else {
 517            $t3_4 = $t4_5;
 518            $block = 1; break;
 519          }
 520          break;
 521        }
 522        case 7: {
 523          $t17_18 = values.addr($t15_16);
 524          $t18_19 = $t17_18.$get();
 525          $t19_20 = $t7_8.addr(1);
 526          $t20_21 = $t19_20.$get();
 527          $t21_22 = ($t20_21 === $t18_19);
 528          if ($t21_22) {
 529            $block = 8; break;
 530          }
 531          else {
 532            $t14_15 = $t15_16;
 533            $block = 6; break;
 534          }
 535          break;
 536        }
 537        case 8: {
 538          return true;
 539          break;
 540        }
 541      }
 542    }
 543  }
 544  
 545  export function serializeTags(buf, tags) {
 546    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44;
 547    let $block = 0;
 548    while (true) {
 549      switch ($block) {
 550        case 0: {
 551          $t0_1 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 552          $t1_2 = $t0_1.$get().addr(0);
 553          $t1_2.$set(91);
 554          $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
 555          $t3_4 = $rt.builtin.appendSlice(buf, $t2_3);
 556          $t4_5 = $rt.builtin.len(tags);
 557          $t5_6 = $t3_4;
 558          $t6_7 = -1;
 559          $block = 1; break;
 560          break;
 561        }
 562        case 1: {
 563          $t7_8 = ($t6_7 + 1);
 564          $t8_9 = ($t7_8 < $t4_5);
 565          if ($t8_9) {
 566            $block = 2; break;
 567          }
 568          else {
 569            $block = 3; break;
 570          }
 571          break;
 572        }
 573        case 2: {
 574          $t9_10 = tags.addr($t7_8);
 575          $t10_11 = $t9_10.$get();
 576          $t11_12 = ($t7_8 > 0);
 577          if ($t11_12) {
 578            $block = 4; break;
 579          }
 580          else {
 581            $t20_21 = $t5_6;
 582            $block = 5; break;
 583          }
 584          break;
 585        }
 586        case 3: {
 587          $t12_13 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 588          $t13_14 = $t12_13.$get().addr(0);
 589          $t13_14.$set(93);
 590          $t14_15 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
 591          $t15_16 = $rt.builtin.appendSlice($t5_6, $t14_15);
 592          return $t15_16;
 593          break;
 594        }
 595        case 4: {
 596          $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 597          $t17_18 = $t16_17.$get().addr(0);
 598          $t17_18.$set(44);
 599          $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
 600          $t19_20 = $rt.builtin.appendSlice($t5_6, $t18_19);
 601          $t20_21 = $t19_20;
 602          $block = 5; break;
 603          break;
 604        }
 605        case 5: {
 606          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 607          $t22_23 = $t21_22.$get().addr(0);
 608          $t22_23.$set(91);
 609          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
 610          $t24_25 = $rt.builtin.appendSlice($t20_21, $t23_24);
 611          $t25_26 = $rt.builtin.len($t10_11);
 612          $t26_27 = $t24_25;
 613          $t27_28 = -1;
 614          $block = 6; break;
 615          break;
 616        }
 617        case 6: {
 618          $t28_29 = ($t27_28 + 1);
 619          $t29_30 = ($t28_29 < $t25_26);
 620          if ($t29_30) {
 621            $block = 7; break;
 622          }
 623          else {
 624            $block = 8; break;
 625          }
 626          break;
 627        }
 628        case 7: {
 629          $t30_31 = $t10_11.addr($t28_29);
 630          $t31_32 = $t30_31.$get();
 631          $t32_33 = ($t28_29 > 0);
 632          if ($t32_33) {
 633            $block = 9; break;
 634          }
 635          else {
 636            $t41_42 = $t26_27;
 637            $block = 10; break;
 638          }
 639          break;
 640        }
 641        case 8: {
 642          $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 643          $t34_35 = $t33_34.$get().addr(0);
 644          $t34_35.$set(93);
 645          $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
 646          $t36_37 = $rt.builtin.appendSlice($t26_27, $t35_36);
 647          $t5_6 = $t36_37;
 648          $t6_7 = $t7_8;
 649          $block = 1; break;
 650          break;
 651        }
 652        case 9: {
 653          $t37_38 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 654          $t38_39 = $t37_38.$get().addr(0);
 655          $t38_39.$set(44);
 656          $t39_40 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
 657          $t40_41 = $rt.builtin.appendSlice($t26_27, $t39_40);
 658          $t41_42 = $t40_41;
 659          $block = 10; break;
 660          break;
 661        }
 662        case 10: {
 663          $t42_43 = common$helpers.JsonString($t31_32);
 664          $t43_44 = $rt.builtin.appendString($t41_42, $t42_43);
 665          $t26_27 = $t43_44;
 666          $t27_28 = $t28_29;
 667          $block = 6; break;
 668          break;
 669        }
 670      }
 671    }
 672  }
 673  
 674  export function ParseEvent(s) {
 675    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74;
 676    let $block = 0;
 677    while (true) {
 678      switch ($block) {
 679        case 0: {
 680          $t0_1 = { $value: { ID: '', PubKey: '', CreatedAt: 0, Kind: 0, Tags: null, Content: '', Sig: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 681          $t1_2 = skipWS(s, 0);
 682          $t2_3 = $rt.builtin.len(s);
 683          $t3_4 = ($t1_2 >= $t2_3);
 684          if ($t3_4) {
 685            $block = 1; break;
 686          }
 687          else {
 688            $block = 3; break;
 689          }
 690          break;
 691        }
 692        case 1: {
 693          return null;
 694          break;
 695        }
 696        case 2: {
 697          $t4_5 = ($t1_2 + 1);
 698          $t10_11 = $t4_5;
 699          $block = 6; break;
 700          break;
 701        }
 702        case 3: {
 703          $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
 704          $t5_6 = $rt.builtin.stringByteAt(s, $t1_2);
 705          $t6_7 = ($t5_6 !== 123);
 706          if ($t6_7) {
 707            $block = 1; break;
 708          }
 709          else {
 710            $block = 2; break;
 711          }
 712          break;
 713        }
 714        case 4: {
 715          $t7_8 = skipWS(s, $t10_11);
 716          $t8_9 = $rt.builtin.len(s);
 717          $t9_10 = ($t7_8 >= $t8_9);
 718          if ($t9_10) {
 719            $block = 7; break;
 720          }
 721          else {
 722            $block = 8; break;
 723          }
 724          break;
 725        }
 726        case 5: {
 727          return $t0_1;
 728          break;
 729        }
 730        case 6: {
 731          $t11_12 = $rt.builtin.len(s);
 732          $t12_13 = ($t10_11 < $t11_12);
 733          if ($t12_13) {
 734            $block = 4; break;
 735          }
 736          else {
 737            $block = 5; break;
 738          }
 739          break;
 740        }
 741        case 7: {
 742          return null;
 743          break;
 744        }
 745        case 8: {
 746          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
 747          $t13_14 = $rt.builtin.stringByteAt(s, $t7_8);
 748          $t14_15 = ($t13_14 === 125);
 749          if ($t14_15) {
 750            $block = 9; break;
 751          }
 752          else {
 753            $block = 10; break;
 754          }
 755          break;
 756        }
 757        case 9: {
 758          return $t0_1;
 759          break;
 760        }
 761        case 10: {
 762          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
 763          $t15_16 = $rt.builtin.stringByteAt(s, $t7_8);
 764          $t16_17 = ($t15_16 === 44);
 765          if ($t16_17) {
 766            $block = 11; break;
 767          }
 768          else {
 769            $block = 12; break;
 770          }
 771          break;
 772        }
 773        case 11: {
 774          $t17_18 = ($t7_8 + 1);
 775          $t10_11 = $t17_18;
 776          $block = 6; break;
 777          break;
 778        }
 779        case 12: {
 780          $t18_19 = parseString(s, $t7_8);
 781          $t19_20 = $t18_19[0];
 782          $t20_21 = $t18_19[1];
 783          $t21_22 = ($t20_21 < 0);
 784          if ($t21_22) {
 785            $block = 13; break;
 786          }
 787          else {
 788            $block = 14; break;
 789          }
 790          break;
 791        }
 792        case 13: {
 793          return null;
 794          break;
 795        }
 796        case 14: {
 797          $t22_23 = skipWS(s, $t20_21);
 798          $t23_24 = $rt.builtin.len(s);
 799          $t24_25 = ($t22_23 >= $t23_24);
 800          if ($t24_25) {
 801            $block = 15; break;
 802          }
 803          else {
 804            $block = 17; break;
 805          }
 806          break;
 807        }
 808        case 15: {
 809          return null;
 810          break;
 811        }
 812        case 16: {
 813          $t25_26 = ($t22_23 + 1);
 814          $t26_27 = skipWS(s, $t25_26);
 815          $t27_28 = ($t19_20 === 'id');
 816          if ($t27_28) {
 817            $block = 18; break;
 818          }
 819          else {
 820            $block = 20; break;
 821          }
 822          break;
 823        }
 824        case 17: {
 825          $rt.runtime.boundsCheck($t22_23, $rt.builtin.byteLen(s));
 826          $t28_29 = $rt.builtin.stringByteAt(s, $t22_23);
 827          $t29_30 = ($t28_29 !== 58);
 828          if ($t29_30) {
 829            $block = 15; break;
 830          }
 831          else {
 832            $block = 16; break;
 833          }
 834          break;
 835        }
 836        case 18: {
 837          $t30_31 = parseString(s, $t26_27);
 838          $t31_32 = $t30_31[0];
 839          $t32_33 = { $get() { return $t0_1.$get().ID; }, $set(v) { const obj = $t0_1.$get(); obj.ID = v; $t0_1.$set(obj); } };
 840          $t32_33.$set($t31_32);
 841          $t33_34 = $t30_31[1];
 842          $t34_35 = ($t33_34 < 0);
 843          if ($t34_35) {
 844            $block = 21; break;
 845          }
 846          else {
 847            $t10_11 = $t33_34;
 848            $block = 6; break;
 849          }
 850          break;
 851        }
 852        case 19: {
 853          $t35_36 = parseString(s, $t26_27);
 854          $t36_37 = $t35_36[0];
 855          $t37_38 = { $get() { return $t0_1.$get().PubKey; }, $set(v) { const obj = $t0_1.$get(); obj.PubKey = v; $t0_1.$set(obj); } };
 856          $t37_38.$set($t36_37);
 857          $t38_39 = $t35_36[1];
 858          $t39_40 = ($t38_39 < 0);
 859          if ($t39_40) {
 860            $block = 24; break;
 861          }
 862          else {
 863            $t10_11 = $t38_39;
 864            $block = 6; break;
 865          }
 866          break;
 867        }
 868        case 20: {
 869          $t40_41 = ($t19_20 === 'pubkey');
 870          if ($t40_41) {
 871            $block = 19; break;
 872          }
 873          else {
 874            $block = 23; break;
 875          }
 876          break;
 877        }
 878        case 21: {
 879          return null;
 880          break;
 881        }
 882        case 22: {
 883          $t41_42 = parseInt(s, $t26_27);
 884          $t42_43 = $t41_42[0];
 885          $t43_44 = { $get() { return $t0_1.$get().CreatedAt; }, $set(v) { const obj = $t0_1.$get(); obj.CreatedAt = v; $t0_1.$set(obj); } };
 886          $t43_44.$set($t42_43);
 887          $t44_45 = $t41_42[1];
 888          $t45_46 = ($t44_45 < 0);
 889          if ($t45_46) {
 890            $block = 27; break;
 891          }
 892          else {
 893            $t10_11 = $t44_45;
 894            $block = 6; break;
 895          }
 896          break;
 897        }
 898        case 23: {
 899          $t46_47 = ($t19_20 === 'created_at');
 900          if ($t46_47) {
 901            $block = 22; break;
 902          }
 903          else {
 904            $block = 26; break;
 905          }
 906          break;
 907        }
 908        case 24: {
 909          return null;
 910          break;
 911        }
 912        case 25: {
 913          $t47_48 = parseInt(s, $t26_27);
 914          $t48_49 = $t47_48[0];
 915          $t49_50 = $t47_48[1];
 916          $t50_51 = ($t49_50 < 0);
 917          if ($t50_51) {
 918            $block = 30; break;
 919          }
 920          else {
 921            $block = 31; break;
 922          }
 923          break;
 924        }
 925        case 26: {
 926          $t51_52 = ($t19_20 === 'kind');
 927          if ($t51_52) {
 928            $block = 25; break;
 929          }
 930          else {
 931            $block = 29; break;
 932          }
 933          break;
 934        }
 935        case 27: {
 936          return null;
 937          break;
 938        }
 939        case 28: {
 940          $t52_53 = parseString(s, $t26_27);
 941          $t53_54 = $t52_53[0];
 942          $t54_55 = { $get() { return $t0_1.$get().Content; }, $set(v) { const obj = $t0_1.$get(); obj.Content = v; $t0_1.$set(obj); } };
 943          $t54_55.$set($t53_54);
 944          $t55_56 = $t52_53[1];
 945          $t56_57 = ($t55_56 < 0);
 946          if ($t56_57) {
 947            $block = 34; break;
 948          }
 949          else {
 950            $t10_11 = $t55_56;
 951            $block = 6; break;
 952          }
 953          break;
 954        }
 955        case 29: {
 956          $t57_58 = ($t19_20 === 'content');
 957          if ($t57_58) {
 958            $block = 28; break;
 959          }
 960          else {
 961            $block = 33; break;
 962          }
 963          break;
 964        }
 965        case 30: {
 966          return null;
 967          break;
 968        }
 969        case 31: {
 970          $t58_59 = $t48_49;
 971          $t59_60 = { $get() { return $t0_1.$get().Kind; }, $set(v) { const obj = $t0_1.$get(); obj.Kind = v; $t0_1.$set(obj); } };
 972          $t59_60.$set($t58_59);
 973          $t10_11 = $t49_50;
 974          $block = 6; break;
 975          break;
 976        }
 977        case 32: {
 978          $t60_61 = parseString(s, $t26_27);
 979          $t61_62 = $t60_61[0];
 980          $t62_63 = { $get() { return $t0_1.$get().Sig; }, $set(v) { const obj = $t0_1.$get(); obj.Sig = v; $t0_1.$set(obj); } };
 981          $t62_63.$set($t61_62);
 982          $t63_64 = $t60_61[1];
 983          $t64_65 = ($t63_64 < 0);
 984          if ($t64_65) {
 985            $block = 37; break;
 986          }
 987          else {
 988            $t10_11 = $t63_64;
 989            $block = 6; break;
 990          }
 991          break;
 992        }
 993        case 33: {
 994          $t65_66 = ($t19_20 === 'sig');
 995          if ($t65_66) {
 996            $block = 32; break;
 997          }
 998          else {
 999            $block = 36; break;
1000          }
1001          break;
1002        }
1003        case 34: {
1004          return null;
1005          break;
1006        }
1007        case 35: {
1008          $t66_67 = parseTags(s, $t26_27);
1009          $t67_68 = $t66_67[0];
1010          $t68_69 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1011          $t68_69.$set($t67_68);
1012          $t69_70 = $t66_67[1];
1013          $t70_71 = ($t69_70 < 0);
1014          if ($t70_71) {
1015            $block = 39; break;
1016          }
1017          else {
1018            $t10_11 = $t69_70;
1019            $block = 6; break;
1020          }
1021          break;
1022        }
1023        case 36: {
1024          $t71_72 = ($t19_20 === 'tags');
1025          if ($t71_72) {
1026            $block = 35; break;
1027          }
1028          else {
1029            $block = 38; break;
1030          }
1031          break;
1032        }
1033        case 37: {
1034          return null;
1035          break;
1036        }
1037        case 38: {
1038          $t72_73 = skipValue(s, $t26_27);
1039          $t73_74 = ($t72_73 < 0);
1040          if ($t73_74) {
1041            $block = 40; break;
1042          }
1043          else {
1044            $t10_11 = $t72_73;
1045            $block = 6; break;
1046          }
1047          break;
1048        }
1049        case 39: {
1050          return null;
1051          break;
1052        }
1053        case 40: {
1054          return null;
1055          break;
1056        }
1057      }
1058    }
1059  }
1060  
1061  export function ParseRelayMessage(s) {
1062    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116;
1063    let $block = 0;
1064    while (true) {
1065      switch ($block) {
1066        case 0: {
1067          $t0_1 = skipWS(s, 0);
1068          $t1_2 = $rt.builtin.len(s);
1069          $t2_3 = ($t0_1 >= $t1_2);
1070          if ($t2_3) {
1071            $block = 1; break;
1072          }
1073          else {
1074            $block = 3; break;
1075          }
1076          break;
1077        }
1078        case 1: {
1079          return ['', '', ''];
1080          break;
1081        }
1082        case 2: {
1083          $t3_4 = ($t0_1 + 1);
1084          $t4_5 = skipWS(s, $t3_4);
1085          $t5_6 = parseString(s, $t4_5);
1086          $t6_7 = $t5_6[0];
1087          $t7_8 = $t5_6[1];
1088          $t8_9 = ($t7_8 < 0);
1089          if ($t8_9) {
1090            $block = 4; break;
1091          }
1092          else {
1093            $block = 5; break;
1094          }
1095          break;
1096        }
1097        case 3: {
1098          $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen(s));
1099          $t9_10 = $rt.builtin.stringByteAt(s, $t0_1);
1100          $t10_11 = ($t9_10 !== 91);
1101          if ($t10_11) {
1102            $block = 1; break;
1103          }
1104          else {
1105            $block = 2; break;
1106          }
1107          break;
1108        }
1109        case 4: {
1110          return ['', '', ''];
1111          break;
1112        }
1113        case 5: {
1114          $t11_12 = ($t6_7 === 'EVENT');
1115          if ($t11_12) {
1116            $block = 7; break;
1117          }
1118          else {
1119            $block = 9; break;
1120          }
1121          break;
1122        }
1123        case 6: {
1124          return [$t6_7, $t12_13, $t13_14];
1125          break;
1126        }
1127        case 7: {
1128          $t14_15 = skipWS(s, $t7_8);
1129          $t15_16 = $rt.builtin.len(s);
1130          $t16_17 = ($t14_15 >= $t15_16);
1131          if ($t16_17) {
1132            $block = 10; break;
1133          }
1134          else {
1135            $block = 12; break;
1136          }
1137          break;
1138        }
1139        case 8: {
1140          $t17_18 = skipWS(s, $t7_8);
1141          $t18_19 = $rt.builtin.len(s);
1142          $t19_20 = ($t17_18 >= $t18_19);
1143          if ($t19_20) {
1144            $block = 22; break;
1145          }
1146          else {
1147            $block = 24; break;
1148          }
1149          break;
1150        }
1151        case 9: {
1152          $t20_21 = ($t6_7 === 'EOSE');
1153          if ($t20_21) {
1154            $block = 8; break;
1155          }
1156          else {
1157            $block = 21; break;
1158          }
1159          break;
1160        }
1161        case 10: {
1162          return [$t6_7, '', ''];
1163          break;
1164        }
1165        case 11: {
1166          $t21_22 = ($t14_15 + 1);
1167          $t22_23 = skipWS(s, $t21_22);
1168          $t23_24 = parseString(s, $t22_23);
1169          $t24_25 = $t23_24[0];
1170          $t25_26 = $t23_24[1];
1171          $t26_27 = ($t25_26 < 0);
1172          if ($t26_27) {
1173            $block = 13; break;
1174          }
1175          else {
1176            $block = 14; break;
1177          }
1178          break;
1179        }
1180        case 12: {
1181          $rt.runtime.boundsCheck($t14_15, $rt.builtin.byteLen(s));
1182          $t27_28 = $rt.builtin.stringByteAt(s, $t14_15);
1183          $t28_29 = ($t27_28 !== 44);
1184          if ($t28_29) {
1185            $block = 10; break;
1186          }
1187          else {
1188            $block = 11; break;
1189          }
1190          break;
1191        }
1192        case 13: {
1193          return [$t6_7, $t24_25, ''];
1194          break;
1195        }
1196        case 14: {
1197          $t29_30 = skipWS(s, $t25_26);
1198          $t30_31 = $rt.builtin.len(s);
1199          $t31_32 = ($t29_30 >= $t30_31);
1200          if ($t31_32) {
1201            $block = 15; break;
1202          }
1203          else {
1204            $block = 17; break;
1205          }
1206          break;
1207        }
1208        case 15: {
1209          return [$t6_7, $t24_25, ''];
1210          break;
1211        }
1212        case 16: {
1213          $t32_33 = ($t29_30 + 1);
1214          $t33_34 = skipWS(s, $t32_33);
1215          $t34_35 = skipValue(s, $t33_34);
1216          $t35_36 = ($t34_35 < 0);
1217          if ($t35_36) {
1218            $block = 18; break;
1219          }
1220          else {
1221            $block = 19; break;
1222          }
1223          break;
1224        }
1225        case 17: {
1226          $rt.runtime.boundsCheck($t29_30, $rt.builtin.byteLen(s));
1227          $t36_37 = $rt.builtin.stringByteAt(s, $t29_30);
1228          $t37_38 = ($t36_37 !== 44);
1229          if ($t37_38) {
1230            $block = 15; break;
1231          }
1232          else {
1233            $block = 16; break;
1234          }
1235          break;
1236        }
1237        case 18: {
1238          return [$t6_7, $t24_25, ''];
1239          break;
1240        }
1241        case 19: {
1242          $t38_39 = $rt.builtin.stringSlice(s, $t33_34, $t34_35);
1243          $t12_13 = $t24_25;
1244          $t13_14 = $t38_39;
1245          $block = 6; break;
1246          break;
1247        }
1248        case 20: {
1249          $t39_40 = skipWS(s, $t7_8);
1250          $t40_41 = $rt.builtin.len(s);
1251          $t41_42 = ($t39_40 >= $t40_41);
1252          if ($t41_42) {
1253            $block = 27; break;
1254          }
1255          else {
1256            $block = 29; break;
1257          }
1258          break;
1259        }
1260        case 21: {
1261          $t42_43 = ($t6_7 === 'OK');
1262          if ($t42_43) {
1263            $block = 20; break;
1264          }
1265          else {
1266            $block = 26; break;
1267          }
1268          break;
1269        }
1270        case 22: {
1271          return [$t6_7, '', ''];
1272          break;
1273        }
1274        case 23: {
1275          $t43_44 = ($t17_18 + 1);
1276          $t44_45 = skipWS(s, $t43_44);
1277          $t45_46 = parseString(s, $t44_45);
1278          $t46_47 = $t45_46[0];
1279          $t47_48 = $t45_46[1];
1280          $t12_13 = $t46_47;
1281          $t13_14 = '';
1282          $block = 6; break;
1283          break;
1284        }
1285        case 24: {
1286          $rt.runtime.boundsCheck($t17_18, $rt.builtin.byteLen(s));
1287          $t48_49 = $rt.builtin.stringByteAt(s, $t17_18);
1288          $t49_50 = ($t48_49 !== 44);
1289          if ($t49_50) {
1290            $block = 22; break;
1291          }
1292          else {
1293            $block = 23; break;
1294          }
1295          break;
1296        }
1297        case 25: {
1298          $t50_51 = skipWS(s, $t7_8);
1299          $t51_52 = $rt.builtin.len(s);
1300          $t52_53 = ($t50_51 >= $t51_52);
1301          if ($t52_53) {
1302            $block = 48; break;
1303          }
1304          else {
1305            $block = 50; break;
1306          }
1307          break;
1308        }
1309        case 26: {
1310          $t53_54 = ($t6_7 === 'NOTICE');
1311          if ($t53_54) {
1312            $block = 25; break;
1313          }
1314          else {
1315            $block = 47; break;
1316          }
1317          break;
1318        }
1319        case 27: {
1320          return [$t6_7, '', ''];
1321          break;
1322        }
1323        case 28: {
1324          $t54_55 = ($t39_40 + 1);
1325          $t55_56 = skipWS(s, $t54_55);
1326          $t56_57 = parseString(s, $t55_56);
1327          $t57_58 = $t56_57[0];
1328          $t58_59 = $t56_57[1];
1329          $t59_60 = ($t58_59 < 0);
1330          if ($t59_60) {
1331            $block = 30; break;
1332          }
1333          else {
1334            $block = 31; break;
1335          }
1336          break;
1337        }
1338        case 29: {
1339          $rt.runtime.boundsCheck($t39_40, $rt.builtin.byteLen(s));
1340          $t60_61 = $rt.builtin.stringByteAt(s, $t39_40);
1341          $t61_62 = ($t60_61 !== 44);
1342          if ($t61_62) {
1343            $block = 27; break;
1344          }
1345          else {
1346            $block = 28; break;
1347          }
1348          break;
1349        }
1350        case 30: {
1351          return [$t6_7, $t57_58, ''];
1352          break;
1353        }
1354        case 31: {
1355          $t62_63 = skipWS(s, $t58_59);
1356          $t63_64 = $rt.builtin.len(s);
1357          $t64_65 = ($t62_63 >= $t63_64);
1358          if ($t64_65) {
1359            $block = 32; break;
1360          }
1361          else {
1362            $block = 34; break;
1363          }
1364          break;
1365        }
1366        case 32: {
1367          return [$t6_7, $t57_58, ''];
1368          break;
1369        }
1370        case 33: {
1371          $t65_66 = ($t62_63 + 1);
1372          $t66_67 = skipWS(s, $t65_66);
1373          $t67_68 = ($t66_67 + 4);
1374          $t68_69 = $rt.builtin.len(s);
1375          $t69_70 = ($t67_68 <= $t68_69);
1376          if ($t69_70) {
1377            $block = 38; break;
1378          }
1379          else {
1380            $block = 37; break;
1381          }
1382          break;
1383        }
1384        case 34: {
1385          $rt.runtime.boundsCheck($t62_63, $rt.builtin.byteLen(s));
1386          $t70_71 = $rt.builtin.stringByteAt(s, $t62_63);
1387          $t71_72 = ($t70_71 !== 44);
1388          if ($t71_72) {
1389            $block = 32; break;
1390          }
1391          else {
1392            $block = 33; break;
1393          }
1394          break;
1395        }
1396        case 35: {
1397          $t72_73 = ($t66_67 + 4);
1398          $t73_74 = $t72_73;
1399          $t74_75 = true;
1400          $block = 36; break;
1401          break;
1402        }
1403        case 36: {
1404          $t75_76 = skipWS(s, $t73_74);
1405          $t76_77 = $rt.builtin.len(s);
1406          $t77_78 = ($t75_76 < $t76_77);
1407          if ($t77_78) {
1408            $block = 43; break;
1409          }
1410          else {
1411            $t93_94 = '';
1412            $block = 42; break;
1413          }
1414          break;
1415        }
1416        case 37: {
1417          $t78_79 = ($t66_67 + 5);
1418          $t79_80 = $rt.builtin.len(s);
1419          $t80_81 = ($t78_79 <= $t79_80);
1420          if ($t80_81) {
1421            $block = 40; break;
1422          }
1423          else {
1424            $t73_74 = $t66_67;
1425            $t74_75 = false;
1426            $block = 36; break;
1427          }
1428          break;
1429        }
1430        case 38: {
1431          $t81_82 = ($t66_67 + 4);
1432          $t82_83 = $rt.builtin.stringSlice(s, $t66_67, $t81_82);
1433          $t83_84 = ($t82_83 === 'true');
1434          if ($t83_84) {
1435            $block = 35; break;
1436          }
1437          else {
1438            $block = 37; break;
1439          }
1440          break;
1441        }
1442        case 39: {
1443          $t84_85 = ($t66_67 + 5);
1444          $t73_74 = $t84_85;
1445          $t74_75 = false;
1446          $block = 36; break;
1447          break;
1448        }
1449        case 40: {
1450          $t85_86 = ($t66_67 + 5);
1451          $t86_87 = $rt.builtin.stringSlice(s, $t66_67, $t85_86);
1452          $t87_88 = ($t86_87 === 'false');
1453          if ($t87_88) {
1454            $block = 39; break;
1455          }
1456          else {
1457            $t73_74 = $t66_67;
1458            $t74_75 = false;
1459            $block = 36; break;
1460          }
1461          break;
1462        }
1463        case 41: {
1464          $t88_89 = ($t75_76 + 1);
1465          $t89_90 = skipWS(s, $t88_89);
1466          $t90_91 = parseString(s, $t89_90);
1467          $t91_92 = $t90_91[0];
1468          $t92_93 = $t90_91[1];
1469          $t93_94 = $t91_92;
1470          $block = 42; break;
1471          break;
1472        }
1473        case 42: {
1474          if ($t74_75) {
1475            $block = 44; break;
1476          }
1477          else {
1478            $block = 45; break;
1479          }
1480          break;
1481        }
1482        case 43: {
1483          $rt.runtime.boundsCheck($t75_76, $rt.builtin.byteLen(s));
1484          $t94_95 = $rt.builtin.stringByteAt(s, $t75_76);
1485          $t95_96 = ($t94_95 === 44);
1486          if ($t95_96) {
1487            $block = 41; break;
1488          }
1489          else {
1490            $t93_94 = '';
1491            $block = 42; break;
1492          }
1493          break;
1494        }
1495        case 44: {
1496          $t96_97 = ('true:' + $t93_94);
1497          $t12_13 = $t57_58;
1498          $t13_14 = $t96_97;
1499          $block = 6; break;
1500          break;
1501        }
1502        case 45: {
1503          $t97_98 = ('false:' + $t93_94);
1504          $t12_13 = $t57_58;
1505          $t13_14 = $t97_98;
1506          $block = 6; break;
1507          break;
1508        }
1509        case 46: {
1510          $t98_99 = skipWS(s, $t7_8);
1511          $t99_100 = $rt.builtin.len(s);
1512          $t100_101 = ($t98_99 >= $t99_100);
1513          if ($t100_101) {
1514            $block = 51; break;
1515          }
1516          else {
1517            $block = 53; break;
1518          }
1519          break;
1520        }
1521        case 47: {
1522          $t101_102 = ($t6_7 === 'AUTH');
1523          if ($t101_102) {
1524            $block = 46; break;
1525          }
1526          else {
1527            $t12_13 = '';
1528            $t13_14 = '';
1529            $block = 6; break;
1530          }
1531          break;
1532        }
1533        case 48: {
1534          return [$t6_7, '', ''];
1535          break;
1536        }
1537        case 49: {
1538          $t102_103 = ($t50_51 + 1);
1539          $t103_104 = skipWS(s, $t102_103);
1540          $t104_105 = parseString(s, $t103_104);
1541          $t105_106 = $t104_105[0];
1542          $t106_107 = $t104_105[1];
1543          $t12_13 = '';
1544          $t13_14 = $t105_106;
1545          $block = 6; break;
1546          break;
1547        }
1548        case 50: {
1549          $rt.runtime.boundsCheck($t50_51, $rt.builtin.byteLen(s));
1550          $t107_108 = $rt.builtin.stringByteAt(s, $t50_51);
1551          $t108_109 = ($t107_108 !== 44);
1552          if ($t108_109) {
1553            $block = 48; break;
1554          }
1555          else {
1556            $block = 49; break;
1557          }
1558          break;
1559        }
1560        case 51: {
1561          return [$t6_7, '', ''];
1562          break;
1563        }
1564        case 52: {
1565          $t109_110 = ($t98_99 + 1);
1566          $t110_111 = skipWS(s, $t109_110);
1567          $t111_112 = parseString(s, $t110_111);
1568          $t112_113 = $t111_112[0];
1569          $t113_114 = $t111_112[1];
1570          $t12_13 = '';
1571          $t13_14 = $t112_113;
1572          $block = 6; break;
1573          break;
1574        }
1575        case 53: {
1576          $rt.runtime.boundsCheck($t98_99, $rt.builtin.byteLen(s));
1577          $t114_115 = $rt.builtin.stringByteAt(s, $t98_99);
1578          $t115_116 = ($t114_115 !== 44);
1579          if ($t115_116) {
1580            $block = 51; break;
1581          }
1582          else {
1583            $block = 52; break;
1584          }
1585          break;
1586        }
1587      }
1588    }
1589  }
1590  
1591  export function ParseFilter(s) {
1592    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82;
1593    let $block = 0;
1594    while (true) {
1595      switch ($block) {
1596        case 0: {
1597          $t0_1 = { $value: { IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0, Until: 0, Limit: 0, Proxy: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1598          $t1_2 = skipWS(s, 0);
1599          $t2_3 = $rt.builtin.len(s);
1600          $t3_4 = ($t1_2 >= $t2_3);
1601          if ($t3_4) {
1602            $block = 1; break;
1603          }
1604          else {
1605            $block = 3; break;
1606          }
1607          break;
1608        }
1609        case 1: {
1610          return null;
1611          break;
1612        }
1613        case 2: {
1614          $t4_5 = ($t1_2 + 1);
1615          $t10_11 = $t4_5;
1616          $block = 6; break;
1617          break;
1618        }
1619        case 3: {
1620          $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
1621          $t5_6 = $rt.builtin.stringByteAt(s, $t1_2);
1622          $t6_7 = ($t5_6 !== 123);
1623          if ($t6_7) {
1624            $block = 1; break;
1625          }
1626          else {
1627            $block = 2; break;
1628          }
1629          break;
1630        }
1631        case 4: {
1632          $t7_8 = skipWS(s, $t10_11);
1633          $t8_9 = $rt.builtin.len(s);
1634          $t9_10 = ($t7_8 >= $t8_9);
1635          if ($t9_10) {
1636            $block = 7; break;
1637          }
1638          else {
1639            $block = 8; break;
1640          }
1641          break;
1642        }
1643        case 5: {
1644          return $t0_1;
1645          break;
1646        }
1647        case 6: {
1648          $t11_12 = $rt.builtin.len(s);
1649          $t12_13 = ($t10_11 < $t11_12);
1650          if ($t12_13) {
1651            $block = 4; break;
1652          }
1653          else {
1654            $block = 5; break;
1655          }
1656          break;
1657        }
1658        case 7: {
1659          return null;
1660          break;
1661        }
1662        case 8: {
1663          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
1664          $t13_14 = $rt.builtin.stringByteAt(s, $t7_8);
1665          $t14_15 = ($t13_14 === 125);
1666          if ($t14_15) {
1667            $block = 9; break;
1668          }
1669          else {
1670            $block = 10; break;
1671          }
1672          break;
1673        }
1674        case 9: {
1675          return $t0_1;
1676          break;
1677        }
1678        case 10: {
1679          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
1680          $t15_16 = $rt.builtin.stringByteAt(s, $t7_8);
1681          $t16_17 = ($t15_16 === 44);
1682          if ($t16_17) {
1683            $block = 11; break;
1684          }
1685          else {
1686            $block = 12; break;
1687          }
1688          break;
1689        }
1690        case 11: {
1691          $t17_18 = ($t7_8 + 1);
1692          $t10_11 = $t17_18;
1693          $block = 6; break;
1694          break;
1695        }
1696        case 12: {
1697          $t18_19 = parseString(s, $t7_8);
1698          $t19_20 = $t18_19[0];
1699          $t20_21 = $t18_19[1];
1700          $t21_22 = ($t20_21 < 0);
1701          if ($t21_22) {
1702            $block = 13; break;
1703          }
1704          else {
1705            $block = 14; break;
1706          }
1707          break;
1708        }
1709        case 13: {
1710          return null;
1711          break;
1712        }
1713        case 14: {
1714          $t22_23 = skipWS(s, $t20_21);
1715          $t23_24 = $rt.builtin.len(s);
1716          $t24_25 = ($t22_23 >= $t23_24);
1717          if ($t24_25) {
1718            $block = 15; break;
1719          }
1720          else {
1721            $block = 17; break;
1722          }
1723          break;
1724        }
1725        case 15: {
1726          return null;
1727          break;
1728        }
1729        case 16: {
1730          $t25_26 = ($t22_23 + 1);
1731          $t26_27 = skipWS(s, $t25_26);
1732          $t27_28 = ($t19_20 === 'ids');
1733          if ($t27_28) {
1734            $block = 19; break;
1735          }
1736          else {
1737            $block = 21; break;
1738          }
1739          break;
1740        }
1741        case 17: {
1742          $rt.runtime.boundsCheck($t22_23, $rt.builtin.byteLen(s));
1743          $t28_29 = $rt.builtin.stringByteAt(s, $t22_23);
1744          $t29_30 = ($t28_29 !== 58);
1745          if ($t29_30) {
1746            $block = 15; break;
1747          }
1748          else {
1749            $block = 16; break;
1750          }
1751          break;
1752        }
1753        case 18: {
1754          $t31_32 = ($t30_31 < 0);
1755          if ($t31_32) {
1756            $block = 38; break;
1757          }
1758          else {
1759            $t10_11 = $t30_31;
1760            $block = 6; break;
1761          }
1762          break;
1763        }
1764        case 19: {
1765          $t32_33 = parseStrArray(s, $t26_27);
1766          $t33_34 = $t32_33[0];
1767          $t34_35 = { $get() { return $t0_1.$get().IDs; }, $set(v) { const obj = $t0_1.$get(); obj.IDs = v; $t0_1.$set(obj); } };
1768          $t34_35.$set($t33_34);
1769          $t35_36 = $t32_33[1];
1770          $t30_31 = $t35_36;
1771          $block = 18; break;
1772          break;
1773        }
1774        case 20: {
1775          $t36_37 = parseStrArray(s, $t26_27);
1776          $t37_38 = $t36_37[0];
1777          $t38_39 = { $get() { return $t0_1.$get().Authors; }, $set(v) { const obj = $t0_1.$get(); obj.Authors = v; $t0_1.$set(obj); } };
1778          $t38_39.$set($t37_38);
1779          $t39_40 = $t36_37[1];
1780          $t30_31 = $t39_40;
1781          $block = 18; break;
1782          break;
1783        }
1784        case 21: {
1785          $t40_41 = ($t19_20 === 'authors');
1786          if ($t40_41) {
1787            $block = 20; break;
1788          }
1789          else {
1790            $block = 23; break;
1791          }
1792          break;
1793        }
1794        case 22: {
1795          $t41_42 = parseIntArray(s, $t26_27);
1796          $t42_43 = $t41_42[0];
1797          $t43_44 = { $get() { return $t0_1.$get().Kinds; }, $set(v) { const obj = $t0_1.$get(); obj.Kinds = v; $t0_1.$set(obj); } };
1798          $t43_44.$set($t42_43);
1799          $t44_45 = $t41_42[1];
1800          $t30_31 = $t44_45;
1801          $block = 18; break;
1802          break;
1803        }
1804        case 23: {
1805          $t45_46 = ($t19_20 === 'kinds');
1806          if ($t45_46) {
1807            $block = 22; break;
1808          }
1809          else {
1810            $block = 25; break;
1811          }
1812          break;
1813        }
1814        case 24: {
1815          $t46_47 = parseInt(s, $t26_27);
1816          $t47_48 = $t46_47[0];
1817          $t48_49 = { $get() { return $t0_1.$get().Since; }, $set(v) { const obj = $t0_1.$get(); obj.Since = v; $t0_1.$set(obj); } };
1818          $t48_49.$set($t47_48);
1819          $t49_50 = $t46_47[1];
1820          $t30_31 = $t49_50;
1821          $block = 18; break;
1822          break;
1823        }
1824        case 25: {
1825          $t50_51 = ($t19_20 === 'since');
1826          if ($t50_51) {
1827            $block = 24; break;
1828          }
1829          else {
1830            $block = 27; break;
1831          }
1832          break;
1833        }
1834        case 26: {
1835          $t51_52 = parseInt(s, $t26_27);
1836          $t52_53 = $t51_52[0];
1837          $t53_54 = { $get() { return $t0_1.$get().Until; }, $set(v) { const obj = $t0_1.$get(); obj.Until = v; $t0_1.$set(obj); } };
1838          $t53_54.$set($t52_53);
1839          $t54_55 = $t51_52[1];
1840          $t30_31 = $t54_55;
1841          $block = 18; break;
1842          break;
1843        }
1844        case 27: {
1845          $t55_56 = ($t19_20 === 'until');
1846          if ($t55_56) {
1847            $block = 26; break;
1848          }
1849          else {
1850            $block = 29; break;
1851          }
1852          break;
1853        }
1854        case 28: {
1855          $t56_57 = parseInt(s, $t26_27);
1856          $t57_58 = $t56_57[0];
1857          $t58_59 = $t56_57[1];
1858          $t59_60 = $t57_58;
1859          $t60_61 = { $get() { return $t0_1.$get().Limit; }, $set(v) { const obj = $t0_1.$get(); obj.Limit = v; $t0_1.$set(obj); } };
1860          $t60_61.$set($t59_60);
1861          $t30_31 = $t58_59;
1862          $block = 18; break;
1863          break;
1864        }
1865        case 29: {
1866          $t61_62 = ($t19_20 === 'limit');
1867          if ($t61_62) {
1868            $block = 28; break;
1869          }
1870          else {
1871            $block = 31; break;
1872          }
1873          break;
1874        }
1875        case 30: {
1876          $t62_63 = parseStrArray(s, $t26_27);
1877          $t63_64 = $t62_63[0];
1878          $t64_65 = { $get() { return $t0_1.$get().Proxy; }, $set(v) { const obj = $t0_1.$get(); obj.Proxy = v; $t0_1.$set(obj); } };
1879          $t64_65.$set($t63_64);
1880          $t65_66 = $t62_63[1];
1881          $t30_31 = $t65_66;
1882          $block = 18; break;
1883          break;
1884        }
1885        case 31: {
1886          $t66_67 = ($t19_20 === '_proxy');
1887          if ($t66_67) {
1888            $block = 30; break;
1889          }
1890          else {
1891            $block = 32; break;
1892          }
1893          break;
1894        }
1895        case 32: {
1896          $t67_68 = $rt.builtin.len($t19_20);
1897          $t68_69 = ($t67_68 === 2);
1898          if ($t68_69) {
1899            $block = 35; break;
1900          }
1901          else {
1902            $block = 34; break;
1903          }
1904          break;
1905        }
1906        case 33: {
1907          $t69_70 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1908          $t70_71 = $t69_70.$get();
1909          $t71_72 = ($t70_71 === null);
1910          if ($t71_72) {
1911            $block = 36; break;
1912          }
1913          else {
1914            $block = 37; break;
1915          }
1916          break;
1917        }
1918        case 34: {
1919          $t72_73 = skipValue(s, $t26_27);
1920          $t30_31 = $t72_73;
1921          $block = 18; break;
1922          break;
1923        }
1924        case 35: {
1925          $rt.runtime.boundsCheck(0, $rt.builtin.byteLen($t19_20));
1926          $t73_74 = $rt.builtin.stringByteAt($t19_20, 0);
1927          $t74_75 = ($t73_74 === 35);
1928          if ($t74_75) {
1929            $block = 33; break;
1930          }
1931          else {
1932            $block = 34; break;
1933          }
1934          break;
1935        }
1936        case 36: {
1937          $t75_76 = $rt.builtin.makeMap('string');
1938          $t76_77 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1939          $t76_77.$set($t75_76);
1940          $block = 37; break;
1941          break;
1942        }
1943        case 37: {
1944          $t77_78 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1945          $t78_79 = $t77_78.$get();
1946          $t79_80 = parseStrArray(s, $t26_27);
1947          $t80_81 = $t79_80[0];
1948          $rt.builtin.mapUpdate($t78_79, $t19_20, $t80_81);
1949          $t81_82 = $t79_80[1];
1950          $t30_31 = $t81_82;
1951          $block = 18; break;
1952          break;
1953        }
1954        case 38: {
1955          return null;
1956          break;
1957        }
1958      }
1959    }
1960  }
1961  
1962  export function ParseEventsJSON(s) {
1963    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25;
1964    let $block = 0;
1965    while (true) {
1966      switch ($block) {
1967        case 0: {
1968          $t0_1 = skipWS(s, 0);
1969          $t1_2 = $rt.builtin.len(s);
1970          $t2_3 = ($t0_1 >= $t1_2);
1971          if ($t2_3) {
1972            $block = 1; break;
1973          }
1974          else {
1975            $block = 3; break;
1976          }
1977          break;
1978        }
1979        case 1: {
1980          return null;
1981          break;
1982        }
1983        case 2: {
1984          $t3_4 = ($t0_1 + 1);
1985          $t6_7 = $t3_4;
1986          $t7_8 = null;
1987          $block = 4; break;
1988          break;
1989        }
1990        case 3: {
1991          $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen(s));
1992          $t4_5 = $rt.builtin.stringByteAt(s, $t0_1);
1993          $t5_6 = ($t4_5 !== 91);
1994          if ($t5_6) {
1995            $block = 1; break;
1996          }
1997          else {
1998            $block = 2; break;
1999          }
2000          break;
2001        }
2002        case 4: {
2003          $t8_9 = skipWS(s, $t6_7);
2004          $t9_10 = $rt.builtin.len(s);
2005          $t10_11 = ($t8_9 >= $t9_10);
2006          if ($t10_11) {
2007            $block = 5; break;
2008          }
2009          else {
2010            $block = 6; break;
2011          }
2012          break;
2013        }
2014        case 5: {
2015          return $t7_8;
2016          break;
2017        }
2018        case 6: {
2019          $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen(s));
2020          $t11_12 = $rt.builtin.stringByteAt(s, $t8_9);
2021          $t12_13 = ($t11_12 === 93);
2022          if ($t12_13) {
2023            $block = 7; break;
2024          }
2025          else {
2026            $block = 8; break;
2027          }
2028          break;
2029        }
2030        case 7: {
2031          return $t7_8;
2032          break;
2033        }
2034        case 8: {
2035          $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen(s));
2036          $t13_14 = $rt.builtin.stringByteAt(s, $t8_9);
2037          $t14_15 = ($t13_14 === 44);
2038          if ($t14_15) {
2039            $block = 9; break;
2040          }
2041          else {
2042            $block = 10; break;
2043          }
2044          break;
2045        }
2046        case 9: {
2047          $t15_16 = ($t8_9 + 1);
2048          let $phi0 = $t15_16;
2049          let $phi1 = $t7_8;
2050          $t6_7 = $phi0;
2051          $t7_8 = $phi1;
2052          $block = 4; break;
2053          break;
2054        }
2055        case 10: {
2056          $t16_17 = skipValue(s, $t8_9);
2057          $t17_18 = ($t16_17 < 0);
2058          if ($t17_18) {
2059            $block = 11; break;
2060          }
2061          else {
2062            $block = 12; break;
2063          }
2064          break;
2065        }
2066        case 11: {
2067          return $t7_8;
2068          break;
2069        }
2070        case 12: {
2071          $t18_19 = $rt.builtin.stringSlice(s, $t8_9, $t16_17);
2072          $t19_20 = ParseEvent($t18_19);
2073          $t20_21 = ($t19_20 !== null);
2074          if ($t20_21) {
2075            $block = 13; break;
2076          }
2077          else {
2078            let $phi0 = $t16_17;
2079            let $phi1 = $t7_8;
2080            $t6_7 = $phi0;
2081            $t7_8 = $phi1;
2082            $block = 4; break;
2083          }
2084          break;
2085        }
2086        case 13: {
2087          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2088          $t22_23 = $t21_22.$get().addr(0);
2089          $t22_23.$set($t19_20);
2090          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
2091          $t24_25 = $rt.builtin.appendSlice($t7_8, $t23_24);
2092          $t6_7 = $t16_17;
2093          $t7_8 = $t24_25;
2094          $block = 4; break;
2095          break;
2096        }
2097      }
2098    }
2099  }
2100  
2101  export function parseStrArray(s, i) {
2102    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25;
2103    let $block = 0;
2104    while (true) {
2105      switch ($block) {
2106        case 0: {
2107          $t0_1 = skipWS(s, i);
2108          $t1_2 = $rt.builtin.len(s);
2109          $t2_3 = ($t0_1 >= $t1_2);
2110          if ($t2_3) {
2111            $block = 1; break;
2112          }
2113          else {
2114            $block = 3; break;
2115          }
2116          break;
2117        }
2118        case 1: {
2119          return [null, -1];
2120          break;
2121        }
2122        case 2: {
2123          $t3_4 = ($t0_1 + 1);
2124          $t6_7 = $t3_4;
2125          $t7_8 = null;
2126          $block = 4; break;
2127          break;
2128        }
2129        case 3: {
2130          $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen(s));
2131          $t4_5 = $rt.builtin.stringByteAt(s, $t0_1);
2132          $t5_6 = ($t4_5 !== 91);
2133          if ($t5_6) {
2134            $block = 1; break;
2135          }
2136          else {
2137            $block = 2; break;
2138          }
2139          break;
2140        }
2141        case 4: {
2142          $t8_9 = skipWS(s, $t6_7);
2143          $t9_10 = $rt.builtin.len(s);
2144          $t10_11 = ($t8_9 >= $t9_10);
2145          if ($t10_11) {
2146            $block = 5; break;
2147          }
2148          else {
2149            $block = 6; break;
2150          }
2151          break;
2152        }
2153        case 5: {
2154          return [null, -1];
2155          break;
2156        }
2157        case 6: {
2158          $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen(s));
2159          $t11_12 = $rt.builtin.stringByteAt(s, $t8_9);
2160          $t12_13 = ($t11_12 === 93);
2161          if ($t12_13) {
2162            $block = 7; break;
2163          }
2164          else {
2165            $block = 8; break;
2166          }
2167          break;
2168        }
2169        case 7: {
2170          $t13_14 = ($t8_9 + 1);
2171          return [$t7_8, $t13_14];
2172          break;
2173        }
2174        case 8: {
2175          $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen(s));
2176          $t14_15 = $rt.builtin.stringByteAt(s, $t8_9);
2177          $t15_16 = ($t14_15 === 44);
2178          if ($t15_16) {
2179            $block = 9; break;
2180          }
2181          else {
2182            $block = 10; break;
2183          }
2184          break;
2185        }
2186        case 9: {
2187          $t16_17 = ($t8_9 + 1);
2188          let $phi0 = $t16_17;
2189          let $phi1 = $t7_8;
2190          $t6_7 = $phi0;
2191          $t7_8 = $phi1;
2192          $block = 4; break;
2193          break;
2194        }
2195        case 10: {
2196          $t17_18 = parseString(s, $t8_9);
2197          $t18_19 = $t17_18[0];
2198          $t19_20 = $t17_18[1];
2199          $t20_21 = ($t19_20 < 0);
2200          if ($t20_21) {
2201            $block = 11; break;
2202          }
2203          else {
2204            $block = 12; break;
2205          }
2206          break;
2207        }
2208        case 11: {
2209          return [null, -1];
2210          break;
2211        }
2212        case 12: {
2213          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2214          $t22_23 = $t21_22.$get().addr(0);
2215          $t22_23.$set($t18_19);
2216          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
2217          $t24_25 = $rt.builtin.appendSlice($t7_8, $t23_24);
2218          $t6_7 = $t19_20;
2219          $t7_8 = $t24_25;
2220          $block = 4; break;
2221          break;
2222        }
2223      }
2224    }
2225  }
2226  
2227  export function parseIntArray(s, i) {
2228    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26;
2229    let $block = 0;
2230    while (true) {
2231      switch ($block) {
2232        case 0: {
2233          $t0_1 = skipWS(s, i);
2234          $t1_2 = $rt.builtin.len(s);
2235          $t2_3 = ($t0_1 >= $t1_2);
2236          if ($t2_3) {
2237            $block = 1; break;
2238          }
2239          else {
2240            $block = 3; break;
2241          }
2242          break;
2243        }
2244        case 1: {
2245          return [null, -1];
2246          break;
2247        }
2248        case 2: {
2249          $t3_4 = ($t0_1 + 1);
2250          $t6_7 = $t3_4;
2251          $t7_8 = null;
2252          $block = 4; break;
2253          break;
2254        }
2255        case 3: {
2256          $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen(s));
2257          $t4_5 = $rt.builtin.stringByteAt(s, $t0_1);
2258          $t5_6 = ($t4_5 !== 91);
2259          if ($t5_6) {
2260            $block = 1; break;
2261          }
2262          else {
2263            $block = 2; break;
2264          }
2265          break;
2266        }
2267        case 4: {
2268          $t8_9 = skipWS(s, $t6_7);
2269          $t9_10 = $rt.builtin.len(s);
2270          $t10_11 = ($t8_9 >= $t9_10);
2271          if ($t10_11) {
2272            $block = 5; break;
2273          }
2274          else {
2275            $block = 6; break;
2276          }
2277          break;
2278        }
2279        case 5: {
2280          return [null, -1];
2281          break;
2282        }
2283        case 6: {
2284          $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen(s));
2285          $t11_12 = $rt.builtin.stringByteAt(s, $t8_9);
2286          $t12_13 = ($t11_12 === 93);
2287          if ($t12_13) {
2288            $block = 7; break;
2289          }
2290          else {
2291            $block = 8; break;
2292          }
2293          break;
2294        }
2295        case 7: {
2296          $t13_14 = ($t8_9 + 1);
2297          return [$t7_8, $t13_14];
2298          break;
2299        }
2300        case 8: {
2301          $rt.runtime.boundsCheck($t8_9, $rt.builtin.byteLen(s));
2302          $t14_15 = $rt.builtin.stringByteAt(s, $t8_9);
2303          $t15_16 = ($t14_15 === 44);
2304          if ($t15_16) {
2305            $block = 9; break;
2306          }
2307          else {
2308            $block = 10; break;
2309          }
2310          break;
2311        }
2312        case 9: {
2313          $t16_17 = ($t8_9 + 1);
2314          let $phi0 = $t16_17;
2315          let $phi1 = $t7_8;
2316          $t6_7 = $phi0;
2317          $t7_8 = $phi1;
2318          $block = 4; break;
2319          break;
2320        }
2321        case 10: {
2322          $t17_18 = parseInt(s, $t8_9);
2323          $t18_19 = $t17_18[0];
2324          $t19_20 = $t17_18[1];
2325          $t20_21 = ($t19_20 < 0);
2326          if ($t20_21) {
2327            $block = 11; break;
2328          }
2329          else {
2330            $block = 12; break;
2331          }
2332          break;
2333        }
2334        case 11: {
2335          return [null, -1];
2336          break;
2337        }
2338        case 12: {
2339          $t21_22 = $t18_19;
2340          $t22_23 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2341          $t23_24 = $t22_23.$get().addr(0);
2342          $t23_24.$set($t21_22);
2343          $t24_25 = $rt.builtin.sliceSlice($t22_23.$get(), undefined, undefined, undefined);
2344          $t25_26 = $rt.builtin.appendSlice($t7_8, $t24_25);
2345          $t6_7 = $t19_20;
2346          $t7_8 = $t25_26;
2347          $block = 4; break;
2348          break;
2349        }
2350      }
2351    }
2352  }
2353  
2354  export function skipWS(s, i) {
2355    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12;
2356    let $block = 0;
2357    while (true) {
2358      switch ($block) {
2359        case 0: {
2360          $t1_2 = i;
2361          $block = 3; break;
2362          break;
2363        }
2364        case 1: {
2365          $t0_1 = ($t1_2 + 1);
2366          $t1_2 = $t0_1;
2367          $block = 3; break;
2368          break;
2369        }
2370        case 2: {
2371          return $t1_2;
2372          break;
2373        }
2374        case 3: {
2375          $t2_3 = $rt.builtin.len(s);
2376          $t3_4 = ($t1_2 < $t2_3);
2377          if ($t3_4) {
2378            $block = 4; break;
2379          }
2380          else {
2381            $block = 2; break;
2382          }
2383          break;
2384        }
2385        case 4: {
2386          $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
2387          $t4_5 = $rt.builtin.stringByteAt(s, $t1_2);
2388          $t5_6 = ($t4_5 === 32);
2389          if ($t5_6) {
2390            $block = 1; break;
2391          }
2392          else {
2393            $block = 7; break;
2394          }
2395          break;
2396        }
2397        case 5: {
2398          $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
2399          $t6_7 = $rt.builtin.stringByteAt(s, $t1_2);
2400          $t7_8 = ($t6_7 === 13);
2401          if ($t7_8) {
2402            $block = 1; break;
2403          }
2404          else {
2405            $block = 2; break;
2406          }
2407          break;
2408        }
2409        case 6: {
2410          $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
2411          $t8_9 = $rt.builtin.stringByteAt(s, $t1_2);
2412          $t9_10 = ($t8_9 === 10);
2413          if ($t9_10) {
2414            $block = 1; break;
2415          }
2416          else {
2417            $block = 5; break;
2418          }
2419          break;
2420        }
2421        case 7: {
2422          $rt.runtime.boundsCheck($t1_2, $rt.builtin.byteLen(s));
2423          $t10_11 = $rt.builtin.stringByteAt(s, $t1_2);
2424          $t11_12 = ($t10_11 === 9);
2425          if ($t11_12) {
2426            $block = 1; break;
2427          }
2428          else {
2429            $block = 6; break;
2430          }
2431          break;
2432        }
2433      }
2434    }
2435  }
2436  
2437  export function parseString(s, i) {
2438    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111;
2439    let $block = 0;
2440    while (true) {
2441      switch ($block) {
2442        case 0: {
2443          $t0_1 = $rt.builtin.len(s);
2444          $t1_2 = (i >= $t0_1);
2445          if ($t1_2) {
2446            $block = 1; break;
2447          }
2448          else {
2449            $block = 3; break;
2450          }
2451          break;
2452        }
2453        case 1: {
2454          return ['', -1];
2455          break;
2456        }
2457        case 2: {
2458          $t2_3 = (i + 1);
2459          $t7_8 = $t2_3;
2460          $t8_9 = $t2_3;
2461          $t9_10 = '';
2462          $block = 6; break;
2463          break;
2464        }
2465        case 3: {
2466          $rt.runtime.boundsCheck(i, $rt.builtin.byteLen(s));
2467          $t3_4 = $rt.builtin.stringByteAt(s, i);
2468          $t4_5 = ($t3_4 !== 34);
2469          if ($t4_5) {
2470            $block = 1; break;
2471          }
2472          else {
2473            $block = 2; break;
2474          }
2475          break;
2476        }
2477        case 4: {
2478          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
2479          $t5_6 = $rt.builtin.stringByteAt(s, $t7_8);
2480          $t6_7 = ($t5_6 === 92);
2481          if ($t6_7) {
2482            $block = 7; break;
2483          }
2484          else {
2485            $block = 8; break;
2486          }
2487          break;
2488        }
2489        case 5: {
2490          return ['', -1];
2491          break;
2492        }
2493        case 6: {
2494          $t10_11 = $rt.builtin.len(s);
2495          $t11_12 = ($t7_8 < $t10_11);
2496          if ($t11_12) {
2497            $block = 4; break;
2498          }
2499          else {
2500            $block = 5; break;
2501          }
2502          break;
2503        }
2504        case 7: {
2505          $t12_13 = $rt.builtin.stringSlice(s, $t8_9, $t7_8);
2506          $t13_14 = ($t9_10 + $t12_13);
2507          $t14_15 = ($t7_8 + 1);
2508          $t15_16 = $rt.builtin.len(s);
2509          $t16_17 = ($t14_15 >= $t15_16);
2510          if ($t16_17) {
2511            $block = 9; break;
2512          }
2513          else {
2514            $block = 10; break;
2515          }
2516          break;
2517        }
2518        case 8: {
2519          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
2520          $t17_18 = $rt.builtin.stringByteAt(s, $t7_8);
2521          $t18_19 = ($t17_18 === 34);
2522          if ($t18_19) {
2523            $block = 38; break;
2524          }
2525          else {
2526            $block = 39; break;
2527          }
2528          break;
2529        }
2530        case 9: {
2531          return ['', -1];
2532          break;
2533        }
2534        case 10: {
2535          $rt.runtime.boundsCheck($t14_15, $rt.builtin.byteLen(s));
2536          $t19_20 = $rt.builtin.stringByteAt(s, $t14_15);
2537          $t20_21 = ($t19_20 === 34);
2538          if ($t20_21) {
2539            $block = 12; break;
2540          }
2541          else {
2542            $block = 14; break;
2543          }
2544          break;
2545        }
2546        case 11: {
2547          $t23_24 = ($t21_22 + 1);
2548          $t7_8 = $t23_24;
2549          $t8_9 = $t23_24;
2550          $t9_10 = $t22_23;
2551          $block = 6; break;
2552          break;
2553        }
2554        case 12: {
2555          $t24_25 = ($t14_15 + 1);
2556          $t25_26 = $rt.builtin.stringSlice(s, $t14_15, $t24_25);
2557          $t26_27 = ($t13_14 + $t25_26);
2558          $t21_22 = $t14_15;
2559          $t22_23 = $t26_27;
2560          $block = 11; break;
2561          break;
2562        }
2563        case 13: {
2564          $t27_28 = ($t13_14 + '\n');
2565          $t21_22 = $t14_15;
2566          $t22_23 = $t27_28;
2567          $block = 11; break;
2568          break;
2569        }
2570        case 14: {
2571          $t28_29 = ($t19_20 === 92);
2572          if ($t28_29) {
2573            $block = 12; break;
2574          }
2575          else {
2576            $block = 15; break;
2577          }
2578          break;
2579        }
2580        case 15: {
2581          $t29_30 = ($t19_20 === 47);
2582          if ($t29_30) {
2583            $block = 12; break;
2584          }
2585          else {
2586            $block = 16; break;
2587          }
2588          break;
2589        }
2590        case 16: {
2591          $t30_31 = ($t19_20 === 110);
2592          if ($t30_31) {
2593            $block = 13; break;
2594          }
2595          else {
2596            $block = 18; break;
2597          }
2598          break;
2599        }
2600        case 17: {
2601          $t31_32 = ($t13_14 + '\r');
2602          $t21_22 = $t14_15;
2603          $t22_23 = $t31_32;
2604          $block = 11; break;
2605          break;
2606        }
2607        case 18: {
2608          $t32_33 = ($t19_20 === 114);
2609          if ($t32_33) {
2610            $block = 17; break;
2611          }
2612          else {
2613            $block = 20; break;
2614          }
2615          break;
2616        }
2617        case 19: {
2618          $t33_34 = ($t13_14 + '\t');
2619          $t21_22 = $t14_15;
2620          $t22_23 = $t33_34;
2621          $block = 11; break;
2622          break;
2623        }
2624        case 20: {
2625          $t34_35 = ($t19_20 === 116);
2626          if ($t34_35) {
2627            $block = 19; break;
2628          }
2629          else {
2630            $block = 22; break;
2631          }
2632          break;
2633        }
2634        case 21: {
2635          $t35_36 = ($t13_14 + '\x08');
2636          $t21_22 = $t14_15;
2637          $t22_23 = $t35_36;
2638          $block = 11; break;
2639          break;
2640        }
2641        case 22: {
2642          $t36_37 = ($t19_20 === 98);
2643          if ($t36_37) {
2644            $block = 21; break;
2645          }
2646          else {
2647            $block = 24; break;
2648          }
2649          break;
2650        }
2651        case 23: {
2652          $t37_38 = ($t13_14 + '\x0c');
2653          $t21_22 = $t14_15;
2654          $t22_23 = $t37_38;
2655          $block = 11; break;
2656          break;
2657        }
2658        case 24: {
2659          $t38_39 = ($t19_20 === 102);
2660          if ($t38_39) {
2661            $block = 23; break;
2662          }
2663          else {
2664            $block = 26; break;
2665          }
2666          break;
2667        }
2668        case 25: {
2669          $t39_40 = ($t14_15 + 4);
2670          $t40_41 = $rt.builtin.len(s);
2671          $t41_42 = ($t39_40 >= $t40_41);
2672          if ($t41_42) {
2673            $block = 28; break;
2674          }
2675          else {
2676            $block = 29; break;
2677          }
2678          break;
2679        }
2680        case 26: {
2681          $t42_43 = ($t19_20 === 117);
2682          if ($t42_43) {
2683            $block = 25; break;
2684          }
2685          else {
2686            $block = 27; break;
2687          }
2688          break;
2689        }
2690        case 27: {
2691          $t43_44 = ($t14_15 + 1);
2692          $t44_45 = $rt.builtin.stringSlice(s, $t14_15, $t43_44);
2693          $t45_46 = ($t13_14 + $t44_45);
2694          $t21_22 = $t14_15;
2695          $t22_23 = $t45_46;
2696          $block = 11; break;
2697          break;
2698        }
2699        case 28: {
2700          return ['', -1];
2701          break;
2702        }
2703        case 29: {
2704          $t46_47 = ($t14_15 + 1);
2705          $rt.runtime.boundsCheck($t46_47, $rt.builtin.byteLen(s));
2706          $t47_48 = $rt.builtin.stringByteAt(s, $t46_47);
2707          $t48_49 = hexVal($t47_48);
2708          $t49_50 = ($t48_49 * (2 ** 12));
2709          $t50_51 = ($t14_15 + 2);
2710          $rt.runtime.boundsCheck($t50_51, $rt.builtin.byteLen(s));
2711          $t51_52 = $rt.builtin.stringByteAt(s, $t50_51);
2712          $t52_53 = hexVal($t51_52);
2713          $t53_54 = ($t52_53 * (2 ** 8));
2714          $t54_55 = $rt.builtin.int64or($t49_50, $t53_54);
2715          $t55_56 = ($t14_15 + 3);
2716          $rt.runtime.boundsCheck($t55_56, $rt.builtin.byteLen(s));
2717          $t56_57 = $rt.builtin.stringByteAt(s, $t55_56);
2718          $t57_58 = hexVal($t56_57);
2719          $t58_59 = ($t57_58 * (2 ** 4));
2720          $t59_60 = $rt.builtin.int64or($t54_55, $t58_59);
2721          $t60_61 = ($t14_15 + 4);
2722          $rt.runtime.boundsCheck($t60_61, $rt.builtin.byteLen(s));
2723          $t61_62 = $rt.builtin.stringByteAt(s, $t60_61);
2724          $t62_63 = hexVal($t61_62);
2725          $t63_64 = $rt.builtin.int64or($t59_60, $t62_63);
2726          $t64_65 = ($t63_64 >= 55296);
2727          if ($t64_65) {
2728            $block = 35; break;
2729          }
2730          else {
2731            $t84_85 = $t14_15;
2732            $t85_86 = $t63_64;
2733            $block = 31; break;
2734          }
2735          break;
2736        }
2737        case 30: {
2738          $t65_66 = ($t14_15 + 7);
2739          $rt.runtime.boundsCheck($t65_66, $rt.builtin.byteLen(s));
2740          $t66_67 = $rt.builtin.stringByteAt(s, $t65_66);
2741          $t67_68 = hexVal($t66_67);
2742          $t68_69 = ($t67_68 * (2 ** 12));
2743          $t69_70 = ($t14_15 + 8);
2744          $rt.runtime.boundsCheck($t69_70, $rt.builtin.byteLen(s));
2745          $t70_71 = $rt.builtin.stringByteAt(s, $t69_70);
2746          $t71_72 = hexVal($t70_71);
2747          $t72_73 = ($t71_72 * (2 ** 8));
2748          $t73_74 = $rt.builtin.int64or($t68_69, $t72_73);
2749          $t74_75 = ($t14_15 + 9);
2750          $rt.runtime.boundsCheck($t74_75, $rt.builtin.byteLen(s));
2751          $t75_76 = $rt.builtin.stringByteAt(s, $t74_75);
2752          $t76_77 = hexVal($t75_76);
2753          $t77_78 = ($t76_77 * (2 ** 4));
2754          $t78_79 = $rt.builtin.int64or($t73_74, $t77_78);
2755          $t79_80 = ($t14_15 + 10);
2756          $rt.runtime.boundsCheck($t79_80, $rt.builtin.byteLen(s));
2757          $t80_81 = $rt.builtin.stringByteAt(s, $t79_80);
2758          $t81_82 = hexVal($t80_81);
2759          $t82_83 = $rt.builtin.int64or($t78_79, $t81_82);
2760          $t83_84 = ($t82_83 >= 56320);
2761          if ($t83_84) {
2762            $block = 37; break;
2763          }
2764          else {
2765            $t84_85 = $t14_15;
2766            $t85_86 = $t63_64;
2767            $block = 31; break;
2768          }
2769          break;
2770        }
2771        case 31: {
2772          $t86_87 = ($t85_86 | 0);
2773          $t87_88 = String.fromCodePoint($t86_87);
2774          $t88_89 = ($t13_14 + $t87_88);
2775          $t89_90 = ($t84_85 + 4);
2776          $t21_22 = $t89_90;
2777          $t22_23 = $t88_89;
2778          $block = 11; break;
2779          break;
2780        }
2781        case 32: {
2782          $t90_91 = ($t14_15 + 6);
2783          $rt.runtime.boundsCheck($t90_91, $rt.builtin.byteLen(s));
2784          $t91_92 = $rt.builtin.stringByteAt(s, $t90_91);
2785          $t92_93 = ($t91_92 === 117);
2786          if ($t92_93) {
2787            $block = 30; break;
2788          }
2789          else {
2790            $t84_85 = $t14_15;
2791            $t85_86 = $t63_64;
2792            $block = 31; break;
2793          }
2794          break;
2795        }
2796        case 33: {
2797          $t93_94 = ($t14_15 + 5);
2798          $rt.runtime.boundsCheck($t93_94, $rt.builtin.byteLen(s));
2799          $t94_95 = $rt.builtin.stringByteAt(s, $t93_94);
2800          $t95_96 = ($t94_95 === 92);
2801          if ($t95_96) {
2802            $block = 32; break;
2803          }
2804          else {
2805            $t84_85 = $t14_15;
2806            $t85_86 = $t63_64;
2807            $block = 31; break;
2808          }
2809          break;
2810        }
2811        case 34: {
2812          $t96_97 = ($t14_15 + 10);
2813          $t97_98 = $rt.builtin.len(s);
2814          $t98_99 = ($t96_97 <= $t97_98);
2815          if ($t98_99) {
2816            $block = 33; break;
2817          }
2818          else {
2819            $t84_85 = $t14_15;
2820            $t85_86 = $t63_64;
2821            $block = 31; break;
2822          }
2823          break;
2824        }
2825        case 35: {
2826          $t99_100 = ($t63_64 <= 56319);
2827          if ($t99_100) {
2828            $block = 34; break;
2829          }
2830          else {
2831            $t84_85 = $t14_15;
2832            $t85_86 = $t63_64;
2833            $block = 31; break;
2834          }
2835          break;
2836        }
2837        case 36: {
2838          $t100_101 = ($t63_64 - 55296);
2839          $t101_102 = ($t100_101 * 1024);
2840          $t102_103 = (65536 + $t101_102);
2841          $t103_104 = ($t82_83 - 56320);
2842          $t104_105 = ($t102_103 + $t103_104);
2843          $t105_106 = ($t14_15 + 6);
2844          $t84_85 = $t105_106;
2845          $t85_86 = $t104_105;
2846          $block = 31; break;
2847          break;
2848        }
2849        case 37: {
2850          $t106_107 = ($t82_83 <= 57343);
2851          if ($t106_107) {
2852            $block = 36; break;
2853          }
2854          else {
2855            $t84_85 = $t14_15;
2856            $t85_86 = $t63_64;
2857            $block = 31; break;
2858          }
2859          break;
2860        }
2861        case 38: {
2862          $t107_108 = $rt.builtin.stringSlice(s, $t8_9, $t7_8);
2863          $t108_109 = ($t9_10 + $t107_108);
2864          $t109_110 = ($t7_8 + 1);
2865          return [$t108_109, $t109_110];
2866          break;
2867        }
2868        case 39: {
2869          $t110_111 = ($t7_8 + 1);
2870          let $phi0 = $t110_111;
2871          let $phi1 = $t8_9;
2872          let $phi2 = $t9_10;
2873          $t7_8 = $phi0;
2874          $t8_9 = $phi1;
2875          $t9_10 = $phi2;
2876          $block = 6; break;
2877          break;
2878        }
2879      }
2880    }
2881  }
2882  
2883  export function hexVal(c) {
2884    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
2885    let $block = 0;
2886    while (true) {
2887      switch ($block) {
2888        case 0: {
2889          $t0_1 = (c >= 48);
2890          if ($t0_1) {
2891            $block = 3; break;
2892          }
2893          else {
2894            $block = 2; break;
2895          }
2896          break;
2897        }
2898        case 1: {
2899          $t1_2 = ((c - 48) & 0xFF);
2900          $t2_3 = $t1_2;
2901          return $t2_3;
2902          break;
2903        }
2904        case 2: {
2905          $t3_4 = (c >= 97);
2906          if ($t3_4) {
2907            $block = 6; break;
2908          }
2909          else {
2910            $block = 5; break;
2911          }
2912          break;
2913        }
2914        case 3: {
2915          $t4_5 = (c <= 57);
2916          if ($t4_5) {
2917            $block = 1; break;
2918          }
2919          else {
2920            $block = 2; break;
2921          }
2922          break;
2923        }
2924        case 4: {
2925          $t5_6 = ((c - 97) & 0xFF);
2926          $t6_7 = $t5_6;
2927          $t7_8 = ($t6_7 + 10);
2928          return $t7_8;
2929          break;
2930        }
2931        case 5: {
2932          $t8_9 = (c >= 65);
2933          if ($t8_9) {
2934            $block = 9; break;
2935          }
2936          else {
2937            $block = 8; break;
2938          }
2939          break;
2940        }
2941        case 6: {
2942          $t9_10 = (c <= 102);
2943          if ($t9_10) {
2944            $block = 4; break;
2945          }
2946          else {
2947            $block = 5; break;
2948          }
2949          break;
2950        }
2951        case 7: {
2952          $t10_11 = ((c - 65) & 0xFF);
2953          $t11_12 = $t10_11;
2954          $t12_13 = ($t11_12 + 10);
2955          return $t12_13;
2956          break;
2957        }
2958        case 8: {
2959          return 0;
2960          break;
2961        }
2962        case 9: {
2963          $t13_14 = (c <= 70);
2964          if ($t13_14) {
2965            $block = 7; break;
2966          }
2967          else {
2968            $block = 8; break;
2969          }
2970          break;
2971        }
2972      }
2973    }
2974  }
2975  
2976  export function parseInt(s, i) {
2977    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29;
2978    let $block = 0;
2979    while (true) {
2980      switch ($block) {
2981        case 0: {
2982          $t0_1 = $rt.builtin.len(s);
2983          $t1_2 = (i >= $t0_1);
2984          if ($t1_2) {
2985            $block = 1; break;
2986          }
2987          else {
2988            $block = 2; break;
2989          }
2990          break;
2991        }
2992        case 1: {
2993          return [0, -1];
2994          break;
2995        }
2996        case 2: {
2997          $rt.runtime.boundsCheck(i, $rt.builtin.byteLen(s));
2998          $t2_3 = $rt.builtin.stringByteAt(s, i);
2999          $t3_4 = ($t2_3 === 45);
3000          if ($t3_4) {
3001            $block = 3; break;
3002          }
3003          else {
3004            $t5_6 = i;
3005            $t6_7 = false;
3006            $block = 4; break;
3007          }
3008          break;
3009        }
3010        case 3: {
3011          $t4_5 = (i + 1);
3012          $t5_6 = $t4_5;
3013          $t6_7 = true;
3014          $block = 4; break;
3015          break;
3016        }
3017        case 4: {
3018          $t7_8 = $rt.builtin.len(s);
3019          $t8_9 = ($t5_6 >= $t7_8);
3020          if ($t8_9) {
3021            $block = 5; break;
3022          }
3023          else {
3024            $block = 8; break;
3025          }
3026          break;
3027        }
3028        case 5: {
3029          return [0, -1];
3030          break;
3031        }
3032        case 6: {
3033          $t19_20 = $t5_6;
3034          $t20_21 = 0;
3035          $block = 11; break;
3036          break;
3037        }
3038        case 7: {
3039          $rt.runtime.boundsCheck($t5_6, $rt.builtin.byteLen(s));
3040          $t9_10 = $rt.builtin.stringByteAt(s, $t5_6);
3041          $t10_11 = ($t9_10 > 57);
3042          if ($t10_11) {
3043            $block = 5; break;
3044          }
3045          else {
3046            $block = 6; break;
3047          }
3048          break;
3049        }
3050        case 8: {
3051          $rt.runtime.boundsCheck($t5_6, $rt.builtin.byteLen(s));
3052          $t11_12 = $rt.builtin.stringByteAt(s, $t5_6);
3053          $t12_13 = ($t11_12 < 48);
3054          if ($t12_13) {
3055            $block = 5; break;
3056          }
3057          else {
3058            $block = 7; break;
3059          }
3060          break;
3061        }
3062        case 9: {
3063          $t13_14 = ($t20_21 * 10);
3064          $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen(s));
3065          $t14_15 = $rt.builtin.stringByteAt(s, $t19_20);
3066          $t15_16 = (($t14_15 - 48) & 0xFF);
3067          $t16_17 = $t15_16;
3068          $t17_18 = ($t13_14 + $t16_17);
3069          $t18_19 = ($t19_20 + 1);
3070          $t19_20 = $t18_19;
3071          $t20_21 = $t17_18;
3072          $block = 11; break;
3073          break;
3074        }
3075        case 10: {
3076          if ($t6_7) {
3077            $block = 14; break;
3078          }
3079          else {
3080            $t28_29 = $t20_21;
3081            $block = 15; break;
3082          }
3083          break;
3084        }
3085        case 11: {
3086          $t21_22 = $rt.builtin.len(s);
3087          $t22_23 = ($t19_20 < $t21_22);
3088          if ($t22_23) {
3089            $block = 13; break;
3090          }
3091          else {
3092            $block = 10; break;
3093          }
3094          break;
3095        }
3096        case 12: {
3097          $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen(s));
3098          $t23_24 = $rt.builtin.stringByteAt(s, $t19_20);
3099          $t24_25 = ($t23_24 <= 57);
3100          if ($t24_25) {
3101            $block = 9; break;
3102          }
3103          else {
3104            $block = 10; break;
3105          }
3106          break;
3107        }
3108        case 13: {
3109          $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen(s));
3110          $t25_26 = $rt.builtin.stringByteAt(s, $t19_20);
3111          $t26_27 = ($t25_26 >= 48);
3112          if ($t26_27) {
3113            $block = 12; break;
3114          }
3115          else {
3116            $block = 10; break;
3117          }
3118          break;
3119        }
3120        case 14: {
3121          $t27_28 = -$t20_21;
3122          $t28_29 = $t27_28;
3123          $block = 15; break;
3124          break;
3125        }
3126        case 15: {
3127          return [$t28_29, $t19_20];
3128          break;
3129        }
3130      }
3131    }
3132  }
3133  
3134  export function parseTags(s, i) {
3135    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42;
3136    let $block = 0;
3137    while (true) {
3138      switch ($block) {
3139        case 0: {
3140          $t0_1 = $rt.builtin.len(s);
3141          $t1_2 = (i >= $t0_1);
3142          if ($t1_2) {
3143            $block = 1; break;
3144          }
3145          else {
3146            $block = 3; break;
3147          }
3148          break;
3149        }
3150        case 1: {
3151          return [null, -1];
3152          break;
3153        }
3154        case 2: {
3155          $t2_3 = (i + 1);
3156          $t5_6 = $t2_3;
3157          $t6_7 = null;
3158          $block = 4; break;
3159          break;
3160        }
3161        case 3: {
3162          $rt.runtime.boundsCheck(i, $rt.builtin.byteLen(s));
3163          $t3_4 = $rt.builtin.stringByteAt(s, i);
3164          $t4_5 = ($t3_4 !== 91);
3165          if ($t4_5) {
3166            $block = 1; break;
3167          }
3168          else {
3169            $block = 2; break;
3170          }
3171          break;
3172        }
3173        case 4: {
3174          $t7_8 = skipWS(s, $t5_6);
3175          $t8_9 = $rt.builtin.len(s);
3176          $t9_10 = ($t7_8 >= $t8_9);
3177          if ($t9_10) {
3178            $block = 5; break;
3179          }
3180          else {
3181            $block = 6; break;
3182          }
3183          break;
3184        }
3185        case 5: {
3186          return [null, -1];
3187          break;
3188        }
3189        case 6: {
3190          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
3191          $t10_11 = $rt.builtin.stringByteAt(s, $t7_8);
3192          $t11_12 = ($t10_11 === 93);
3193          if ($t11_12) {
3194            $block = 7; break;
3195          }
3196          else {
3197            $block = 8; break;
3198          }
3199          break;
3200        }
3201        case 7: {
3202          $t12_13 = ($t7_8 + 1);
3203          return [$t6_7, $t12_13];
3204          break;
3205        }
3206        case 8: {
3207          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
3208          $t13_14 = $rt.builtin.stringByteAt(s, $t7_8);
3209          $t14_15 = ($t13_14 === 44);
3210          if ($t14_15) {
3211            $block = 9; break;
3212          }
3213          else {
3214            $block = 10; break;
3215          }
3216          break;
3217        }
3218        case 9: {
3219          $t15_16 = ($t7_8 + 1);
3220          let $phi0 = $t15_16;
3221          let $phi1 = $t6_7;
3222          $t5_6 = $phi0;
3223          $t6_7 = $phi1;
3224          $block = 4; break;
3225          break;
3226        }
3227        case 10: {
3228          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
3229          $t16_17 = $rt.builtin.stringByteAt(s, $t7_8);
3230          $t17_18 = ($t16_17 !== 91);
3231          if ($t17_18) {
3232            $block = 11; break;
3233          }
3234          else {
3235            $block = 12; break;
3236          }
3237          break;
3238        }
3239        case 11: {
3240          return [null, -1];
3241          break;
3242        }
3243        case 12: {
3244          $t18_19 = ($t7_8 + 1);
3245          $t19_20 = $t18_19;
3246          $t20_21 = null;
3247          $block = 13; break;
3248          break;
3249        }
3250        case 13: {
3251          $t21_22 = skipWS(s, $t19_20);
3252          $t22_23 = $rt.builtin.len(s);
3253          $t23_24 = ($t21_22 >= $t22_23);
3254          if ($t23_24) {
3255            $block = 14; break;
3256          }
3257          else {
3258            $block = 15; break;
3259          }
3260          break;
3261        }
3262        case 14: {
3263          return [null, -1];
3264          break;
3265        }
3266        case 15: {
3267          $rt.runtime.boundsCheck($t21_22, $rt.builtin.byteLen(s));
3268          $t24_25 = $rt.builtin.stringByteAt(s, $t21_22);
3269          $t25_26 = ($t24_25 === 93);
3270          if ($t25_26) {
3271            $block = 16; break;
3272          }
3273          else {
3274            $block = 17; break;
3275          }
3276          break;
3277        }
3278        case 16: {
3279          $t26_27 = ($t21_22 + 1);
3280          $t27_28 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3281          $t28_29 = $t27_28.$get().addr(0);
3282          $t28_29.$set($t20_21);
3283          $t29_30 = $rt.builtin.sliceSlice($t27_28.$get(), undefined, undefined, undefined);
3284          $t30_31 = $rt.builtin.appendSlice($t6_7, $t29_30);
3285          $t5_6 = $t26_27;
3286          $t6_7 = $t30_31;
3287          $block = 4; break;
3288          break;
3289        }
3290        case 17: {
3291          $rt.runtime.boundsCheck($t21_22, $rt.builtin.byteLen(s));
3292          $t31_32 = $rt.builtin.stringByteAt(s, $t21_22);
3293          $t32_33 = ($t31_32 === 44);
3294          if ($t32_33) {
3295            $block = 18; break;
3296          }
3297          else {
3298            $block = 19; break;
3299          }
3300          break;
3301        }
3302        case 18: {
3303          $t33_34 = ($t21_22 + 1);
3304          let $phi0 = $t33_34;
3305          let $phi1 = $t20_21;
3306          $t19_20 = $phi0;
3307          $t20_21 = $phi1;
3308          $block = 13; break;
3309          break;
3310        }
3311        case 19: {
3312          $t34_35 = parseString(s, $t21_22);
3313          $t35_36 = $t34_35[0];
3314          $t36_37 = $t34_35[1];
3315          $t37_38 = ($t36_37 < 0);
3316          if ($t37_38) {
3317            $block = 20; break;
3318          }
3319          else {
3320            $block = 21; break;
3321          }
3322          break;
3323        }
3324        case 20: {
3325          return [null, -1];
3326          break;
3327        }
3328        case 21: {
3329          $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3330          $t39_40 = $t38_39.$get().addr(0);
3331          $t39_40.$set($t35_36);
3332          $t40_41 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
3333          $t41_42 = $rt.builtin.appendSlice($t20_21, $t40_41);
3334          $t19_20 = $t36_37;
3335          $t20_21 = $t41_42;
3336          $block = 13; break;
3337          break;
3338        }
3339      }
3340    }
3341  }
3342  
3343  export function skipValue(s, i) {
3344    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40;
3345    let $block = 0;
3346    while (true) {
3347      switch ($block) {
3348        case 0: {
3349          $t0_1 = $rt.builtin.len(s);
3350          $t1_2 = (i >= $t0_1);
3351          if ($t1_2) {
3352            $block = 1; break;
3353          }
3354          else {
3355            $block = 2; break;
3356          }
3357          break;
3358        }
3359        case 1: {
3360          return -1;
3361          break;
3362        }
3363        case 2: {
3364          $rt.runtime.boundsCheck(i, $rt.builtin.byteLen(s));
3365          $t2_3 = $rt.builtin.stringByteAt(s, i);
3366          $t3_4 = ($t2_3 === 34);
3367          if ($t3_4) {
3368            $block = 3; break;
3369          }
3370          else {
3371            $block = 5; break;
3372          }
3373          break;
3374        }
3375        case 3: {
3376          $t4_5 = parseString(s, i);
3377          $t5_6 = $t4_5[0];
3378          $t6_7 = $t4_5[1];
3379          return $t6_7;
3380          break;
3381        }
3382        case 4: {
3383          $t7_8 = skipBracketed(s, i, 123, 125);
3384          return $t7_8;
3385          break;
3386        }
3387        case 5: {
3388          $t8_9 = ($t2_3 === 123);
3389          if ($t8_9) {
3390            $block = 4; break;
3391          }
3392          else {
3393            $block = 7; break;
3394          }
3395          break;
3396        }
3397        case 6: {
3398          $t9_10 = skipBracketed(s, i, 91, 93);
3399          return $t9_10;
3400          break;
3401        }
3402        case 7: {
3403          $t10_11 = ($t2_3 === 91);
3404          if ($t10_11) {
3405            $block = 6; break;
3406          }
3407          else {
3408            $block = 9; break;
3409          }
3410          break;
3411        }
3412        case 8: {
3413          $t11_12 = (i + 4);
3414          $t12_13 = $rt.builtin.len(s);
3415          $t13_14 = ($t11_12 <= $t12_13);
3416          if ($t13_14) {
3417            $block = 12; break;
3418          }
3419          else {
3420            $block = 13; break;
3421          }
3422          break;
3423        }
3424        case 9: {
3425          $t14_15 = ($t2_3 === 116);
3426          if ($t14_15) {
3427            $block = 8; break;
3428          }
3429          else {
3430            $block = 11; break;
3431          }
3432          break;
3433        }
3434        case 10: {
3435          $t15_16 = (i + 5);
3436          $t16_17 = $rt.builtin.len(s);
3437          $t17_18 = ($t15_16 <= $t16_17);
3438          if ($t17_18) {
3439            $block = 16; break;
3440          }
3441          else {
3442            $block = 17; break;
3443          }
3444          break;
3445        }
3446        case 11: {
3447          $t18_19 = ($t2_3 === 102);
3448          if ($t18_19) {
3449            $block = 10; break;
3450          }
3451          else {
3452            $block = 15; break;
3453          }
3454          break;
3455        }
3456        case 12: {
3457          $t19_20 = (i + 4);
3458          return $t19_20;
3459          break;
3460        }
3461        case 13: {
3462          return -1;
3463          break;
3464        }
3465        case 14: {
3466          $t20_21 = (i + 4);
3467          $t21_22 = $rt.builtin.len(s);
3468          $t22_23 = ($t20_21 <= $t21_22);
3469          if ($t22_23) {
3470            $block = 18; break;
3471          }
3472          else {
3473            $block = 19; break;
3474          }
3475          break;
3476        }
3477        case 15: {
3478          $t23_24 = ($t2_3 === 110);
3479          if ($t23_24) {
3480            $block = 14; break;
3481          }
3482          else {
3483            $t27_28 = i;
3484            $block = 22; break;
3485          }
3486          break;
3487        }
3488        case 16: {
3489          $t24_25 = (i + 5);
3490          return $t24_25;
3491          break;
3492        }
3493        case 17: {
3494          return -1;
3495          break;
3496        }
3497        case 18: {
3498          $t25_26 = (i + 4);
3499          return $t25_26;
3500          break;
3501        }
3502        case 19: {
3503          return -1;
3504          break;
3505        }
3506        case 20: {
3507          $t26_27 = ($t27_28 + 1);
3508          $t27_28 = $t26_27;
3509          $block = 22; break;
3510          break;
3511        }
3512        case 21: {
3513          return $t27_28;
3514          break;
3515        }
3516        case 22: {
3517          $t28_29 = $rt.builtin.len(s);
3518          $t29_30 = ($t27_28 < $t28_29);
3519          if ($t29_30) {
3520            $block = 27; break;
3521          }
3522          else {
3523            $block = 21; break;
3524          }
3525          break;
3526        }
3527        case 23: {
3528          $rt.runtime.boundsCheck($t27_28, $rt.builtin.byteLen(s));
3529          $t30_31 = $rt.builtin.stringByteAt(s, $t27_28);
3530          $t31_32 = ($t30_31 !== 10);
3531          if ($t31_32) {
3532            $block = 20; break;
3533          }
3534          else {
3535            $block = 21; break;
3536          }
3537          break;
3538        }
3539        case 24: {
3540          $rt.runtime.boundsCheck($t27_28, $rt.builtin.byteLen(s));
3541          $t32_33 = $rt.builtin.stringByteAt(s, $t27_28);
3542          $t33_34 = ($t32_33 !== 32);
3543          if ($t33_34) {
3544            $block = 23; break;
3545          }
3546          else {
3547            $block = 21; break;
3548          }
3549          break;
3550        }
3551        case 25: {
3552          $rt.runtime.boundsCheck($t27_28, $rt.builtin.byteLen(s));
3553          $t34_35 = $rt.builtin.stringByteAt(s, $t27_28);
3554          $t35_36 = ($t34_35 !== 93);
3555          if ($t35_36) {
3556            $block = 24; break;
3557          }
3558          else {
3559            $block = 21; break;
3560          }
3561          break;
3562        }
3563        case 26: {
3564          $rt.runtime.boundsCheck($t27_28, $rt.builtin.byteLen(s));
3565          $t36_37 = $rt.builtin.stringByteAt(s, $t27_28);
3566          $t37_38 = ($t36_37 !== 125);
3567          if ($t37_38) {
3568            $block = 25; break;
3569          }
3570          else {
3571            $block = 21; break;
3572          }
3573          break;
3574        }
3575        case 27: {
3576          $rt.runtime.boundsCheck($t27_28, $rt.builtin.byteLen(s));
3577          $t38_39 = $rt.builtin.stringByteAt(s, $t27_28);
3578          $t39_40 = ($t38_39 !== 44);
3579          if ($t39_40) {
3580            $block = 26; break;
3581          }
3582          else {
3583            $block = 21; break;
3584          }
3585          break;
3586        }
3587      }
3588    }
3589  }
3590  
3591  export function skipBracketed(s, i, open, close) {
3592    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29;
3593    let $block = 0;
3594    while (true) {
3595      switch ($block) {
3596        case 0: {
3597          $t0_1 = $rt.builtin.len(s);
3598          $t1_2 = (i >= $t0_1);
3599          if ($t1_2) {
3600            $block = 1; break;
3601          }
3602          else {
3603            $block = 3; break;
3604          }
3605          break;
3606        }
3607        case 1: {
3608          return -1;
3609          break;
3610        }
3611        case 2: {
3612          $t2_3 = (i + 1);
3613          $t6_7 = $t2_3;
3614          $t7_8 = 1;
3615          $t8_9 = false;
3616          $block = 6; break;
3617          break;
3618        }
3619        case 3: {
3620          $rt.runtime.boundsCheck(i, $rt.builtin.byteLen(s));
3621          $t3_4 = $rt.builtin.stringByteAt(s, i);
3622          $t4_5 = ($t3_4 !== open);
3623          if ($t4_5) {
3624            $block = 1; break;
3625          }
3626          else {
3627            $block = 2; break;
3628          }
3629          break;
3630        }
3631        case 4: {
3632          if ($t8_9) {
3633            $block = 8; break;
3634          }
3635          else {
3636            $block = 10; break;
3637          }
3638          break;
3639        }
3640        case 5: {
3641          $t5_6 = ($t7_8 !== 0);
3642          if ($t5_6) {
3643            $block = 19; break;
3644          }
3645          else {
3646            $block = 20; break;
3647          }
3648          break;
3649        }
3650        case 6: {
3651          $t9_10 = $rt.builtin.len(s);
3652          $t10_11 = ($t6_7 < $t9_10);
3653          if ($t10_11) {
3654            $block = 7; break;
3655          }
3656          else {
3657            $block = 5; break;
3658          }
3659          break;
3660        }
3661        case 7: {
3662          $t11_12 = ($t7_8 > 0);
3663          if ($t11_12) {
3664            $block = 4; break;
3665          }
3666          else {
3667            $block = 5; break;
3668          }
3669          break;
3670        }
3671        case 8: {
3672          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
3673          $t12_13 = $rt.builtin.stringByteAt(s, $t6_7);
3674          $t13_14 = ($t12_13 === 92);
3675          if ($t13_14) {
3676            $block = 11; break;
3677          }
3678          else {
3679            $block = 12; break;
3680          }
3681          break;
3682        }
3683        case 9: {
3684          $t17_18 = ($t14_15 + 1);
3685          $t6_7 = $t17_18;
3686          $t7_8 = $t15_16;
3687          $t8_9 = $t16_17;
3688          $block = 6; break;
3689          break;
3690        }
3691        case 10: {
3692          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
3693          $t18_19 = $rt.builtin.stringByteAt(s, $t6_7);
3694          $t19_20 = ($t18_19 === 34);
3695          if ($t19_20) {
3696            $block = 14; break;
3697          }
3698          else {
3699            $block = 15; break;
3700          }
3701          break;
3702        }
3703        case 11: {
3704          $t20_21 = ($t6_7 + 1);
3705          $t14_15 = $t20_21;
3706          $t15_16 = $t7_8;
3707          $t16_17 = $t8_9;
3708          $block = 9; break;
3709          break;
3710        }
3711        case 12: {
3712          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
3713          $t21_22 = $rt.builtin.stringByteAt(s, $t6_7);
3714          $t22_23 = ($t21_22 === 34);
3715          if ($t22_23) {
3716            $block = 13; break;
3717          }
3718          else {
3719            $t14_15 = $t6_7;
3720            $t15_16 = $t7_8;
3721            $t16_17 = $t8_9;
3722            $block = 9; break;
3723          }
3724          break;
3725        }
3726        case 13: {
3727          $t14_15 = $t6_7;
3728          $t15_16 = $t7_8;
3729          $t16_17 = false;
3730          $block = 9; break;
3731          break;
3732        }
3733        case 14: {
3734          $t14_15 = $t6_7;
3735          $t15_16 = $t7_8;
3736          $t16_17 = true;
3737          $block = 9; break;
3738          break;
3739        }
3740        case 15: {
3741          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
3742          $t23_24 = $rt.builtin.stringByteAt(s, $t6_7);
3743          $t24_25 = ($t23_24 === open);
3744          if ($t24_25) {
3745            $block = 16; break;
3746          }
3747          else {
3748            $block = 17; break;
3749          }
3750          break;
3751        }
3752        case 16: {
3753          $t25_26 = ($t7_8 + 1);
3754          $t14_15 = $t6_7;
3755          $t15_16 = $t25_26;
3756          $t16_17 = $t8_9;
3757          $block = 9; break;
3758          break;
3759        }
3760        case 17: {
3761          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
3762          $t26_27 = $rt.builtin.stringByteAt(s, $t6_7);
3763          $t27_28 = ($t26_27 === close);
3764          if ($t27_28) {
3765            $block = 18; break;
3766          }
3767          else {
3768            $t14_15 = $t6_7;
3769            $t15_16 = $t7_8;
3770            $t16_17 = $t8_9;
3771            $block = 9; break;
3772          }
3773          break;
3774        }
3775        case 18: {
3776          $t28_29 = ($t7_8 - 1);
3777          $t14_15 = $t6_7;
3778          $t15_16 = $t28_29;
3779          $t16_17 = $t8_9;
3780          $block = 9; break;
3781          break;
3782        }
3783        case 19: {
3784          return -1;
3785          break;
3786        }
3787        case 20: {
3788          return $t6_7;
3789          break;
3790        }
3791      }
3792    }
3793  }
3794  
3795  export function Filter$Matches(f, e) {
3796    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59;
3797    let $block = 0;
3798    while (true) {
3799      switch ($block) {
3800        case 0: {
3801          $t0_1 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
3802          $t1_2 = $t0_1.$get();
3803          $t2_3 = $rt.builtin.len($t1_2);
3804          $t3_4 = ($t2_3 > 0);
3805          if ($t3_4) {
3806            $block = 3; break;
3807          }
3808          else {
3809            $block = 2; break;
3810          }
3811          break;
3812        }
3813        case 1: {
3814          return false;
3815          break;
3816        }
3817        case 2: {
3818          $t4_5 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
3819          $t5_6 = $t4_5.$get();
3820          $t6_7 = $rt.builtin.len($t5_6);
3821          $t7_8 = ($t6_7 > 0);
3822          if ($t7_8) {
3823            $block = 6; break;
3824          }
3825          else {
3826            $block = 5; break;
3827          }
3828          break;
3829        }
3830        case 3: {
3831          $t8_9 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
3832          $t9_10 = $t8_9.$get();
3833          $t10_11 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
3834          $t11_12 = $t10_11.$get();
3835          $t12_13 = containsStr($t9_10, $t11_12);
3836          if ($t12_13) {
3837            $block = 2; break;
3838          }
3839          else {
3840            $block = 1; break;
3841          }
3842          break;
3843        }
3844        case 4: {
3845          return false;
3846          break;
3847        }
3848        case 5: {
3849          $t13_14 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
3850          $t14_15 = $t13_14.$get();
3851          $t15_16 = $rt.builtin.len($t14_15);
3852          $t16_17 = ($t15_16 > 0);
3853          if ($t16_17) {
3854            $block = 9; break;
3855          }
3856          else {
3857            $block = 8; break;
3858          }
3859          break;
3860        }
3861        case 6: {
3862          $t17_18 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
3863          $t18_19 = $t17_18.$get();
3864          $t19_20 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
3865          $t20_21 = $t19_20.$get();
3866          $t21_22 = containsStr($t18_19, $t20_21);
3867          if ($t21_22) {
3868            $block = 5; break;
3869          }
3870          else {
3871            $block = 4; break;
3872          }
3873          break;
3874        }
3875        case 7: {
3876          return false;
3877          break;
3878        }
3879        case 8: {
3880          $t22_23 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
3881          $t23_24 = $t22_23.$get();
3882          $t24_25 = ($t23_24 > 0);
3883          if ($t24_25) {
3884            $block = 12; break;
3885          }
3886          else {
3887            $block = 11; break;
3888          }
3889          break;
3890        }
3891        case 9: {
3892          $t25_26 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
3893          $t26_27 = $t25_26.$get();
3894          $t27_28 = { $get() { return e.$get().Kind; }, $set(v) { const obj = e.$get(); obj.Kind = v; e.$set(obj); } };
3895          $t28_29 = $t27_28.$get();
3896          $t29_30 = containsInt($t26_27, $t28_29);
3897          if ($t29_30) {
3898            $block = 8; break;
3899          }
3900          else {
3901            $block = 7; break;
3902          }
3903          break;
3904        }
3905        case 10: {
3906          return false;
3907          break;
3908        }
3909        case 11: {
3910          $t30_31 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
3911          $t31_32 = $t30_31.$get();
3912          $t32_33 = ($t31_32 > 0);
3913          if ($t32_33) {
3914            $block = 15; break;
3915          }
3916          else {
3917            $block = 14; break;
3918          }
3919          break;
3920        }
3921        case 12: {
3922          $t33_34 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
3923          $t34_35 = $t33_34.$get();
3924          $t35_36 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
3925          $t36_37 = $t35_36.$get();
3926          $t37_38 = ($t34_35 < $t36_37);
3927          if ($t37_38) {
3928            $block = 10; break;
3929          }
3930          else {
3931            $block = 11; break;
3932          }
3933          break;
3934        }
3935        case 13: {
3936          return false;
3937          break;
3938        }
3939        case 14: {
3940          $t38_39 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
3941          $t39_40 = $t38_39.$get();
3942          $t40_41 = ($t39_40 !== null);
3943          if ($t40_41) {
3944            $block = 16; break;
3945          }
3946          else {
3947            $block = 17; break;
3948          }
3949          break;
3950        }
3951        case 15: {
3952          $t41_42 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
3953          $t42_43 = $t41_42.$get();
3954          $t43_44 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
3955          $t44_45 = $t43_44.$get();
3956          $t45_46 = ($t42_43 > $t44_45);
3957          if ($t45_46) {
3958            $block = 13; break;
3959          }
3960          else {
3961            $block = 14; break;
3962          }
3963          break;
3964        }
3965        case 16: {
3966          $t46_47 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
3967          $t47_48 = $t46_47.$get();
3968          $t48_49 = { $entries: [...$t47_48.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
3969          $block = 18; break;
3970          break;
3971        }
3972        case 17: {
3973          return true;
3974          break;
3975        }
3976        case 18: {
3977          $t49_50 = $t48_49.next();
3978          $t50_51 = $t49_50[0];
3979          if ($t50_51) {
3980            $block = 19; break;
3981          }
3982          else {
3983            $block = 17; break;
3984          }
3985          break;
3986        }
3987        case 19: {
3988          $t51_52 = $t49_50[1];
3989          $t52_53 = $t49_50[2];
3990          $t53_54 = $rt.builtin.len($t51_52);
3991          $t54_55 = ($t53_54 < 2);
3992          if ($t54_55) {
3993            $block = 18; break;
3994          }
3995          else {
3996            $block = 21; break;
3997          }
3998          break;
3999        }
4000        case 20: {
4001          $t55_56 = $rt.builtin.stringSlice($t51_52, 1, undefined);
4002          $t56_57 = eventHasTagValue(e, $t55_56, $t52_53);
4003          if ($t56_57) {
4004            $block = 18; break;
4005          }
4006          else {
4007            $block = 22; break;
4008          }
4009          break;
4010        }
4011        case 21: {
4012          $rt.runtime.boundsCheck(0, $rt.builtin.byteLen($t51_52));
4013          $t57_58 = $rt.builtin.stringByteAt($t51_52, 0);
4014          $t58_59 = ($t57_58 !== 35);
4015          if ($t58_59) {
4016            $block = 18; break;
4017          }
4018          else {
4019            $block = 20; break;
4020          }
4021          break;
4022        }
4023        case 22: {
4024          return false;
4025          break;
4026        }
4027      }
4028    }
4029  }
4030  
4031  $rt.types.getType('common/nostr.Filter')?.methods?.set('Matches', Filter$Matches);
4032  export function Filter$Serialize(f) {
4033    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120;
4034    let $block = 0;
4035    while (true) {
4036      switch ($block) {
4037        case 0: {
4038          $t0_1 = { $value: $rt.builtin.makeSlice(128, 128, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4039          $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
4040          $t2_3 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4041          $t3_4 = $t2_3.$get().addr(0);
4042          $t3_4.$set(123);
4043          $t4_5 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
4044          $t5_6 = $rt.builtin.appendSlice($t1_2, $t4_5);
4045          $t6_7 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
4046          $t6_7.$set(true);
4047          $t7_8 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
4048          $t8_9 = $t7_8.$get();
4049          $t9_10 = $rt.builtin.len($t8_9);
4050          $t10_11 = ($t9_10 > 0);
4051          if ($t10_11) {
4052            $block = 1; break;
4053          }
4054          else {
4055            $t16_17 = $t5_6;
4056            $block = 2; break;
4057          }
4058          break;
4059        }
4060        case 1: {
4061          $t11_12 = appendField($t5_6, $t6_7);
4062          $t12_13 = $rt.builtin.appendString($t11_12, '"ids":');
4063          $t13_14 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
4064          $t14_15 = $t13_14.$get();
4065          $t15_16 = appendStrArray($t12_13, $t14_15);
4066          $t16_17 = $t15_16;
4067          $block = 2; break;
4068          break;
4069        }
4070        case 2: {
4071          $t17_18 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
4072          $t18_19 = $t17_18.$get();
4073          $t19_20 = $rt.builtin.len($t18_19);
4074          $t20_21 = ($t19_20 > 0);
4075          if ($t20_21) {
4076            $block = 3; break;
4077          }
4078          else {
4079            $t26_27 = $t16_17;
4080            $block = 4; break;
4081          }
4082          break;
4083        }
4084        case 3: {
4085          $t21_22 = appendField($t16_17, $t6_7);
4086          $t22_23 = $rt.builtin.appendString($t21_22, '"authors":');
4087          $t23_24 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
4088          $t24_25 = $t23_24.$get();
4089          $t25_26 = appendStrArray($t22_23, $t24_25);
4090          $t26_27 = $t25_26;
4091          $block = 4; break;
4092          break;
4093        }
4094        case 4: {
4095          $t27_28 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
4096          $t28_29 = $t27_28.$get();
4097          $t29_30 = $rt.builtin.len($t28_29);
4098          $t30_31 = ($t29_30 > 0);
4099          if ($t30_31) {
4100            $block = 5; break;
4101          }
4102          else {
4103            $t36_37 = $t26_27;
4104            $block = 6; break;
4105          }
4106          break;
4107        }
4108        case 5: {
4109          $t31_32 = appendField($t26_27, $t6_7);
4110          $t32_33 = $rt.builtin.appendString($t31_32, '"kinds":[');
4111          $t33_34 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
4112          $t34_35 = $t33_34.$get();
4113          $t35_36 = $rt.builtin.len($t34_35);
4114          $t40_41 = $t32_33;
4115          $t41_42 = -1;
4116          $block = 7; break;
4117          break;
4118        }
4119        case 6: {
4120          $t37_38 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
4121          $t38_39 = $t37_38.$get();
4122          $t39_40 = ($t38_39 !== null);
4123          if ($t39_40) {
4124            $block = 12; break;
4125          }
4126          else {
4127            $t61_62 = $t36_37;
4128            $block = 13; break;
4129          }
4130          break;
4131        }
4132        case 7: {
4133          $t42_43 = ($t41_42 + 1);
4134          $t43_44 = ($t42_43 < $t35_36);
4135          if ($t43_44) {
4136            $block = 8; break;
4137          }
4138          else {
4139            $block = 9; break;
4140          }
4141          break;
4142        }
4143        case 8: {
4144          $t44_45 = $t34_35.addr($t42_43);
4145          $t45_46 = $t44_45.$get();
4146          $t46_47 = ($t42_43 > 0);
4147          if ($t46_47) {
4148            $block = 10; break;
4149          }
4150          else {
4151            $t55_56 = $t40_41;
4152            $block = 11; break;
4153          }
4154          break;
4155        }
4156        case 9: {
4157          $t47_48 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4158          $t48_49 = $t47_48.$get().addr(0);
4159          $t48_49.$set(93);
4160          $t49_50 = $rt.builtin.sliceSlice($t47_48.$get(), undefined, undefined, undefined);
4161          $t50_51 = $rt.builtin.appendSlice($t40_41, $t49_50);
4162          $t36_37 = $t50_51;
4163          $block = 6; break;
4164          break;
4165        }
4166        case 10: {
4167          $t51_52 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4168          $t52_53 = $t51_52.$get().addr(0);
4169          $t52_53.$set(44);
4170          $t53_54 = $rt.builtin.sliceSlice($t51_52.$get(), undefined, undefined, undefined);
4171          $t54_55 = $rt.builtin.appendSlice($t40_41, $t53_54);
4172          $t55_56 = $t54_55;
4173          $block = 11; break;
4174          break;
4175        }
4176        case 11: {
4177          $t56_57 = intToStr($t45_46);
4178          $t57_58 = $rt.builtin.appendString($t55_56, $t56_57);
4179          $t40_41 = $t57_58;
4180          $t41_42 = $t42_43;
4181          $block = 7; break;
4182          break;
4183        }
4184        case 12: {
4185          $t58_59 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
4186          $t59_60 = $t58_59.$get();
4187          $t60_61 = { $entries: [...$t59_60.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
4188          $t65_66 = $t36_37;
4189          $block = 14; break;
4190          break;
4191        }
4192        case 13: {
4193          $t62_63 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
4194          $t63_64 = $t62_63.$get();
4195          $t64_65 = ($t63_64 > 0);
4196          if ($t64_65) {
4197            $block = 16; break;
4198          }
4199          else {
4200            $t84_85 = $t61_62;
4201            $block = 17; break;
4202          }
4203          break;
4204        }
4205        case 14: {
4206          $t66_67 = $t60_61.next();
4207          $t67_68 = $t66_67[0];
4208          if ($t67_68) {
4209            $block = 15; break;
4210          }
4211          else {
4212            $t61_62 = $t65_66;
4213            $block = 13; break;
4214          }
4215          break;
4216        }
4217        case 15: {
4218          $t68_69 = $t66_67[1];
4219          $t69_70 = $t66_67[2];
4220          $t70_71 = appendField($t65_66, $t6_7);
4221          $t71_72 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4222          $t72_73 = $t71_72.$get().addr(0);
4223          $t72_73.$set(34);
4224          $t73_74 = $rt.builtin.sliceSlice($t71_72.$get(), undefined, undefined, undefined);
4225          $t74_75 = $rt.builtin.appendSlice($t70_71, $t73_74);
4226          $t75_76 = $rt.builtin.appendString($t74_75, $t68_69);
4227          $t76_77 = $rt.builtin.appendString($t75_76, '":');
4228          $t77_78 = appendStrArray($t76_77, $t69_70);
4229          $t65_66 = $t77_78;
4230          $block = 14; break;
4231          break;
4232        }
4233        case 16: {
4234          $t78_79 = appendField($t61_62, $t6_7);
4235          $t79_80 = $rt.builtin.appendString($t78_79, '"since":');
4236          $t80_81 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
4237          $t81_82 = $t80_81.$get();
4238          $t82_83 = i64ToStr($t81_82);
4239          $t83_84 = $rt.builtin.appendString($t79_80, $t82_83);
4240          $t84_85 = $t83_84;
4241          $block = 17; break;
4242          break;
4243        }
4244        case 17: {
4245          $t85_86 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
4246          $t86_87 = $t85_86.$get();
4247          $t87_88 = ($t86_87 > 0);
4248          if ($t87_88) {
4249            $block = 18; break;
4250          }
4251          else {
4252            $t94_95 = $t84_85;
4253            $block = 19; break;
4254          }
4255          break;
4256        }
4257        case 18: {
4258          $t88_89 = appendField($t84_85, $t6_7);
4259          $t89_90 = $rt.builtin.appendString($t88_89, '"until":');
4260          $t90_91 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
4261          $t91_92 = $t90_91.$get();
4262          $t92_93 = i64ToStr($t91_92);
4263          $t93_94 = $rt.builtin.appendString($t89_90, $t92_93);
4264          $t94_95 = $t93_94;
4265          $block = 19; break;
4266          break;
4267        }
4268        case 19: {
4269          $t95_96 = { $get() { return f.$get().Limit; }, $set(v) { const obj = f.$get(); obj.Limit = v; f.$set(obj); } };
4270          $t96_97 = $t95_96.$get();
4271          $t97_98 = ($t96_97 > 0);
4272          if ($t97_98) {
4273            $block = 20; break;
4274          }
4275          else {
4276            $t104_105 = $t94_95;
4277            $block = 21; break;
4278          }
4279          break;
4280        }
4281        case 20: {
4282          $t98_99 = appendField($t94_95, $t6_7);
4283          $t99_100 = $rt.builtin.appendString($t98_99, '"limit":');
4284          $t100_101 = { $get() { return f.$get().Limit; }, $set(v) { const obj = f.$get(); obj.Limit = v; f.$set(obj); } };
4285          $t101_102 = $t100_101.$get();
4286          $t102_103 = intToStr($t101_102);
4287          $t103_104 = $rt.builtin.appendString($t99_100, $t102_103);
4288          $t104_105 = $t103_104;
4289          $block = 21; break;
4290          break;
4291        }
4292        case 21: {
4293          $t105_106 = { $get() { return f.$get().Proxy; }, $set(v) { const obj = f.$get(); obj.Proxy = v; f.$set(obj); } };
4294          $t106_107 = $t105_106.$get();
4295          $t107_108 = $rt.builtin.len($t106_107);
4296          $t108_109 = ($t107_108 > 0);
4297          if ($t108_109) {
4298            $block = 22; break;
4299          }
4300          else {
4301            $t114_115 = $t104_105;
4302            $block = 23; break;
4303          }
4304          break;
4305        }
4306        case 22: {
4307          $t109_110 = appendField($t104_105, $t6_7);
4308          $t110_111 = $rt.builtin.appendString($t109_110, '"_proxy":');
4309          $t111_112 = { $get() { return f.$get().Proxy; }, $set(v) { const obj = f.$get(); obj.Proxy = v; f.$set(obj); } };
4310          $t112_113 = $t111_112.$get();
4311          $t113_114 = appendStrArray($t110_111, $t112_113);
4312          $t114_115 = $t113_114;
4313          $block = 23; break;
4314          break;
4315        }
4316        case 23: {
4317          $t115_116 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4318          $t116_117 = $t115_116.$get().addr(0);
4319          $t116_117.$set(125);
4320          $t117_118 = $rt.builtin.sliceSlice($t115_116.$get(), undefined, undefined, undefined);
4321          $t118_119 = $rt.builtin.appendSlice($t114_115, $t117_118);
4322          $t119_120 = $rt.builtin.bytesToString($t118_119);
4323          return $t119_120;
4324          break;
4325        }
4326      }
4327    }
4328  }
4329  
4330  $rt.types.getType('common/nostr.Filter')?.methods?.set('Serialize', Filter$Serialize);
4331  export function Event$CheckID(e) {
4332    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
4333    $t0_1 = Event$Serialize(e);
4334    $t1_2 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4335    $t2_3 = $rt.builtin.stringToBytes($t0_1);
4336    $t3_4 = common$crypto$sha256.Sum($t2_3);
4337    $t1_2.$set($rt.builtin.cloneValue($t3_4));
4338    $t4_5 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
4339    $t5_6 = common$helpers.HexEncode($t4_5);
4340    $t6_7 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4341    $t7_8 = $t6_7.$get();
4342    $t8_9 = ($t7_8 === $t5_6);
4343    return $t8_9;
4344  }
4345  
4346  $rt.types.getType('common/nostr.Event')?.methods?.set('CheckID', Event$CheckID);
4347  export function Event$CheckSig(e) {
4348    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24;
4349    let $block = 0;
4350    while (true) {
4351      switch ($block) {
4352        case 0: {
4353          $t0_1 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4354          $t1_2 = $t0_1.$get();
4355          $t2_3 = common$helpers.HexDecode32($t1_2);
4356          $t3_4 = $t2_3[0];
4357          $t4_5 = $t2_3[1];
4358          if ($t4_5) {
4359            $block = 2; break;
4360          }
4361          else {
4362            $block = 1; break;
4363          }
4364          break;
4365        }
4366        case 1: {
4367          return false;
4368          break;
4369        }
4370        case 2: {
4371          $t5_6 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4372          $t6_7 = $t5_6.$get();
4373          $t7_8 = common$helpers.HexDecode32($t6_7);
4374          $t8_9 = $t7_8[0];
4375          $t9_10 = $t7_8[1];
4376          if ($t9_10) {
4377            $block = 4; break;
4378          }
4379          else {
4380            $block = 3; break;
4381          }
4382          break;
4383        }
4384        case 3: {
4385          return false;
4386          break;
4387        }
4388        case 4: {
4389          $t10_11 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
4390          $t11_12 = $t10_11.$get();
4391          $t12_13 = $rt.builtin.len($t11_12);
4392          $t13_14 = ($t12_13 !== 128);
4393          if ($t13_14) {
4394            $block = 5; break;
4395          }
4396          else {
4397            $block = 6; break;
4398          }
4399          break;
4400        }
4401        case 5: {
4402          return false;
4403          break;
4404        }
4405        case 6: {
4406          $t14_15 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4407          $t15_16 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
4408          $t16_17 = $t15_16.$get();
4409          $t17_18 = common$helpers.HexDecode($t16_17);
4410          $t18_19 = $rt.builtin.len($t17_18);
4411          $t19_20 = ($t18_19 !== 64);
4412          if ($t19_20) {
4413            $block = 7; break;
4414          }
4415          else {
4416            $block = 8; break;
4417          }
4418          break;
4419        }
4420        case 7: {
4421          return false;
4422          break;
4423        }
4424        case 8: {
4425          $t20_21 = $rt.builtin.sliceSlice($t14_15.$get(), undefined, undefined, undefined);
4426          $t21_22 = $rt.builtin.copy($t20_21, $t17_18);
4427          $t22_23 = $t14_15.$get();
4428          $t23_24 = common$crypto$secp256k1.VerifySchnorr($t3_4, $t8_9, $t22_23);
4429          return $t23_24;
4430          break;
4431        }
4432      }
4433    }
4434  }
4435  
4436  $rt.types.getType('common/nostr.Event')?.methods?.set('CheckSig', Event$CheckSig);
4437  export function Event$ComputeID(e) {
4438    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
4439    $t0_1 = Event$Serialize(e);
4440    $t1_2 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4441    $t2_3 = $rt.builtin.stringToBytes($t0_1);
4442    $t3_4 = common$crypto$sha256.Sum($t2_3);
4443    $t1_2.$set($rt.builtin.cloneValue($t3_4));
4444    $t4_5 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
4445    $t5_6 = common$helpers.HexEncode($t4_5);
4446    $t6_7 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4447    $t6_7.$set($t5_6);
4448    $t7_8 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4449    $t8_9 = $t7_8.$get();
4450    return $t8_9;
4451  }
4452  
4453  $rt.types.getType('common/nostr.Event')?.methods?.set('ComputeID', Event$ComputeID);
4454  export function Event$Serialize(e) {
4455    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44;
4456    $t0_1 = { $value: $rt.builtin.makeSlice(256, 256, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4457    $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
4458    $t2_3 = $rt.builtin.appendString($t1_2, '[0,');
4459    $t3_4 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4460    $t4_5 = $t3_4.$get();
4461    $t5_6 = common$helpers.JsonString($t4_5);
4462    $t6_7 = $rt.builtin.appendString($t2_3, $t5_6);
4463    $t7_8 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4464    $t8_9 = $t7_8.$get().addr(0);
4465    $t8_9.$set(44);
4466    $t9_10 = $rt.builtin.sliceSlice($t7_8.$get(), undefined, undefined, undefined);
4467    $t10_11 = $rt.builtin.appendSlice($t6_7, $t9_10);
4468    $t11_12 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
4469    $t12_13 = $t11_12.$get();
4470    $t13_14 = common$helpers.Itoa($t12_13);
4471    $t14_15 = $rt.builtin.appendString($t10_11, $t13_14);
4472    $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4473    $t16_17 = $t15_16.$get().addr(0);
4474    $t16_17.$set(44);
4475    $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
4476    $t18_19 = $rt.builtin.appendSlice($t14_15, $t17_18);
4477    $t19_20 = { $get() { return e.$get().Kind; }, $set(v) { const obj = e.$get(); obj.Kind = v; e.$set(obj); } };
4478    $t20_21 = $t19_20.$get();
4479    $t21_22 = $t20_21;
4480    $t22_23 = common$helpers.Itoa($t21_22);
4481    $t23_24 = $rt.builtin.appendString($t18_19, $t22_23);
4482    $t24_25 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4483    $t25_26 = $t24_25.$get().addr(0);
4484    $t25_26.$set(44);
4485    $t26_27 = $rt.builtin.sliceSlice($t24_25.$get(), undefined, undefined, undefined);
4486    $t27_28 = $rt.builtin.appendSlice($t23_24, $t26_27);
4487    $t28_29 = { $get() { return e.$get().Tags; }, $set(v) { const obj = e.$get(); obj.Tags = v; e.$set(obj); } };
4488    $t29_30 = $t28_29.$get();
4489    $t30_31 = serializeTags($t27_28, $t29_30);
4490    $t31_32 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4491    $t32_33 = $t31_32.$get().addr(0);
4492    $t32_33.$set(44);
4493    $t33_34 = $rt.builtin.sliceSlice($t31_32.$get(), undefined, undefined, undefined);
4494    $t34_35 = $rt.builtin.appendSlice($t30_31, $t33_34);
4495    $t35_36 = { $get() { return e.$get().Content; }, $set(v) { const obj = e.$get(); obj.Content = v; e.$set(obj); } };
4496    $t36_37 = $t35_36.$get();
4497    $t37_38 = common$helpers.JsonString($t36_37);
4498    $t38_39 = $rt.builtin.appendString($t34_35, $t37_38);
4499    $t39_40 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4500    $t40_41 = $t39_40.$get().addr(0);
4501    $t40_41.$set(93);
4502    $t41_42 = $rt.builtin.sliceSlice($t39_40.$get(), undefined, undefined, undefined);
4503    $t42_43 = $rt.builtin.appendSlice($t38_39, $t41_42);
4504    $t43_44 = $rt.builtin.bytesToString($t42_43);
4505    return $t43_44;
4506  }
4507  
4508  $rt.types.getType('common/nostr.Event')?.methods?.set('Serialize', Event$Serialize);
4509  export function Event$Sign(e, seckey, auxRand) {
4510    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
4511    let $block = 0;
4512    while (true) {
4513      switch ($block) {
4514        case 0: {
4515          $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4516          $t1_2 = common$crypto$secp256k1.PubKeyFromSecKey(seckey);
4517          $t2_3 = $t1_2[0];
4518          $t0_1.$set($rt.builtin.cloneValue($t2_3));
4519          $t3_4 = $t1_2[1];
4520          if ($t3_4) {
4521            $block = 2; break;
4522          }
4523          else {
4524            $block = 1; break;
4525          }
4526          break;
4527        }
4528        case 1: {
4529          return false;
4530          break;
4531        }
4532        case 2: {
4533          $t4_5 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4534          $t5_6 = common$helpers.HexEncode($t4_5);
4535          $t6_7 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4536          $t6_7.$set($t5_6);
4537          $t7_8 = Event$ComputeID(e);
4538          $t8_9 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4539          $t9_10 = $t8_9.$get();
4540          $t10_11 = common$helpers.HexDecode32($t9_10);
4541          $t11_12 = $t10_11[0];
4542          $t12_13 = $t10_11[1];
4543          if ($t12_13) {
4544            $block = 4; break;
4545          }
4546          else {
4547            $block = 3; break;
4548          }
4549          break;
4550        }
4551        case 3: {
4552          return false;
4553          break;
4554        }
4555        case 4: {
4556          $t13_14 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4557          $t14_15 = common$crypto$secp256k1.SignSchnorr(seckey, $t11_12, auxRand);
4558          $t15_16 = $t14_15[0];
4559          $t13_14.$set($rt.builtin.cloneValue($t15_16));
4560          $t16_17 = $t14_15[1];
4561          if ($t16_17) {
4562            $block = 6; break;
4563          }
4564          else {
4565            $block = 5; break;
4566          }
4567          break;
4568        }
4569        case 5: {
4570          return false;
4571          break;
4572        }
4573        case 6: {
4574          $t17_18 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, undefined, undefined);
4575          $t18_19 = common$helpers.HexEncode($t17_18);
4576          $t19_20 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
4577          $t19_20.$set($t18_19);
4578          return true;
4579          break;
4580        }
4581      }
4582    }
4583  }
4584  
4585  $rt.types.getType('common/nostr.Event')?.methods?.set('Sign', Event$Sign);
4586  export function Event$ToJSON(e) {
4587    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42;
4588    $t0_1 = { $value: $rt.builtin.makeSlice(512, 512, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4589    $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
4590    $t2_3 = $rt.builtin.appendString($t1_2, '{"id":');
4591    $t3_4 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4592    $t4_5 = $t3_4.$get();
4593    $t5_6 = common$helpers.JsonString($t4_5);
4594    $t6_7 = $rt.builtin.appendString($t2_3, $t5_6);
4595    $t7_8 = $rt.builtin.appendString($t6_7, ',"pubkey":');
4596    $t8_9 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4597    $t9_10 = $t8_9.$get();
4598    $t10_11 = common$helpers.JsonString($t9_10);
4599    $t11_12 = $rt.builtin.appendString($t7_8, $t10_11);
4600    $t12_13 = $rt.builtin.appendString($t11_12, ',"created_at":');
4601    $t13_14 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
4602    $t14_15 = $t13_14.$get();
4603    $t15_16 = common$helpers.Itoa($t14_15);
4604    $t16_17 = $rt.builtin.appendString($t12_13, $t15_16);
4605    $t17_18 = $rt.builtin.appendString($t16_17, ',"kind":');
4606    $t18_19 = { $get() { return e.$get().Kind; }, $set(v) { const obj = e.$get(); obj.Kind = v; e.$set(obj); } };
4607    $t19_20 = $t18_19.$get();
4608    $t20_21 = $t19_20;
4609    $t21_22 = common$helpers.Itoa($t20_21);
4610    $t22_23 = $rt.builtin.appendString($t17_18, $t21_22);
4611    $t23_24 = $rt.builtin.appendString($t22_23, ',"tags":');
4612    $t24_25 = { $get() { return e.$get().Tags; }, $set(v) { const obj = e.$get(); obj.Tags = v; e.$set(obj); } };
4613    $t25_26 = $t24_25.$get();
4614    $t26_27 = serializeTags($t23_24, $t25_26);
4615    $t27_28 = $rt.builtin.appendString($t26_27, ',"content":');
4616    $t28_29 = { $get() { return e.$get().Content; }, $set(v) { const obj = e.$get(); obj.Content = v; e.$set(obj); } };
4617    $t29_30 = $t28_29.$get();
4618    $t30_31 = common$helpers.JsonString($t29_30);
4619    $t31_32 = $rt.builtin.appendString($t27_28, $t30_31);
4620    $t32_33 = $rt.builtin.appendString($t31_32, ',"sig":');
4621    $t33_34 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
4622    $t34_35 = $t33_34.$get();
4623    $t35_36 = common$helpers.JsonString($t34_35);
4624    $t36_37 = $rt.builtin.appendString($t32_33, $t35_36);
4625    $t37_38 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4626    $t38_39 = $t37_38.$get().addr(0);
4627    $t38_39.$set(125);
4628    $t39_40 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
4629    $t40_41 = $rt.builtin.appendSlice($t36_37, $t39_40);
4630    $t41_42 = $rt.builtin.bytesToString($t40_41);
4631    return $t41_42;
4632  }
4633  
4634  $rt.types.getType('common/nostr.Event')?.methods?.set('ToJSON', Event$ToJSON);
4635  export function Tag$Key(t) {
4636    let $t0_1, $t1_2, $t2_3, $t3_4;
4637    let $block = 0;
4638    while (true) {
4639      switch ($block) {
4640        case 0: {
4641          $t0_1 = $rt.builtin.len(t);
4642          $t1_2 = ($t0_1 > 0);
4643          if ($t1_2) {
4644            $block = 1; break;
4645          }
4646          else {
4647            $block = 2; break;
4648          }
4649          break;
4650        }
4651        case 1: {
4652          $t2_3 = t.addr(0);
4653          $t3_4 = $t2_3.$get();
4654          return $t3_4;
4655          break;
4656        }
4657        case 2: {
4658          return '';
4659          break;
4660        }
4661      }
4662    }
4663  }
4664  
4665  $rt.types.getType('common/nostr.Tag')?.methods?.set('Key', Tag$Key);
4666  export function Tag$Marker(t) {
4667    let $t0_1, $t1_2, $t2_3, $t3_4;
4668    let $block = 0;
4669    while (true) {
4670      switch ($block) {
4671        case 0: {
4672          $t0_1 = $rt.builtin.len(t);
4673          $t1_2 = ($t0_1 > 3);
4674          if ($t1_2) {
4675            $block = 1; break;
4676          }
4677          else {
4678            $block = 2; break;
4679          }
4680          break;
4681        }
4682        case 1: {
4683          $t2_3 = t.addr(3);
4684          $t3_4 = $t2_3.$get();
4685          return $t3_4;
4686          break;
4687        }
4688        case 2: {
4689          return '';
4690          break;
4691        }
4692      }
4693    }
4694  }
4695  
4696  $rt.types.getType('common/nostr.Tag')?.methods?.set('Marker', Tag$Marker);
4697  export function Tag$Relay(t) {
4698    let $t0_1, $t1_2, $t2_3, $t3_4;
4699    let $block = 0;
4700    while (true) {
4701      switch ($block) {
4702        case 0: {
4703          $t0_1 = $rt.builtin.len(t);
4704          $t1_2 = ($t0_1 > 2);
4705          if ($t1_2) {
4706            $block = 1; break;
4707          }
4708          else {
4709            $block = 2; break;
4710          }
4711          break;
4712        }
4713        case 1: {
4714          $t2_3 = t.addr(2);
4715          $t3_4 = $t2_3.$get();
4716          return $t3_4;
4717          break;
4718        }
4719        case 2: {
4720          return '';
4721          break;
4722        }
4723      }
4724    }
4725  }
4726  
4727  $rt.types.getType('common/nostr.Tag')?.methods?.set('Relay', Tag$Relay);
4728  export function Tag$Value(t) {
4729    let $t0_1, $t1_2, $t2_3, $t3_4;
4730    let $block = 0;
4731    while (true) {
4732      switch ($block) {
4733        case 0: {
4734          $t0_1 = $rt.builtin.len(t);
4735          $t1_2 = ($t0_1 > 1);
4736          if ($t1_2) {
4737            $block = 1; break;
4738          }
4739          else {
4740            $block = 2; break;
4741          }
4742          break;
4743        }
4744        case 1: {
4745          $t2_3 = t.addr(1);
4746          $t3_4 = $t2_3.$get();
4747          return $t3_4;
4748          break;
4749        }
4750        case 2: {
4751          return '';
4752          break;
4753        }
4754      }
4755    }
4756  }
4757  
4758  $rt.types.getType('common/nostr.Tag')?.methods?.set('Value', Tag$Value);
4759  export function Tags$ContainsValue(ts, key, value) {
4760    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
4761    let $block = 0;
4762    while (true) {
4763      switch ($block) {
4764        case 0: {
4765          $t0_1 = $rt.builtin.len(ts);
4766          $t1_2 = -1;
4767          $block = 1; break;
4768          break;
4769        }
4770        case 1: {
4771          $t2_3 = ($t1_2 + 1);
4772          $t3_4 = ($t2_3 < $t0_1);
4773          if ($t3_4) {
4774            $block = 2; break;
4775          }
4776          else {
4777            $block = 3; break;
4778          }
4779          break;
4780        }
4781        case 2: {
4782          $t4_5 = ts.addr($t2_3);
4783          $t5_6 = $t4_5.$get();
4784          $t6_7 = $rt.builtin.len($t5_6);
4785          $t7_8 = ($t6_7 > 1);
4786          if ($t7_8) {
4787            $block = 6; break;
4788          }
4789          else {
4790            $t1_2 = $t2_3;
4791            $block = 1; break;
4792          }
4793          break;
4794        }
4795        case 3: {
4796          return false;
4797          break;
4798        }
4799        case 4: {
4800          return true;
4801          break;
4802        }
4803        case 5: {
4804          $t8_9 = $t5_6.addr(1);
4805          $t9_10 = $t8_9.$get();
4806          $t10_11 = ($t9_10 === value);
4807          if ($t10_11) {
4808            $block = 4; break;
4809          }
4810          else {
4811            $t1_2 = $t2_3;
4812            $block = 1; break;
4813          }
4814          break;
4815        }
4816        case 6: {
4817          $t11_12 = $t5_6.addr(0);
4818          $t12_13 = $t11_12.$get();
4819          $t13_14 = ($t12_13 === key);
4820          if ($t13_14) {
4821            $block = 5; break;
4822          }
4823          else {
4824            $t1_2 = $t2_3;
4825            $block = 1; break;
4826          }
4827          break;
4828        }
4829      }
4830    }
4831  }
4832  
4833  $rt.types.getType('common/nostr.Tags')?.methods?.set('ContainsValue', Tags$ContainsValue);
4834  export function Tags$GetAll(ts, key) {
4835    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16;
4836    let $block = 0;
4837    while (true) {
4838      switch ($block) {
4839        case 0: {
4840          $t0_1 = $rt.builtin.len(ts);
4841          $t1_2 = null;
4842          $t2_3 = -1;
4843          $block = 1; break;
4844          break;
4845        }
4846        case 1: {
4847          $t3_4 = ($t2_3 + 1);
4848          $t4_5 = ($t3_4 < $t0_1);
4849          if ($t4_5) {
4850            $block = 2; break;
4851          }
4852          else {
4853            $block = 3; break;
4854          }
4855          break;
4856        }
4857        case 2: {
4858          $t5_6 = ts.addr($t3_4);
4859          $t6_7 = $t5_6.$get();
4860          $t7_8 = $rt.builtin.len($t6_7);
4861          $t8_9 = ($t7_8 > 0);
4862          if ($t8_9) {
4863            $block = 5; break;
4864          }
4865          else {
4866            let $phi0 = $t1_2;
4867            let $phi1 = $t3_4;
4868            $t1_2 = $phi0;
4869            $t2_3 = $phi1;
4870            $block = 1; break;
4871          }
4872          break;
4873        }
4874        case 3: {
4875          return $t1_2;
4876          break;
4877        }
4878        case 4: {
4879          $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4880          $t10_11 = $t9_10.$get().addr(0);
4881          $t10_11.$set($t6_7);
4882          $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
4883          $t12_13 = $rt.builtin.appendSlice($t1_2, $t11_12);
4884          $t1_2 = $t12_13;
4885          $t2_3 = $t3_4;
4886          $block = 1; break;
4887          break;
4888        }
4889        case 5: {
4890          $t13_14 = $t6_7.addr(0);
4891          $t14_15 = $t13_14.$get();
4892          $t15_16 = ($t14_15 === key);
4893          if ($t15_16) {
4894            $block = 4; break;
4895          }
4896          else {
4897            let $phi0 = $t1_2;
4898            let $phi1 = $t3_4;
4899            $t1_2 = $phi0;
4900            $t2_3 = $phi1;
4901            $block = 1; break;
4902          }
4903          break;
4904        }
4905      }
4906    }
4907  }
4908  
4909  $rt.types.getType('common/nostr.Tags')?.methods?.set('GetAll', Tags$GetAll);
4910  export function Tags$GetD(ts) {
4911    let $t0_1, $t1_2, $t2_3;
4912    let $block = 0;
4913    while (true) {
4914      switch ($block) {
4915        case 0: {
4916          $t0_1 = Tags$GetFirst(ts, 'd');
4917          $t1_2 = ($t0_1 !== null);
4918          if ($t1_2) {
4919            $block = 1; break;
4920          }
4921          else {
4922            $block = 2; break;
4923          }
4924          break;
4925        }
4926        case 1: {
4927          $t2_3 = Tag$Value($t0_1);
4928          return $t2_3;
4929          break;
4930        }
4931        case 2: {
4932          return '';
4933          break;
4934        }
4935      }
4936    }
4937  }
4938  
4939  $rt.types.getType('common/nostr.Tags')?.methods?.set('GetD', Tags$GetD);
4940  export function Tags$GetFirst(ts, key) {
4941    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
4942    let $block = 0;
4943    while (true) {
4944      switch ($block) {
4945        case 0: {
4946          $t0_1 = $rt.builtin.len(ts);
4947          $t1_2 = -1;
4948          $block = 1; break;
4949          break;
4950        }
4951        case 1: {
4952          $t2_3 = ($t1_2 + 1);
4953          $t3_4 = ($t2_3 < $t0_1);
4954          if ($t3_4) {
4955            $block = 2; break;
4956          }
4957          else {
4958            $block = 3; break;
4959          }
4960          break;
4961        }
4962        case 2: {
4963          $t4_5 = ts.addr($t2_3);
4964          $t5_6 = $t4_5.$get();
4965          $t6_7 = $rt.builtin.len($t5_6);
4966          $t7_8 = ($t6_7 > 0);
4967          if ($t7_8) {
4968            $block = 5; break;
4969          }
4970          else {
4971            $t1_2 = $t2_3;
4972            $block = 1; break;
4973          }
4974          break;
4975        }
4976        case 3: {
4977          return null;
4978          break;
4979        }
4980        case 4: {
4981          return $t5_6;
4982          break;
4983        }
4984        case 5: {
4985          $t8_9 = $t5_6.addr(0);
4986          $t9_10 = $t8_9.$get();
4987          $t10_11 = ($t9_10 === key);
4988          if ($t10_11) {
4989            $block = 4; break;
4990          }
4991          else {
4992            $t1_2 = $t2_3;
4993            $block = 1; break;
4994          }
4995          break;
4996        }
4997      }
4998    }
4999  }
5000  
5001  $rt.types.getType('common/nostr.Tags')?.methods?.set('GetFirst', Tags$GetFirst);
5002