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