smesh_lol_web_common_relay.mjs raw

   1  // Package smesh.lol/web/common/relay
   2  // Generated by MoxieJS — Moxie JavaScript backend
   3  
   4  import * as $rt from './$runtime/index.mjs';
   5  
   6  import * as smesh$lol$web$common$jsbridge$ws from './smesh_lol_web_common_jsbridge_ws.mjs';
   7  import * as smesh$lol$web$common$nostr from './smesh_lol_web_common_nostr.mjs';
   8  
   9  // Package-level variables
  10  
  11  $rt.types.registerType('smesh.lol/web/common/relay.Conn', {
  12    id: 'smesh.lol/web/common/relay.Conn',
  13    kind: 'struct',
  14    methods: new Map(),
  15    fields: [
  16      { name: 'URL', type: 'string', tag: '', embedded: false },
  17      { name: 'wsConn', type: 'smesh.lol/web/common/jsbridge/ws.Conn', tag: '', embedded: false },
  18      { name: 'state', type: 'int', tag: '', embedded: false },
  19      { name: 'subs', type: 'map[string]*smesh.lol/web/common/relay.Sub', tag: '', embedded: false },
  20      { name: 'onReady', type: 'func', tag: '', embedded: false },
  21      { name: 'onEvent', type: 'func', tag: '', embedded: false },
  22      { name: 'onEOSE', type: 'func', tag: '', embedded: false },
  23      { name: 'onOK', type: 'func', tag: '', embedded: false },
  24      { name: 'onAuth', type: 'func', tag: '', embedded: false },
  25      { name: 'closing', type: 'bool', tag: '', embedded: false },
  26      { name: 'pendingPublish', type: '[]string', tag: '', embedded: false },
  27      { name: 'ScheduleReconnect', type: 'func', tag: '', embedded: false },
  28    ],
  29    zero: () => ({ URL: '', wsConn: 0, state: 0, subs: null, onReady: null, onEvent: null, onEOSE: null, onOK: null, onAuth: null, closing: false, pendingPublish: null, ScheduleReconnect: null }),
  30  });
  31  $rt.types.registerType('smesh.lol/web/common/relay.Pool', {
  32    id: 'smesh.lol/web/common/relay.Pool',
  33    kind: 'struct',
  34    methods: new Map(),
  35    fields: [
  36      { name: 'conns', type: 'map[string]*smesh.lol/web/common/relay.Conn', tag: '', embedded: false },
  37    ],
  38    zero: () => ({ conns: null }),
  39  });
  40  $rt.types.registerType('smesh.lol/web/common/relay.Sub', {
  41    id: 'smesh.lol/web/common/relay.Sub',
  42    kind: 'struct',
  43    methods: new Map(),
  44    fields: [
  45      { name: 'ID', type: 'string', tag: '', embedded: false },
  46      { name: 'Filters', type: '[]*smesh.lol/web/common/nostr.Filter', tag: '', embedded: false },
  47      { name: 'OnEvent', type: 'func', tag: '', embedded: false },
  48      { name: 'OnEOSE', type: 'func', tag: '', embedded: false },
  49      { name: 'conn', type: '*smesh.lol/web/common/relay.Conn', tag: '', embedded: false },
  50      { name: 'gotEOSE', type: 'bool', tag: '', embedded: false },
  51    ],
  52    zero: () => ({ ID: '', Filters: null, OnEvent: null, OnEOSE: null, conn: null, gotEOSE: false }),
  53  });
  54  export function init() {
  55    return;
  56  }
  57  
  58  export function Dial(url) {
  59    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
  60    $t0_1 = { $value: { URL: '', wsConn: 0, state: 0, subs: null, onReady: null, onEvent: null, onEOSE: null, onOK: null, onAuth: null, closing: false, pendingPublish: null, ScheduleReconnect: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
  61    $t1_2 = { $get() { return $t0_1.$get().URL; }, $set(v) { const obj = $t0_1.$get(); obj.URL = v; $t0_1.$set(obj); } };
  62    $t2_3 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
  63    $t3_4 = { $get() { return $t0_1.$get().subs; }, $set(v) { const obj = $t0_1.$get(); obj.subs = v; $t0_1.$set(obj); } };
  64    $t4_5 = $rt.builtin.makeMap('string');
  65    $t1_2.$set(url);
  66    $t2_3.$set(0);
  67    $t3_4.$set($t4_5);
  68    $t5_6 = Conn$dial($t0_1);
  69    return $t0_1;
  70  }
  71  
  72  export function eventJSON(ev) {
  73    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;
  74    $t0_1 = { $value: $rt.builtin.makeSlice(512, 512, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  75    $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
  76    $t2_3 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  77    $t3_4 = $t2_3.$get().addr(0);
  78    $t3_4.$set(123);
  79    $t4_5 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
  80    $t5_6 = $rt.builtin.appendSlice($t1_2, $t4_5);
  81    $t6_7 = $rt.builtin.appendString($t5_6, '"id":"');
  82    $t7_8 = { $get() { return ev.$get().ID; }, $set(v) { const obj = ev.$get(); obj.ID = v; ev.$set(obj); } };
  83    $t8_9 = $t7_8.$get();
  84    $t9_10 = $rt.builtin.appendString($t6_7, $t8_9);
  85    $t10_11 = $rt.builtin.appendString($t9_10, '","pubkey":"');
  86    $t11_12 = { $get() { return ev.$get().PubKey; }, $set(v) { const obj = ev.$get(); obj.PubKey = v; ev.$set(obj); } };
  87    $t12_13 = $t11_12.$get();
  88    $t13_14 = $rt.builtin.appendString($t10_11, $t12_13);
  89    $t14_15 = $rt.builtin.appendString($t13_14, '","created_at":');
  90    $t15_16 = { $get() { return ev.$get().CreatedAt; }, $set(v) { const obj = ev.$get(); obj.CreatedAt = v; ev.$set(obj); } };
  91    $t16_17 = $t15_16.$get();
  92    $t17_18 = itoa($t16_17);
  93    $t18_19 = $rt.builtin.appendString($t14_15, $t17_18);
  94    $t19_20 = $rt.builtin.appendString($t18_19, ',"kind":');
  95    $t20_21 = { $get() { return ev.$get().Kind; }, $set(v) { const obj = ev.$get(); obj.Kind = v; ev.$set(obj); } };
  96    $t21_22 = $t20_21.$get();
  97    $t22_23 = BigInt($t21_22);
  98    $t23_24 = itoa($t22_23);
  99    $t24_25 = $rt.builtin.appendString($t19_20, $t23_24);
 100    $t25_26 = $rt.builtin.appendString($t24_25, ',"tags":');
 101    $t26_27 = { $get() { return ev.$get().Tags; }, $set(v) { const obj = ev.$get(); obj.Tags = v; ev.$set(obj); } };
 102    $t27_28 = $t26_27.$get();
 103    $t28_29 = serializeTags($t25_26, $t27_28);
 104    $t29_30 = $rt.builtin.appendString($t28_29, ',"content":"');
 105    $t30_31 = { $get() { return ev.$get().Content; }, $set(v) { const obj = ev.$get(); obj.Content = v; ev.$set(obj); } };
 106    $t31_32 = $t30_31.$get();
 107    $t32_33 = appendEscaped($t29_30, $t31_32);
 108    $t33_34 = $rt.builtin.appendString($t32_33, '","sig":"');
 109    $t34_35 = { $get() { return ev.$get().Sig; }, $set(v) { const obj = ev.$get(); obj.Sig = v; ev.$set(obj); } };
 110    $t35_36 = $t34_35.$get();
 111    $t36_37 = $rt.builtin.appendString($t33_34, $t35_36);
 112    $t37_38 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 113    $t38_39 = $t37_38.$get().addr(0);
 114    $t38_39.$set(34);
 115    $t39_40 = $t37_38.$get().addr(1);
 116    $t39_40.$set(125);
 117    $t40_41 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
 118    $t41_42 = $rt.builtin.appendSlice($t36_37, $t40_41);
 119    $t42_43 = $rt.builtin.bytesToString($t41_42);
 120    return $t42_43;
 121  }
 122  
 123  export function serializeTags(buf, tags) {
 124    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;
 125    let $block = 0;
 126    while (true) {
 127      switch ($block) {
 128        case 0: {
 129          $t0_1 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 130          $t1_2 = $t0_1.$get().addr(0);
 131          $t1_2.$set(91);
 132          $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
 133          $t3_4 = $rt.builtin.appendSlice(buf, $t2_3);
 134          $t4_5 = $rt.builtin.len(tags);
 135          $t5_6 = $t3_4;
 136          $t6_7 = -1;
 137          $block = 1; break;
 138          break;
 139        }
 140        case 1: {
 141          $t7_8 = ($t6_7 + 1);
 142          $t8_9 = ($t7_8 < $t4_5);
 143          if ($t8_9) {
 144            $block = 2; break;
 145          }
 146          else {
 147            $block = 3; break;
 148          }
 149          break;
 150        }
 151        case 2: {
 152          $t9_10 = tags.addr($t7_8);
 153          $t10_11 = $t9_10.$get();
 154          $t11_12 = ($t7_8 > 0);
 155          if ($t11_12) {
 156            $block = 4; break;
 157          }
 158          else {
 159            $t20_21 = $t5_6;
 160            $block = 5; break;
 161          }
 162          break;
 163        }
 164        case 3: {
 165          $t12_13 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 166          $t13_14 = $t12_13.$get().addr(0);
 167          $t13_14.$set(93);
 168          $t14_15 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
 169          $t15_16 = $rt.builtin.appendSlice($t5_6, $t14_15);
 170          return $t15_16;
 171          break;
 172        }
 173        case 4: {
 174          $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 175          $t17_18 = $t16_17.$get().addr(0);
 176          $t17_18.$set(44);
 177          $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
 178          $t19_20 = $rt.builtin.appendSlice($t5_6, $t18_19);
 179          $t20_21 = $t19_20;
 180          $block = 5; break;
 181          break;
 182        }
 183        case 5: {
 184          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 185          $t22_23 = $t21_22.$get().addr(0);
 186          $t22_23.$set(91);
 187          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
 188          $t24_25 = $rt.builtin.appendSlice($t20_21, $t23_24);
 189          $t25_26 = $rt.builtin.len($t10_11);
 190          $t26_27 = $t24_25;
 191          $t27_28 = -1;
 192          $block = 6; break;
 193          break;
 194        }
 195        case 6: {
 196          $t28_29 = ($t27_28 + 1);
 197          $t29_30 = ($t28_29 < $t25_26);
 198          if ($t29_30) {
 199            $block = 7; break;
 200          }
 201          else {
 202            $block = 8; break;
 203          }
 204          break;
 205        }
 206        case 7: {
 207          $t30_31 = $t10_11.addr($t28_29);
 208          $t31_32 = $t30_31.$get();
 209          $t32_33 = ($t28_29 > 0);
 210          if ($t32_33) {
 211            $block = 9; break;
 212          }
 213          else {
 214            $t41_42 = $t26_27;
 215            $block = 10; break;
 216          }
 217          break;
 218        }
 219        case 8: {
 220          $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 221          $t34_35 = $t33_34.$get().addr(0);
 222          $t34_35.$set(93);
 223          $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
 224          $t36_37 = $rt.builtin.appendSlice($t26_27, $t35_36);
 225          $t5_6 = $t36_37;
 226          $t6_7 = $t7_8;
 227          $block = 1; break;
 228          break;
 229        }
 230        case 9: {
 231          $t37_38 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 232          $t38_39 = $t37_38.$get().addr(0);
 233          $t38_39.$set(44);
 234          $t39_40 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
 235          $t40_41 = $rt.builtin.appendSlice($t26_27, $t39_40);
 236          $t41_42 = $t40_41;
 237          $block = 10; break;
 238          break;
 239        }
 240        case 10: {
 241          $t42_43 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 242          $t43_44 = $t42_43.$get().addr(0);
 243          $t43_44.$set(34);
 244          $t44_45 = $rt.builtin.sliceSlice($t42_43.$get(), undefined, undefined, undefined);
 245          $t45_46 = $rt.builtin.appendSlice($t41_42, $t44_45);
 246          $t46_47 = appendEscaped($t45_46, $t31_32);
 247          $t47_48 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 248          $t48_49 = $t47_48.$get().addr(0);
 249          $t48_49.$set(34);
 250          $t49_50 = $rt.builtin.sliceSlice($t47_48.$get(), undefined, undefined, undefined);
 251          $t50_51 = $rt.builtin.appendSlice($t46_47, $t49_50);
 252          $t26_27 = $t50_51;
 253          $t27_28 = $t28_29;
 254          $block = 6; break;
 255          break;
 256        }
 257      }
 258    }
 259  }
 260  
 261  export function appendEscaped(buf, s) {
 262    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;
 263    let $block = 0;
 264    while (true) {
 265      switch ($block) {
 266        case 0: {
 267          $t0_1 = buf;
 268          $t1_2 = 0;
 269          $block = 1; break;
 270          break;
 271        }
 272        case 1: {
 273          $t2_3 = $rt.builtin.len(s);
 274          $t3_4 = ($t1_2 < $t2_3);
 275          if ($t3_4) {
 276            $block = 2; break;
 277          }
 278          else {
 279            $block = 3; break;
 280          }
 281          break;
 282        }
 283        case 2: {
 284          $t4_5 = s.addr($t1_2);
 285          $t5_6 = $t4_5.$get();
 286          $t6_7 = ($t5_6 === 34);
 287          if ($t6_7) {
 288            $block = 5; break;
 289          }
 290          else {
 291            $block = 7; break;
 292          }
 293          break;
 294        }
 295        case 3: {
 296          return $t0_1;
 297          break;
 298        }
 299        case 4: {
 300          $t8_9 = ($t1_2 + 1);
 301          $t0_1 = $t7_8;
 302          $t1_2 = $t8_9;
 303          $block = 1; break;
 304          break;
 305        }
 306        case 5: {
 307          $t9_10 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 308          $t10_11 = $t9_10.$get().addr(0);
 309          $t10_11.$set(92);
 310          $t11_12 = $t9_10.$get().addr(1);
 311          $t11_12.$set(34);
 312          $t12_13 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
 313          $t13_14 = $rt.builtin.appendSlice($t0_1, $t12_13);
 314          $t7_8 = $t13_14;
 315          $block = 4; break;
 316          break;
 317        }
 318        case 6: {
 319          $t14_15 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 320          $t15_16 = $t14_15.$get().addr(0);
 321          $t15_16.$set(92);
 322          $t16_17 = $t14_15.$get().addr(1);
 323          $t16_17.$set(92);
 324          $t17_18 = $rt.builtin.sliceSlice($t14_15.$get(), undefined, undefined, undefined);
 325          $t18_19 = $rt.builtin.appendSlice($t0_1, $t17_18);
 326          $t7_8 = $t18_19;
 327          $block = 4; break;
 328          break;
 329        }
 330        case 7: {
 331          $t19_20 = ($t5_6 === 92);
 332          if ($t19_20) {
 333            $block = 6; break;
 334          }
 335          else {
 336            $block = 9; break;
 337          }
 338          break;
 339        }
 340        case 8: {
 341          $t20_21 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 342          $t21_22 = $t20_21.$get().addr(0);
 343          $t21_22.$set(92);
 344          $t22_23 = $t20_21.$get().addr(1);
 345          $t22_23.$set(110);
 346          $t23_24 = $rt.builtin.sliceSlice($t20_21.$get(), undefined, undefined, undefined);
 347          $t24_25 = $rt.builtin.appendSlice($t0_1, $t23_24);
 348          $t7_8 = $t24_25;
 349          $block = 4; break;
 350          break;
 351        }
 352        case 9: {
 353          $t25_26 = ($t5_6 === 10);
 354          if ($t25_26) {
 355            $block = 8; break;
 356          }
 357          else {
 358            $block = 11; break;
 359          }
 360          break;
 361        }
 362        case 10: {
 363          $t26_27 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 364          $t27_28 = $t26_27.$get().addr(0);
 365          $t27_28.$set(92);
 366          $t28_29 = $t26_27.$get().addr(1);
 367          $t28_29.$set(114);
 368          $t29_30 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
 369          $t30_31 = $rt.builtin.appendSlice($t0_1, $t29_30);
 370          $t7_8 = $t30_31;
 371          $block = 4; break;
 372          break;
 373        }
 374        case 11: {
 375          $t31_32 = ($t5_6 === 13);
 376          if ($t31_32) {
 377            $block = 10; break;
 378          }
 379          else {
 380            $block = 13; break;
 381          }
 382          break;
 383        }
 384        case 12: {
 385          $t32_33 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 386          $t33_34 = $t32_33.$get().addr(0);
 387          $t33_34.$set(92);
 388          $t34_35 = $t32_33.$get().addr(1);
 389          $t34_35.$set(116);
 390          $t35_36 = $rt.builtin.sliceSlice($t32_33.$get(), undefined, undefined, undefined);
 391          $t36_37 = $rt.builtin.appendSlice($t0_1, $t35_36);
 392          $t7_8 = $t36_37;
 393          $block = 4; break;
 394          break;
 395        }
 396        case 13: {
 397          $t37_38 = ($t5_6 === 9);
 398          if ($t37_38) {
 399            $block = 12; break;
 400          }
 401          else {
 402            $block = 14; break;
 403          }
 404          break;
 405        }
 406        case 14: {
 407          $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 408          $t39_40 = $t38_39.$get().addr(0);
 409          $t39_40.$set($t5_6);
 410          $t40_41 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
 411          $t41_42 = $rt.builtin.appendSlice($t0_1, $t40_41);
 412          $t7_8 = $t41_42;
 413          $block = 4; break;
 414          break;
 415        }
 416      }
 417    }
 418  }
 419  
 420  export function itoa(n) {
 421    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;
 422    let $block = 0;
 423    while (true) {
 424      switch ($block) {
 425        case 0: {
 426          $t0_1 = (n === 0n);
 427          if ($t0_1) {
 428            $block = 1; break;
 429          }
 430          else {
 431            $block = 2; break;
 432          }
 433          break;
 434        }
 435        case 1: {
 436          return '0';
 437          break;
 438        }
 439        case 2: {
 440          $t1_2 = (n < 0n);
 441          if ($t1_2) {
 442            $block = 3; break;
 443          }
 444          else {
 445            $t3_4 = n;
 446            $t4_5 = false;
 447            $block = 4; break;
 448          }
 449          break;
 450        }
 451        case 3: {
 452          $t2_3 = -n;
 453          $t3_4 = $t2_3;
 454          $t4_5 = true;
 455          $block = 4; break;
 456          break;
 457        }
 458        case 4: {
 459          $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 460          $t12_13 = $t3_4;
 461          $t13_14 = 20;
 462          $block = 7; break;
 463          break;
 464        }
 465        case 5: {
 466          $t6_7 = ($t13_14 - 1);
 467          $t7_8 = ($t12_13 % 10n);
 468          $t8_9 = BigInt.asIntN(64, 48n + $t7_8);
 469          $t9_10 = (Number($t8_9) & 0xFF);
 470          $t10_11 = $t5_6.$get().addr($t6_7);
 471          $t10_11.$set($t9_10);
 472          $t11_12 = BigInt.asIntN(64, $t12_13 / 10n);
 473          $t12_13 = $t11_12;
 474          $t13_14 = $t6_7;
 475          $block = 7; break;
 476          break;
 477        }
 478        case 6: {
 479          if ($t4_5) {
 480            $block = 8; break;
 481          }
 482          else {
 483            $t17_18 = $t13_14;
 484            $block = 9; break;
 485          }
 486          break;
 487        }
 488        case 7: {
 489          $t14_15 = ($t12_13 > 0n);
 490          if ($t14_15) {
 491            $block = 5; break;
 492          }
 493          else {
 494            $block = 6; break;
 495          }
 496          break;
 497        }
 498        case 8: {
 499          $t15_16 = ($t13_14 - 1);
 500          $t16_17 = $t5_6.$get().addr($t15_16);
 501          $t16_17.$set(45);
 502          $t17_18 = $t15_16;
 503          $block = 9; break;
 504          break;
 505        }
 506        case 9: {
 507          $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
 508          $t19_20 = $rt.builtin.bytesToString($t18_19);
 509          return $t19_20;
 510          break;
 511        }
 512      }
 513    }
 514  }
 515  
 516  export function indexOf(s, c) {
 517    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 518    let $block = 0;
 519    while (true) {
 520      switch ($block) {
 521        case 0: {
 522          $t0_1 = 0;
 523          $block = 1; break;
 524          break;
 525        }
 526        case 1: {
 527          $t1_2 = $rt.builtin.len(s);
 528          $t2_3 = ($t0_1 < $t1_2);
 529          if ($t2_3) {
 530            $block = 2; break;
 531          }
 532          else {
 533            $block = 3; break;
 534          }
 535          break;
 536        }
 537        case 2: {
 538          $t3_4 = s.addr($t0_1);
 539          $t4_5 = $t3_4.$get();
 540          $t5_6 = ($t4_5 === c);
 541          if ($t5_6) {
 542            $block = 4; break;
 543          }
 544          else {
 545            $block = 5; break;
 546          }
 547          break;
 548        }
 549        case 3: {
 550          return -1;
 551          break;
 552        }
 553        case 4: {
 554          return $t0_1;
 555          break;
 556        }
 557        case 5: {
 558          $t6_7 = ($t0_1 + 1);
 559          $t0_1 = $t6_7;
 560          $block = 1; break;
 561          break;
 562        }
 563      }
 564    }
 565  }
 566  
 567  export function NewPool() {
 568    let $t0_1, $t1_2, $t2_3;
 569    $t0_1 = { $value: { conns: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 570    $t1_2 = { $get() { return $t0_1.$get().conns; }, $set(v) { const obj = $t0_1.$get(); obj.conns = v; $t0_1.$set(obj); } };
 571    $t2_3 = $rt.builtin.makeMap('string');
 572    $t1_2.$set($t2_3);
 573    return $t0_1;
 574  }
 575  
 576  export function Conn$Close(c) {
 577    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
 578    $t0_1 = { $get() { return c.$get().closing; }, $set(v) { const obj = c.$get(); obj.closing = v; c.$set(obj); } };
 579    $t0_1.$set(true);
 580    $t1_2 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
 581    $t1_2.$set(2);
 582    $t2_3 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
 583    $t3_4 = $t2_3.$get();
 584    $t4_5 = smesh$lol$web$common$jsbridge$ws.Close($t3_4);
 585    return;
 586  }
 587  
 588  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Close', Conn$Close);
 589  export function Conn$CloseSubscription(c, id) {
 590    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
 591    $t0_1 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
 592    $t1_2 = $t0_1.$get();
 593    $t2_3 = $rt.builtin.mapDelete($t1_2, id);
 594    $t3_4 = ('["CLOSE","' + id);
 595    $t4_5 = ($t3_4 + '"]');
 596    $t5_6 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
 597    $t6_7 = $t5_6.$get();
 598    $t7_8 = smesh$lol$web$common$jsbridge$ws.Send($t6_7, $t4_5);
 599    return;
 600  }
 601  
 602  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('CloseSubscription', Conn$CloseSubscription);
 603  export function Conn$IsOpen(c) {
 604    let $t0_1, $t1_2, $t2_3;
 605    $t0_1 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
 606    $t1_2 = $t0_1.$get();
 607    $t2_3 = ($t1_2 === 1);
 608    return $t2_3;
 609  }
 610  
 611  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('IsOpen', Conn$IsOpen);
 612  export function Conn$OnReady(c, fn) {
 613    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
 614    let $block = 0;
 615    while (true) {
 616      switch ($block) {
 617        case 0: {
 618          $t0_1 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
 619          $t1_2 = $t0_1.$get();
 620          $t2_3 = ($t1_2 === 1);
 621          if ($t2_3) {
 622            $block = 1; break;
 623          }
 624          else {
 625            $block = 2; break;
 626          }
 627          break;
 628        }
 629        case 1: {
 630          $t3_4 = fn(true);
 631          return;
 632          break;
 633        }
 634        case 2: {
 635          $t4_5 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
 636          $t5_6 = $t4_5.$get();
 637          $t6_7 = ($t5_6 === 2);
 638          if ($t6_7) {
 639            $block = 3; break;
 640          }
 641          else {
 642            $block = 4; break;
 643          }
 644          break;
 645        }
 646        case 3: {
 647          $t7_8 = fn(false);
 648          return;
 649          break;
 650        }
 651        case 4: {
 652          $t8_9 = { $get() { return c.$get().onReady; }, $set(v) { const obj = c.$get(); obj.onReady = v; c.$set(obj); } };
 653          $t8_9.$set(fn);
 654          return;
 655          break;
 656        }
 657      }
 658    }
 659  }
 660  
 661  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('OnReady', Conn$OnReady);
 662  export function Conn$Publish(c, ev) {
 663    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;
 664    let $block = 0;
 665    while (true) {
 666      switch ($block) {
 667        case 0: {
 668          $t0_1 = eventJSON(ev);
 669          $t1_2 = ('["EVENT",' + $t0_1);
 670          $t2_3 = ($t1_2 + ']');
 671          $t3_4 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
 672          $t4_5 = $t3_4.$get();
 673          $t5_6 = ($t4_5 !== 1);
 674          if ($t5_6) {
 675            $block = 1; break;
 676          }
 677          else {
 678            $block = 2; break;
 679          }
 680          break;
 681        }
 682        case 1: {
 683          $t6_7 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
 684          $t7_8 = $t6_7.$get();
 685          $t8_9 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 686          $t9_10 = $t8_9.$get().addr(0);
 687          $t9_10.$set($t2_3);
 688          $t10_11 = $rt.builtin.sliceSlice($t8_9.$get(), undefined, undefined, undefined);
 689          $t11_12 = $rt.builtin.appendSlice($t7_8, $t10_11);
 690          $t12_13 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
 691          $t12_13.$set($t11_12);
 692          return;
 693          break;
 694        }
 695        case 2: {
 696          $t13_14 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
 697          $t14_15 = $t13_14.$get();
 698          $t15_16 = smesh$lol$web$common$jsbridge$ws.Send($t14_15, $t2_3);
 699          return;
 700          break;
 701        }
 702      }
 703    }
 704  }
 705  
 706  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Publish', Conn$Publish);
 707  export function Conn$Send(c, msg) {
 708    let $t0_1, $t1_2, $t2_3;
 709    $t0_1 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
 710    $t1_2 = $t0_1.$get();
 711    $t2_3 = smesh$lol$web$common$jsbridge$ws.Send($t1_2, msg);
 712    return;
 713  }
 714  
 715  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Send', Conn$Send);
 716  export function Conn$SetOnAuth(c, fn) {
 717    let $t0_1;
 718    $t0_1 = { $get() { return c.$get().onAuth; }, $set(v) { const obj = c.$get(); obj.onAuth = v; c.$set(obj); } };
 719    $t0_1.$set(fn);
 720    return;
 721  }
 722  
 723  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnAuth', Conn$SetOnAuth);
 724  export function Conn$SetOnEOSE(c, fn) {
 725    let $t0_1;
 726    $t0_1 = { $get() { return c.$get().onEOSE; }, $set(v) { const obj = c.$get(); obj.onEOSE = v; c.$set(obj); } };
 727    $t0_1.$set(fn);
 728    return;
 729  }
 730  
 731  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnEOSE', Conn$SetOnEOSE);
 732  export function Conn$SetOnEvent(c, fn) {
 733    let $t0_1;
 734    $t0_1 = { $get() { return c.$get().onEvent; }, $set(v) { const obj = c.$get(); obj.onEvent = v; c.$set(obj); } };
 735    $t0_1.$set(fn);
 736    return;
 737  }
 738  
 739  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnEvent', Conn$SetOnEvent);
 740  export function Conn$SetOnOK(c, fn) {
 741    let $t0_1;
 742    $t0_1 = { $get() { return c.$get().onOK; }, $set(v) { const obj = c.$get(); obj.onOK = v; c.$set(obj); } };
 743    $t0_1.$set(fn);
 744    return;
 745  }
 746  
 747  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnOK', Conn$SetOnOK);
 748  export function Conn$Subscribe(c, id, filters) {
 749    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;
 750    let $block = 0;
 751    while (true) {
 752      switch ($block) {
 753        case 0: {
 754          $t0_1 = { $value: { ID: '', Filters: null, OnEvent: null, OnEOSE: null, conn: null, gotEOSE: false }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 755          $t1_2 = { $get() { return $t0_1.$get().ID; }, $set(v) { const obj = $t0_1.$get(); obj.ID = v; $t0_1.$set(obj); } };
 756          $t2_3 = { $get() { return $t0_1.$get().Filters; }, $set(v) { const obj = $t0_1.$get(); obj.Filters = v; $t0_1.$set(obj); } };
 757          $t3_4 = { $get() { return $t0_1.$get().conn; }, $set(v) { const obj = $t0_1.$get(); obj.conn = v; $t0_1.$set(obj); } };
 758          $t1_2.$set(id);
 759          $t2_3.$set(filters);
 760          $t3_4.$set(c);
 761          $t4_5 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
 762          $t5_6 = $t4_5.$get();
 763          $rt.builtin.mapUpdate($t5_6, id, $t0_1);
 764          $t6_7 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
 765          $t7_8 = $t6_7.$get();
 766          $t8_9 = ($t7_8 === 1);
 767          if ($t8_9) {
 768            $block = 1; break;
 769          }
 770          else {
 771            $block = 2; break;
 772          }
 773          break;
 774        }
 775        case 1: {
 776          $t9_10 = ('["REQ","' + id);
 777          $t10_11 = ($t9_10 + '"');
 778          $t11_12 = $rt.builtin.len(filters);
 779          $t12_13 = $t10_11;
 780          $t13_14 = -1;
 781          $block = 3; break;
 782          break;
 783        }
 784        case 2: {
 785          return $t0_1;
 786          break;
 787        }
 788        case 3: {
 789          $t14_15 = ($t13_14 + 1);
 790          $t15_16 = ($t14_15 < $t11_12);
 791          if ($t15_16) {
 792            $block = 4; break;
 793          }
 794          else {
 795            $block = 5; break;
 796          }
 797          break;
 798        }
 799        case 4: {
 800          $t16_17 = filters.addr($t14_15);
 801          $t17_18 = $t16_17.$get();
 802          $t18_19 = smesh$lol$web$common$nostr.Filter$Serialize($t17_18);
 803          $t19_20 = (',' + $t18_19);
 804          $t20_21 = ($t12_13 + $t19_20);
 805          $t12_13 = $t20_21;
 806          $t13_14 = $t14_15;
 807          $block = 3; break;
 808          break;
 809        }
 810        case 5: {
 811          $t21_22 = ($t12_13 + ']');
 812          $t22_23 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
 813          $t23_24 = $t22_23.$get();
 814          $t24_25 = smesh$lol$web$common$jsbridge$ws.Send($t23_24, $t21_22);
 815          $block = 2; break;
 816          break;
 817        }
 818      }
 819    }
 820  }
 821  
 822  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Subscribe', Conn$Subscribe);
 823  export function Conn$dial(c) {
 824    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
 825    $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 826    $t0_1.$set(c);
 827    $t1_2 = $t0_1.$get();
 828    $t2_3 = $t0_1.$get();
 829    $t3_4 = { $get() { return $t2_3.$get().URL; }, $set(v) { const obj = $t2_3.$get(); obj.URL = v; $t2_3.$set(obj); } };
 830    $t4_5 = $t3_4.$get();
 831    $t5_6 = dial$1.bind(null, $t0_1);
 832    $t6_7 = dial$2.bind(null, $t0_1);
 833    $t7_8 = dial$3.bind(null, $t0_1);
 834    $t8_9 = dial$4.bind(null, $t0_1);
 835    $t9_10 = smesh$lol$web$common$jsbridge$ws.Dial($t4_5, $t5_6, $t6_7, $t7_8, $t8_9);
 836    $t10_11 = { $get() { return $t1_2.$get().wsConn; }, $set(v) { const obj = $t1_2.$get(); obj.wsConn = v; $t1_2.$set(obj); } };
 837    $t10_11.$set($t9_10);
 838    return;
 839  }
 840  
 841  function dial$1(c, connID, data) {
 842    let $t0_1, $t1_2;
 843    $t0_1 = c.$get();
 844    $t1_2 = Conn$handleMessage($t0_1, data);
 845    return;
 846  }
 847  
 848  function dial$2(c, connID) {
 849    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;
 850    let $block = 0;
 851    while (true) {
 852      switch ($block) {
 853        case 0: {
 854          $t0_1 = c.$get();
 855          $t1_2 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
 856          $t1_2.$set(1);
 857          $t2_3 = c.$get();
 858          $t3_4 = { $get() { return $t2_3.$get().onReady; }, $set(v) { const obj = $t2_3.$get(); obj.onReady = v; $t2_3.$set(obj); } };
 859          $t4_5 = $t3_4.$get();
 860          $t5_6 = ($t4_5 !== null);
 861          if ($t5_6) {
 862            $block = 1; break;
 863          }
 864          else {
 865            $block = 2; break;
 866          }
 867          break;
 868        }
 869        case 1: {
 870          $t6_7 = c.$get();
 871          $t7_8 = { $get() { return $t6_7.$get().onReady; }, $set(v) { const obj = $t6_7.$get(); obj.onReady = v; $t6_7.$set(obj); } };
 872          $t8_9 = $t7_8.$get();
 873          $t9_10 = $t8_9(true);
 874          $t10_11 = c.$get();
 875          $t11_12 = { $get() { return $t10_11.$get().onReady; }, $set(v) { const obj = $t10_11.$get(); obj.onReady = v; $t10_11.$set(obj); } };
 876          $t11_12.$set(null);
 877          $block = 2; break;
 878          break;
 879        }
 880        case 2: {
 881          $t12_13 = c.$get();
 882          $t13_14 = Conn$flushSubs($t12_13);
 883          $t14_15 = c.$get();
 884          $t15_16 = Conn$flushPublish($t14_15);
 885          return;
 886          break;
 887        }
 888      }
 889    }
 890  }
 891  
 892  function dial$3(c, connID, code, reason) {
 893    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;
 894    let $block = 0;
 895    while (true) {
 896      switch ($block) {
 897        case 0: {
 898          $t0_1 = c.$get();
 899          $t1_2 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
 900          $t1_2.$set(2);
 901          $t2_3 = c.$get();
 902          $t3_4 = { $get() { return $t2_3.$get().onReady; }, $set(v) { const obj = $t2_3.$get(); obj.onReady = v; $t2_3.$set(obj); } };
 903          $t4_5 = $t3_4.$get();
 904          $t5_6 = ($t4_5 !== null);
 905          if ($t5_6) {
 906            $block = 1; break;
 907          }
 908          else {
 909            $block = 2; break;
 910          }
 911          break;
 912        }
 913        case 1: {
 914          $t6_7 = c.$get();
 915          $t7_8 = { $get() { return $t6_7.$get().onReady; }, $set(v) { const obj = $t6_7.$get(); obj.onReady = v; $t6_7.$set(obj); } };
 916          $t8_9 = $t7_8.$get();
 917          $t9_10 = $t8_9(false);
 918          $t10_11 = c.$get();
 919          $t11_12 = { $get() { return $t10_11.$get().onReady; }, $set(v) { const obj = $t10_11.$get(); obj.onReady = v; $t10_11.$set(obj); } };
 920          $t11_12.$set(null);
 921          $block = 2; break;
 922          break;
 923        }
 924        case 2: {
 925          $t12_13 = c.$get();
 926          $t13_14 = Conn$maybeReconnect($t12_13);
 927          return;
 928          break;
 929        }
 930      }
 931    }
 932  }
 933  
 934  function dial$4(c, connID) {
 935    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;
 936    let $block = 0;
 937    while (true) {
 938      switch ($block) {
 939        case 0: {
 940          $t0_1 = c.$get();
 941          $t1_2 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
 942          $t1_2.$set(2);
 943          $t2_3 = c.$get();
 944          $t3_4 = { $get() { return $t2_3.$get().onReady; }, $set(v) { const obj = $t2_3.$get(); obj.onReady = v; $t2_3.$set(obj); } };
 945          $t4_5 = $t3_4.$get();
 946          $t5_6 = ($t4_5 !== null);
 947          if ($t5_6) {
 948            $block = 1; break;
 949          }
 950          else {
 951            $block = 2; break;
 952          }
 953          break;
 954        }
 955        case 1: {
 956          $t6_7 = c.$get();
 957          $t7_8 = { $get() { return $t6_7.$get().onReady; }, $set(v) { const obj = $t6_7.$get(); obj.onReady = v; $t6_7.$set(obj); } };
 958          $t8_9 = $t7_8.$get();
 959          $t9_10 = $t8_9(false);
 960          $t10_11 = c.$get();
 961          $t11_12 = { $get() { return $t10_11.$get().onReady; }, $set(v) { const obj = $t10_11.$get(); obj.onReady = v; $t10_11.$set(obj); } };
 962          $t11_12.$set(null);
 963          $block = 2; break;
 964          break;
 965        }
 966        case 2: {
 967          $t12_13 = c.$get();
 968          $t13_14 = Conn$maybeReconnect($t12_13);
 969          return;
 970          break;
 971        }
 972      }
 973    }
 974  }
 975  
 976  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('dial', Conn$dial);
 977  export function Conn$flushPublish(c) {
 978    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;
 979    let $block = 0;
 980    while (true) {
 981      switch ($block) {
 982        case 0: {
 983          $t0_1 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
 984          $t1_2 = $t0_1.$get();
 985          $t2_3 = $rt.builtin.len($t1_2);
 986          $t3_4 = -1;
 987          $block = 1; break;
 988          break;
 989        }
 990        case 1: {
 991          $t4_5 = ($t3_4 + 1);
 992          $t5_6 = ($t4_5 < $t2_3);
 993          if ($t5_6) {
 994            $block = 2; break;
 995          }
 996          else {
 997            $block = 3; break;
 998          }
 999          break;
1000        }
1001        case 2: {
1002          $t6_7 = $t1_2.addr($t4_5);
1003          $t7_8 = $t6_7.$get();
1004          $t8_9 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
1005          $t9_10 = $t8_9.$get();
1006          $t10_11 = smesh$lol$web$common$jsbridge$ws.Send($t9_10, $t7_8);
1007          $t3_4 = $t4_5;
1008          $block = 1; break;
1009          break;
1010        }
1011        case 3: {
1012          $t11_12 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
1013          $t11_12.$set(null);
1014          return;
1015          break;
1016        }
1017      }
1018    }
1019  }
1020  
1021  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('flushPublish', Conn$flushPublish);
1022  export function Conn$flushSubs(c) {
1023    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;
1024    let $block = 0;
1025    while (true) {
1026      switch ($block) {
1027        case 0: {
1028          $t0_1 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
1029          $t1_2 = $t0_1.$get();
1030          $t2_3 = { $entries: [...$t1_2.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]; } };
1031          $block = 1; break;
1032          break;
1033        }
1034        case 1: {
1035          $t3_4 = $t2_3.next();
1036          $t4_5 = $t3_4[0];
1037          if ($t4_5) {
1038            $block = 2; break;
1039          }
1040          else {
1041            $block = 3; break;
1042          }
1043          break;
1044        }
1045        case 2: {
1046          $t5_6 = $t3_4[2];
1047          $t6_7 = { $get() { return $t5_6.$get().ID; }, $set(v) { const obj = $t5_6.$get(); obj.ID = v; $t5_6.$set(obj); } };
1048          $t7_8 = $t6_7.$get();
1049          $t8_9 = ('["REQ","' + $t7_8);
1050          $t9_10 = ($t8_9 + '"');
1051          $t10_11 = { $get() { return $t5_6.$get().Filters; }, $set(v) { const obj = $t5_6.$get(); obj.Filters = v; $t5_6.$set(obj); } };
1052          $t11_12 = $t10_11.$get();
1053          $t12_13 = $rt.builtin.len($t11_12);
1054          $t13_14 = $t9_10;
1055          $t14_15 = -1;
1056          $block = 4; break;
1057          break;
1058        }
1059        case 3: {
1060          return;
1061          break;
1062        }
1063        case 4: {
1064          $t15_16 = ($t14_15 + 1);
1065          $t16_17 = ($t15_16 < $t12_13);
1066          if ($t16_17) {
1067            $block = 5; break;
1068          }
1069          else {
1070            $block = 6; break;
1071          }
1072          break;
1073        }
1074        case 5: {
1075          $t17_18 = $t11_12.addr($t15_16);
1076          $t18_19 = $t17_18.$get();
1077          $t19_20 = smesh$lol$web$common$nostr.Filter$Serialize($t18_19);
1078          $t20_21 = (',' + $t19_20);
1079          $t21_22 = ($t13_14 + $t20_21);
1080          $t13_14 = $t21_22;
1081          $t14_15 = $t15_16;
1082          $block = 4; break;
1083          break;
1084        }
1085        case 6: {
1086          $t22_23 = ($t13_14 + ']');
1087          $t23_24 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
1088          $t24_25 = $t23_24.$get();
1089          $t25_26 = smesh$lol$web$common$jsbridge$ws.Send($t24_25, $t22_23);
1090          $block = 1; break;
1091          break;
1092        }
1093      }
1094    }
1095  }
1096  
1097  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('flushSubs', Conn$flushSubs);
1098  export function Conn$handleMessage(c, msg) {
1099    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;
1100    let $block = 0;
1101    while (true) {
1102      switch ($block) {
1103        case 0: {
1104          $t0_1 = smesh$lol$web$common$nostr.ParseRelayMessage(msg);
1105          $t1_2 = $t0_1[0];
1106          $t2_3 = $t0_1[1];
1107          $t3_4 = $t0_1[2];
1108          $t4_5 = ($t1_2 === 'EVENT');
1109          if ($t4_5) {
1110            $block = 2; break;
1111          }
1112          else {
1113            $block = 4; break;
1114          }
1115          break;
1116        }
1117        case 1: {
1118          return;
1119          break;
1120        }
1121        case 2: {
1122          $t5_6 = smesh$lol$web$common$nostr.ParseEvent($t3_4);
1123          $t6_7 = ($t5_6 === null);
1124          if ($t6_7) {
1125            $block = 5; break;
1126          }
1127          else {
1128            $block = 6; break;
1129          }
1130          break;
1131        }
1132        case 3: {
1133          $t7_8 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
1134          $t8_9 = $t7_8.$get();
1135          { const $r = $rt.builtin.mapLookup($t8_9, $t2_3); $t9_10 = [$r.value, $r.ok]; }
1136          $t10_11 = $t9_10[0];
1137          $t11_12 = $t9_10[1];
1138          if ($t11_12) {
1139            $block = 13; break;
1140          }
1141          else {
1142            $block = 14; break;
1143          }
1144          break;
1145        }
1146        case 4: {
1147          $t12_13 = ($t1_2 === 'EOSE');
1148          if ($t12_13) {
1149            $block = 3; break;
1150          }
1151          else {
1152            $block = 12; break;
1153          }
1154          break;
1155        }
1156        case 5: {
1157          return;
1158          break;
1159        }
1160        case 6: {
1161          $t13_14 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
1162          $t14_15 = $t13_14.$get();
1163          { const $r = $rt.builtin.mapLookup($t14_15, $t2_3); $t15_16 = [$r.value, $r.ok]; }
1164          $t16_17 = $t15_16[0];
1165          $t17_18 = $t15_16[1];
1166          if ($t17_18) {
1167            $block = 7; break;
1168          }
1169          else {
1170            $block = 8; break;
1171          }
1172          break;
1173        }
1174        case 7: {
1175          $t18_19 = { $get() { return $t16_17.$get().OnEvent; }, $set(v) { const obj = $t16_17.$get(); obj.OnEvent = v; $t16_17.$set(obj); } };
1176          $t19_20 = $t18_19.$get();
1177          $t20_21 = ($t19_20 !== null);
1178          if ($t20_21) {
1179            $block = 9; break;
1180          }
1181          else {
1182            $block = 8; break;
1183          }
1184          break;
1185        }
1186        case 8: {
1187          $t21_22 = { $get() { return c.$get().onEvent; }, $set(v) { const obj = c.$get(); obj.onEvent = v; c.$set(obj); } };
1188          $t22_23 = $t21_22.$get();
1189          $t23_24 = ($t22_23 !== null);
1190          if ($t23_24) {
1191            $block = 10; break;
1192          }
1193          else {
1194            $block = 1; break;
1195          }
1196          break;
1197        }
1198        case 9: {
1199          $t24_25 = { $get() { return $t16_17.$get().OnEvent; }, $set(v) { const obj = $t16_17.$get(); obj.OnEvent = v; $t16_17.$set(obj); } };
1200          $t25_26 = $t24_25.$get();
1201          $t26_27 = $t25_26($t5_6);
1202          $block = 8; break;
1203          break;
1204        }
1205        case 10: {
1206          $t27_28 = { $get() { return c.$get().onEvent; }, $set(v) { const obj = c.$get(); obj.onEvent = v; c.$set(obj); } };
1207          $t28_29 = $t27_28.$get();
1208          $t29_30 = $t28_29($t2_3, $t5_6);
1209          $block = 1; break;
1210          break;
1211        }
1212        case 11: {
1213          $t30_31 = $rt.builtin.len($t3_4);
1214          $t31_32 = ($t30_31 > 0);
1215          if ($t31_32) {
1216            $block = 19; break;
1217          }
1218          else {
1219            $t53_54 = false;
1220            $block = 20; break;
1221          }
1222          break;
1223        }
1224        case 12: {
1225          $t32_33 = ($t1_2 === 'OK');
1226          if ($t32_33) {
1227            $block = 11; break;
1228          }
1229          else {
1230            $block = 18; break;
1231          }
1232          break;
1233        }
1234        case 13: {
1235          $t33_34 = { $get() { return $t10_11.$get().gotEOSE; }, $set(v) { const obj = $t10_11.$get(); obj.gotEOSE = v; $t10_11.$set(obj); } };
1236          $t33_34.$set(true);
1237          $t34_35 = { $get() { return $t10_11.$get().OnEOSE; }, $set(v) { const obj = $t10_11.$get(); obj.OnEOSE = v; $t10_11.$set(obj); } };
1238          $t35_36 = $t34_35.$get();
1239          $t36_37 = ($t35_36 !== null);
1240          if ($t36_37) {
1241            $block = 15; break;
1242          }
1243          else {
1244            $block = 14; break;
1245          }
1246          break;
1247        }
1248        case 14: {
1249          $t37_38 = { $get() { return c.$get().onEOSE; }, $set(v) { const obj = c.$get(); obj.onEOSE = v; c.$set(obj); } };
1250          $t38_39 = $t37_38.$get();
1251          $t39_40 = ($t38_39 !== null);
1252          if ($t39_40) {
1253            $block = 16; break;
1254          }
1255          else {
1256            $block = 1; break;
1257          }
1258          break;
1259        }
1260        case 15: {
1261          $t40_41 = { $get() { return $t10_11.$get().OnEOSE; }, $set(v) { const obj = $t10_11.$get(); obj.OnEOSE = v; $t10_11.$set(obj); } };
1262          $t41_42 = $t40_41.$get();
1263          $t42_43 = $t41_42();
1264          $block = 14; break;
1265          break;
1266        }
1267        case 16: {
1268          $t43_44 = { $get() { return c.$get().onEOSE; }, $set(v) { const obj = c.$get(); obj.onEOSE = v; c.$set(obj); } };
1269          $t44_45 = $t43_44.$get();
1270          $t45_46 = $t44_45($t2_3);
1271          $block = 1; break;
1272          break;
1273        }
1274        case 17: {
1275          $t46_47 = { $get() { return c.$get().onAuth; }, $set(v) { const obj = c.$get(); obj.onAuth = v; c.$set(obj); } };
1276          $t47_48 = $t46_47.$get();
1277          $t48_49 = ($t47_48 !== null);
1278          if ($t48_49) {
1279            $block = 27; break;
1280          }
1281          else {
1282            $block = 1; break;
1283          }
1284          break;
1285        }
1286        case 18: {
1287          $t49_50 = ($t1_2 === 'AUTH');
1288          if ($t49_50) {
1289            $block = 17; break;
1290          }
1291          else {
1292            $block = 26; break;
1293          }
1294          break;
1295        }
1296        case 19: {
1297          $t50_51 = $t3_4.addr(0);
1298          $t51_52 = $t50_51.$get();
1299          $t52_53 = ($t51_52 === 116);
1300          $t53_54 = $t52_53;
1301          $block = 20; break;
1302          break;
1303        }
1304        case 20: {
1305          $t54_55 = indexOf($t3_4, 58);
1306          $t55_56 = ($t54_55 >= 0);
1307          if ($t55_56) {
1308            $block = 23; break;
1309          }
1310          else {
1311            $t58_59 = '';
1312            $block = 22; break;
1313          }
1314          break;
1315        }
1316        case 21: {
1317          $t56_57 = ($t54_55 + 1);
1318          $t57_58 = $rt.builtin.stringSlice($t3_4, $t56_57, undefined);
1319          $t58_59 = $t57_58;
1320          $block = 22; break;
1321          break;
1322        }
1323        case 22: {
1324          $t59_60 = { $get() { return c.$get().onOK; }, $set(v) { const obj = c.$get(); obj.onOK = v; c.$set(obj); } };
1325          $t60_61 = $t59_60.$get();
1326          $t61_62 = ($t60_61 !== null);
1327          if ($t61_62) {
1328            $block = 24; break;
1329          }
1330          else {
1331            $block = 1; break;
1332          }
1333          break;
1334        }
1335        case 23: {
1336          $t62_63 = ($t54_55 + 1);
1337          $t63_64 = $rt.builtin.len($t3_4);
1338          $t64_65 = ($t62_63 < $t63_64);
1339          if ($t64_65) {
1340            $block = 21; break;
1341          }
1342          else {
1343            $t58_59 = '';
1344            $block = 22; break;
1345          }
1346          break;
1347        }
1348        case 24: {
1349          $t65_66 = { $get() { return c.$get().onOK; }, $set(v) { const obj = c.$get(); obj.onOK = v; c.$set(obj); } };
1350          $t66_67 = $t65_66.$get();
1351          $t67_68 = $t66_67($t2_3, $t53_54, $t58_59);
1352          $block = 1; break;
1353          break;
1354        }
1355        case 25: {
1356          $block = 1; break;
1357          break;
1358        }
1359        case 26: {
1360          $t68_69 = ($t1_2 === 'NOTICE');
1361          if ($t68_69) {
1362            $block = 25; break;
1363          }
1364          else {
1365            $block = 1; break;
1366          }
1367          break;
1368        }
1369        case 27: {
1370          $t69_70 = { $get() { return c.$get().onAuth; }, $set(v) { const obj = c.$get(); obj.onAuth = v; c.$set(obj); } };
1371          $t70_71 = $t69_70.$get();
1372          $t71_72 = $t70_71($t3_4);
1373          $block = 1; break;
1374          break;
1375        }
1376      }
1377    }
1378  }
1379  
1380  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('handleMessage', Conn$handleMessage);
1381  export function Conn$maybeReconnect(c) {
1382    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;
1383    let $block = 0;
1384    while (true) {
1385      switch ($block) {
1386        case 0: {
1387          $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1388          $t0_1.$set(c);
1389          $t1_2 = $t0_1.$get();
1390          $t2_3 = { $get() { return $t1_2.$get().closing; }, $set(v) { const obj = $t1_2.$get(); obj.closing = v; $t1_2.$set(obj); } };
1391          $t3_4 = $t2_3.$get();
1392          if ($t3_4) {
1393            $block = 1; break;
1394          }
1395          else {
1396            $block = 4; break;
1397          }
1398          break;
1399        }
1400        case 1: {
1401          return;
1402          break;
1403        }
1404        case 2: {
1405          $t4_5 = $t0_1.$get();
1406          $t5_6 = { $get() { return $t4_5.$get().state; }, $set(v) { const obj = $t4_5.$get(); obj.state = v; $t4_5.$set(obj); } };
1407          $t5_6.$set(0);
1408          $t6_7 = $t0_1.$get();
1409          $t7_8 = { $get() { return $t6_7.$get().ScheduleReconnect; }, $set(v) { const obj = $t6_7.$get(); obj.ScheduleReconnect = v; $t6_7.$set(obj); } };
1410          $t8_9 = $t7_8.$get();
1411          $t9_10 = maybeReconnect$1.bind(null, $t0_1);
1412          $t10_11 = $t8_9($t9_10);
1413          return;
1414          break;
1415        }
1416        case 3: {
1417          $t11_12 = $t0_1.$get();
1418          $t12_13 = { $get() { return $t11_12.$get().ScheduleReconnect; }, $set(v) { const obj = $t11_12.$get(); obj.ScheduleReconnect = v; $t11_12.$set(obj); } };
1419          $t13_14 = $t12_13.$get();
1420          $t14_15 = ($t13_14 === null);
1421          if ($t14_15) {
1422            $block = 1; break;
1423          }
1424          else {
1425            $block = 2; break;
1426          }
1427          break;
1428        }
1429        case 4: {
1430          $t15_16 = $t0_1.$get();
1431          $t16_17 = { $get() { return $t15_16.$get().subs; }, $set(v) { const obj = $t15_16.$get(); obj.subs = v; $t15_16.$set(obj); } };
1432          $t17_18 = $t16_17.$get();
1433          $t18_19 = $rt.builtin.len($t17_18);
1434          $t19_20 = ($t18_19 === 0);
1435          if ($t19_20) {
1436            $block = 1; break;
1437          }
1438          else {
1439            $block = 3; break;
1440          }
1441          break;
1442        }
1443      }
1444    }
1445  }
1446  
1447  function maybeReconnect$1(c) {
1448    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
1449    let $block = 0;
1450    while (true) {
1451      switch ($block) {
1452        case 0: {
1453          $t0_1 = c.$get();
1454          $t1_2 = { $get() { return $t0_1.$get().closing; }, $set(v) { const obj = $t0_1.$get(); obj.closing = v; $t0_1.$set(obj); } };
1455          $t2_3 = $t1_2.$get();
1456          if ($t2_3) {
1457            $block = 1; break;
1458          }
1459          else {
1460            $block = 2; break;
1461          }
1462          break;
1463        }
1464        case 1: {
1465          return;
1466          break;
1467        }
1468        case 2: {
1469          $t3_4 = c.$get();
1470          $t4_5 = Conn$dial($t3_4);
1471          return;
1472          break;
1473        }
1474      }
1475    }
1476  }
1477  
1478  $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('maybeReconnect', Conn$maybeReconnect);
1479  export function Pool$CloseAll(p) {
1480    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
1481    let $block = 0;
1482    while (true) {
1483      switch ($block) {
1484        case 0: {
1485          $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1486          $t1_2 = $t0_1.$get();
1487          $t2_3 = { $entries: [...$t1_2.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]; } };
1488          $block = 1; break;
1489          break;
1490        }
1491        case 1: {
1492          $t3_4 = $t2_3.next();
1493          $t4_5 = $t3_4[0];
1494          if ($t4_5) {
1495            $block = 2; break;
1496          }
1497          else {
1498            $block = 3; break;
1499          }
1500          break;
1501        }
1502        case 2: {
1503          $t5_6 = $t3_4[1];
1504          $t6_7 = $t3_4[2];
1505          $t7_8 = Conn$Close($t6_7);
1506          $t8_9 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1507          $t9_10 = $t8_9.$get();
1508          $t10_11 = $rt.builtin.mapDelete($t9_10, $t5_6);
1509          $block = 1; break;
1510          break;
1511        }
1512        case 3: {
1513          return;
1514          break;
1515        }
1516      }
1517    }
1518  }
1519  
1520  $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('CloseAll', Pool$CloseAll);
1521  export function Pool$Connect(p, url) {
1522    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;
1523    let $block = 0;
1524    while (true) {
1525      switch ($block) {
1526        case 0: {
1527          $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1528          $t1_2 = $t0_1.$get();
1529          { const $r = $rt.builtin.mapLookup($t1_2, url); $t2_3 = [$r.value, $r.ok]; }
1530          $t3_4 = $t2_3[0];
1531          $t4_5 = $t2_3[1];
1532          if ($t4_5) {
1533            $block = 3; break;
1534          }
1535          else {
1536            $block = 2; break;
1537          }
1538          break;
1539        }
1540        case 1: {
1541          return $t3_4;
1542          break;
1543        }
1544        case 2: {
1545          $t5_6 = Pool$evictClosed(p);
1546          $t6_7 = Dial(url);
1547          $t7_8 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1548          $t8_9 = $t7_8.$get();
1549          $rt.builtin.mapUpdate($t8_9, url, $t6_7);
1550          return $t6_7;
1551          break;
1552        }
1553        case 3: {
1554          $t9_10 = { $get() { return $t3_4.$get().state; }, $set(v) { const obj = $t3_4.$get(); obj.state = v; $t3_4.$set(obj); } };
1555          $t10_11 = $t9_10.$get();
1556          $t11_12 = ($t10_11 !== 2);
1557          if ($t11_12) {
1558            $block = 1; break;
1559          }
1560          else {
1561            $block = 2; break;
1562          }
1563          break;
1564        }
1565      }
1566    }
1567  }
1568  
1569  $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('Connect', Pool$Connect);
1570  export function Pool$Disconnect(p, url) {
1571    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
1572    let $block = 0;
1573    while (true) {
1574      switch ($block) {
1575        case 0: {
1576          $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1577          $t1_2 = $t0_1.$get();
1578          { const $r = $rt.builtin.mapLookup($t1_2, url); $t2_3 = [$r.value, $r.ok]; }
1579          $t3_4 = $t2_3[0];
1580          $t4_5 = $t2_3[1];
1581          if ($t4_5) {
1582            $block = 1; break;
1583          }
1584          else {
1585            $block = 2; break;
1586          }
1587          break;
1588        }
1589        case 1: {
1590          $t5_6 = Conn$Close($t3_4);
1591          $t6_7 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1592          $t7_8 = $t6_7.$get();
1593          $t8_9 = $rt.builtin.mapDelete($t7_8, url);
1594          $block = 2; break;
1595          break;
1596        }
1597        case 2: {
1598          return;
1599          break;
1600        }
1601      }
1602    }
1603  }
1604  
1605  $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('Disconnect', Pool$Disconnect);
1606  export function Pool$Get(p, url) {
1607    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1608    let $block = 0;
1609    while (true) {
1610      switch ($block) {
1611        case 0: {
1612          $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1613          $t1_2 = $t0_1.$get();
1614          { const $r = $rt.builtin.mapLookup($t1_2, url); $t2_3 = [$r.value, $r.ok]; }
1615          $t3_4 = $t2_3[0];
1616          $t4_5 = $t2_3[1];
1617          if ($t4_5) {
1618            $block = 3; break;
1619          }
1620          else {
1621            $block = 1; break;
1622          }
1623          break;
1624        }
1625        case 1: {
1626          return null;
1627          break;
1628        }
1629        case 2: {
1630          return $t3_4;
1631          break;
1632        }
1633        case 3: {
1634          $t5_6 = Conn$IsOpen($t3_4);
1635          if ($t5_6) {
1636            $block = 2; break;
1637          }
1638          else {
1639            $block = 1; break;
1640          }
1641          break;
1642        }
1643      }
1644    }
1645  }
1646  
1647  $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('Get', Pool$Get);
1648  export function Pool$URLs(p) {
1649    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;
1650    let $block = 0;
1651    while (true) {
1652      switch ($block) {
1653        case 0: {
1654          $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1655          $t1_2 = $t0_1.$get();
1656          $t2_3 = { $entries: [...$t1_2.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]; } };
1657          $t3_4 = null;
1658          $block = 1; break;
1659          break;
1660        }
1661        case 1: {
1662          $t4_5 = $t2_3.next();
1663          $t5_6 = $t4_5[0];
1664          if ($t5_6) {
1665            $block = 2; break;
1666          }
1667          else {
1668            $block = 3; break;
1669          }
1670          break;
1671        }
1672        case 2: {
1673          $t6_7 = $t4_5[1];
1674          $t7_8 = $t4_5[2];
1675          $t8_9 = Conn$IsOpen($t7_8);
1676          if ($t8_9) {
1677            $block = 4; break;
1678          }
1679          else {
1680            $t3_4 = $t3_4;
1681            $block = 1; break;
1682          }
1683          break;
1684        }
1685        case 3: {
1686          return $t3_4;
1687          break;
1688        }
1689        case 4: {
1690          $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1691          $t10_11 = $t9_10.$get().addr(0);
1692          $t10_11.$set($t6_7);
1693          $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
1694          $t12_13 = $rt.builtin.appendSlice($t3_4, $t11_12);
1695          $t3_4 = $t12_13;
1696          $block = 1; break;
1697          break;
1698        }
1699      }
1700    }
1701  }
1702  
1703  $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('URLs', Pool$URLs);
1704  export function Pool$evictClosed(p) {
1705    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;
1706    let $block = 0;
1707    while (true) {
1708      switch ($block) {
1709        case 0: {
1710          $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1711          $t1_2 = $t0_1.$get();
1712          $t2_3 = { $entries: [...$t1_2.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]; } };
1713          $block = 1; break;
1714          break;
1715        }
1716        case 1: {
1717          $t3_4 = $t2_3.next();
1718          $t4_5 = $t3_4[0];
1719          if ($t4_5) {
1720            $block = 2; break;
1721          }
1722          else {
1723            $block = 3; break;
1724          }
1725          break;
1726        }
1727        case 2: {
1728          $t5_6 = $t3_4[1];
1729          $t6_7 = $t3_4[2];
1730          $t7_8 = { $get() { return $t6_7.$get().state; }, $set(v) { const obj = $t6_7.$get(); obj.state = v; $t6_7.$set(obj); } };
1731          $t8_9 = $t7_8.$get();
1732          $t9_10 = ($t8_9 === 2);
1733          if ($t9_10) {
1734            $block = 4; break;
1735          }
1736          else {
1737            $block = 1; break;
1738          }
1739          break;
1740        }
1741        case 3: {
1742          return;
1743          break;
1744        }
1745        case 4: {
1746          $t10_11 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1747          $t11_12 = $t10_11.$get();
1748          $t12_13 = $rt.builtin.mapDelete($t11_12, $t5_6);
1749          $block = 1; break;
1750          break;
1751        }
1752      }
1753    }
1754  }
1755  
1756  $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('evictClosed', Pool$evictClosed);
1757  export function Sub$Close(s) {
1758    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
1759    let $block = 0;
1760    while (true) {
1761      switch ($block) {
1762        case 0: {
1763          $t0_1 = { $get() { return s.$get().conn; }, $set(v) { const obj = s.$get(); obj.conn = v; s.$set(obj); } };
1764          $t1_2 = $t0_1.$get();
1765          $t2_3 = ($t1_2 !== null);
1766          if ($t2_3) {
1767            $block = 1; break;
1768          }
1769          else {
1770            $block = 2; break;
1771          }
1772          break;
1773        }
1774        case 1: {
1775          $t3_4 = { $get() { return s.$get().conn; }, $set(v) { const obj = s.$get(); obj.conn = v; s.$set(obj); } };
1776          $t4_5 = $t3_4.$get();
1777          $t5_6 = { $get() { return s.$get().ID; }, $set(v) { const obj = s.$get(); obj.ID = v; s.$set(obj); } };
1778          $t6_7 = $t5_6.$get();
1779          $t7_8 = Conn$CloseSubscription($t4_5, $t6_7);
1780          $block = 2; break;
1781          break;
1782        }
1783        case 2: {
1784          return;
1785          break;
1786        }
1787      }
1788    }
1789  }
1790  
1791  $rt.types.getType('smesh.lol/web/common/relay.Sub')?.methods?.set('Close', Sub$Close);
1792  export function Sub$GotEOSE(s) {
1793    let $t0_1, $t1_2;
1794    $t0_1 = { $get() { return s.$get().gotEOSE; }, $set(v) { const obj = s.$get(); obj.gotEOSE = v; s.$set(obj); } };
1795    $t1_2 = $t0_1.$get();
1796    return $t1_2;
1797  }
1798  
1799  $rt.types.getType('smesh.lol/web/common/relay.Sub')?.methods?.set('GotEOSE', Sub$GotEOSE);
1800