common_helpers.mjs raw

   1  // Package common/helpers
   2  // Generated by TinyJS — TinyGo JavaScript backend
   3  
   4  import * as $rt from './$runtime/index.mjs';
   5  
   6  // Package-level variables
   7  
   8  export function init() {
   9    return;
  10  }
  11  
  12  export function JsonString(s) {
  13    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;
  14    let $block = 0;
  15    while (true) {
  16      switch ($block) {
  17        case 0: {
  18          $t0_1 = '"';
  19          $t1_2 = 0;
  20          $t2_3 = 0;
  21          $block = 1; break;
  22          break;
  23        }
  24        case 1: {
  25          $t3_4 = $rt.builtin.len(s);
  26          $t4_5 = ($t2_3 < $t3_4);
  27          if ($t4_5) {
  28            $block = 2; break;
  29          }
  30          else {
  31            $block = 4; break;
  32          }
  33          break;
  34        }
  35        case 2: {
  36          $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
  37          $t5_6 = $rt.builtin.stringByteAt(s, $t2_3);
  38          $t6_7 = ($t5_6 === 34);
  39          if ($t6_7) {
  40            $block = 6; break;
  41          }
  42          else {
  43            $block = 8; break;
  44          }
  45          break;
  46        }
  47        case 3: {
  48          $t9_10 = ($t2_3 + 1);
  49          $t0_1 = $t7_8;
  50          $t1_2 = $t8_9;
  51          $t2_3 = $t9_10;
  52          $block = 1; break;
  53          break;
  54        }
  55        case 4: {
  56          $t10_11 = $rt.builtin.stringSlice(s, $t1_2, undefined);
  57          $t11_12 = ($t0_1 + $t10_11);
  58          $t12_13 = ($t11_12 + '"');
  59          return $t12_13;
  60          break;
  61        }
  62        case 5: {
  63          $t14_15 = $rt.builtin.stringSlice(s, $t1_2, $t2_3);
  64          $t15_16 = ($t14_15 + $t13_14);
  65          $t16_17 = ($t0_1 + $t15_16);
  66          $t17_18 = ($t2_3 + 1);
  67          $t7_8 = $t16_17;
  68          $t8_9 = $t17_18;
  69          $block = 3; break;
  70          break;
  71        }
  72        case 6: {
  73          $t13_14 = '\\"';
  74          $block = 5; break;
  75          break;
  76        }
  77        case 7: {
  78          $t13_14 = '\\\\';
  79          $block = 5; break;
  80          break;
  81        }
  82        case 8: {
  83          $t18_19 = ($t5_6 === 92);
  84          if ($t18_19) {
  85            $block = 7; break;
  86          }
  87          else {
  88            $block = 10; break;
  89          }
  90          break;
  91        }
  92        case 9: {
  93          $t13_14 = '\\n';
  94          $block = 5; break;
  95          break;
  96        }
  97        case 10: {
  98          $t19_20 = ($t5_6 === 10);
  99          if ($t19_20) {
 100            $block = 9; break;
 101          }
 102          else {
 103            $block = 12; break;
 104          }
 105          break;
 106        }
 107        case 11: {
 108          $t13_14 = '\\r';
 109          $block = 5; break;
 110          break;
 111        }
 112        case 12: {
 113          $t20_21 = ($t5_6 === 13);
 114          if ($t20_21) {
 115            $block = 11; break;
 116          }
 117          else {
 118            $block = 14; break;
 119          }
 120          break;
 121        }
 122        case 13: {
 123          $t13_14 = '\\t';
 124          $block = 5; break;
 125          break;
 126        }
 127        case 14: {
 128          $t21_22 = ($t5_6 === 9);
 129          if ($t21_22) {
 130            $block = 13; break;
 131          }
 132          else {
 133            $block = 16; break;
 134          }
 135          break;
 136        }
 137        case 15: {
 138          $t13_14 = '\\b';
 139          $block = 5; break;
 140          break;
 141        }
 142        case 16: {
 143          $t22_23 = ($t5_6 === 8);
 144          if ($t22_23) {
 145            $block = 15; break;
 146          }
 147          else {
 148            $block = 18; break;
 149          }
 150          break;
 151        }
 152        case 17: {
 153          $t13_14 = '\\f';
 154          $block = 5; break;
 155          break;
 156        }
 157        case 18: {
 158          $t23_24 = ($t5_6 === 12);
 159          if ($t23_24) {
 160            $block = 17; break;
 161          }
 162          else {
 163            $block = 19; break;
 164          }
 165          break;
 166        }
 167        case 19: {
 168          $t24_25 = ($t5_6 < 32);
 169          if ($t24_25) {
 170            $block = 20; break;
 171          }
 172          else {
 173            $t7_8 = $t0_1;
 174            $t8_9 = $t1_2;
 175            $block = 3; break;
 176          }
 177          break;
 178        }
 179        case 20: {
 180          $t25_26 = (($t5_6 & 0xFF) >> 4);
 181          $rt.runtime.boundsCheck($t25_26, $rt.builtin.byteLen('0123456789abcdef'));
 182          $t26_27 = $rt.builtin.stringByteAt('0123456789abcdef', $t25_26);
 183          $t27_28 = String.fromCodePoint($t26_27);
 184          $t28_29 = ('\\u00' + $t27_28);
 185          $t29_30 = ($t5_6 & 15);
 186          $rt.runtime.boundsCheck($t29_30, $rt.builtin.byteLen('0123456789abcdef'));
 187          $t30_31 = $rt.builtin.stringByteAt('0123456789abcdef', $t29_30);
 188          $t31_32 = String.fromCodePoint($t30_31);
 189          $t32_33 = ($t28_29 + $t31_32);
 190          $t13_14 = $t32_33;
 191          $block = 5; break;
 192          break;
 193        }
 194      }
 195    }
 196  }
 197  
 198  export function JsonGetString(s, key) {
 199    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;
 200    let $block = 0;
 201    while (true) {
 202      switch ($block) {
 203        case 0: {
 204          $t0_1 = ('"' + key);
 205          $t1_2 = ($t0_1 + '"');
 206          $t2_3 = $rt.builtin.len($t1_2);
 207          $t3_4 = 0;
 208          $block = 1; break;
 209          break;
 210        }
 211        case 1: {
 212          $t4_5 = $rt.builtin.len(s);
 213          $t5_6 = ($t4_5 - $t2_3);
 214          $t6_7 = ($t3_4 <= $t5_6);
 215          if ($t6_7) {
 216            $block = 2; break;
 217          }
 218          else {
 219            $block = 4; break;
 220          }
 221          break;
 222        }
 223        case 2: {
 224          $t7_8 = ($t3_4 + $t2_3);
 225          $t8_9 = $rt.builtin.stringSlice(s, $t3_4, $t7_8);
 226          $t9_10 = ($t8_9 === $t1_2);
 227          if ($t9_10) {
 228            $block = 5; break;
 229          }
 230          else {
 231            $block = 3; break;
 232          }
 233          break;
 234        }
 235        case 3: {
 236          $t10_11 = ($t3_4 + 1);
 237          $t3_4 = $t10_11;
 238          $block = 1; break;
 239          break;
 240        }
 241        case 4: {
 242          return '';
 243          break;
 244        }
 245        case 5: {
 246          $t11_12 = ($t3_4 + $t2_3);
 247          $t15_16 = $t11_12;
 248          $block = 8; break;
 249          break;
 250        }
 251        case 6: {
 252          $t12_13 = ($t15_16 + 1);
 253          $t15_16 = $t12_13;
 254          $block = 8; break;
 255          break;
 256        }
 257        case 7: {
 258          $t13_14 = $rt.builtin.len(s);
 259          $t14_15 = ($t15_16 >= $t13_14);
 260          if ($t14_15) {
 261            $block = 3; break;
 262          }
 263          else {
 264            $block = 14; break;
 265          }
 266          break;
 267        }
 268        case 8: {
 269          $t16_17 = $rt.builtin.len(s);
 270          $t17_18 = ($t15_16 < $t16_17);
 271          if ($t17_18) {
 272            $block = 9; break;
 273          }
 274          else {
 275            $block = 7; break;
 276          }
 277          break;
 278        }
 279        case 9: {
 280          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
 281          $t18_19 = $rt.builtin.stringByteAt(s, $t15_16);
 282          $t19_20 = ($t18_19 === 32);
 283          if ($t19_20) {
 284            $block = 6; break;
 285          }
 286          else {
 287            $block = 12; break;
 288          }
 289          break;
 290        }
 291        case 10: {
 292          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
 293          $t20_21 = $rt.builtin.stringByteAt(s, $t15_16);
 294          $t21_22 = ($t20_21 === 13);
 295          if ($t21_22) {
 296            $block = 6; break;
 297          }
 298          else {
 299            $block = 7; break;
 300          }
 301          break;
 302        }
 303        case 11: {
 304          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
 305          $t22_23 = $rt.builtin.stringByteAt(s, $t15_16);
 306          $t23_24 = ($t22_23 === 10);
 307          if ($t23_24) {
 308            $block = 6; break;
 309          }
 310          else {
 311            $block = 10; break;
 312          }
 313          break;
 314        }
 315        case 12: {
 316          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
 317          $t24_25 = $rt.builtin.stringByteAt(s, $t15_16);
 318          $t25_26 = ($t24_25 === 9);
 319          if ($t25_26) {
 320            $block = 6; break;
 321          }
 322          else {
 323            $block = 11; break;
 324          }
 325          break;
 326        }
 327        case 13: {
 328          $t26_27 = ($t15_16 + 1);
 329          $t32_33 = $t26_27;
 330          $block = 17; break;
 331          break;
 332        }
 333        case 14: {
 334          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
 335          $t27_28 = $rt.builtin.stringByteAt(s, $t15_16);
 336          $t28_29 = ($t27_28 !== 58);
 337          if ($t28_29) {
 338            $block = 3; break;
 339          }
 340          else {
 341            $block = 13; break;
 342          }
 343          break;
 344        }
 345        case 15: {
 346          $t29_30 = ($t32_33 + 1);
 347          $t32_33 = $t29_30;
 348          $block = 17; break;
 349          break;
 350        }
 351        case 16: {
 352          $t30_31 = $rt.builtin.len(s);
 353          $t31_32 = ($t32_33 >= $t30_31);
 354          if ($t31_32) {
 355            $block = 3; break;
 356          }
 357          else {
 358            $block = 23; break;
 359          }
 360          break;
 361        }
 362        case 17: {
 363          $t33_34 = $rt.builtin.len(s);
 364          $t34_35 = ($t32_33 < $t33_34);
 365          if ($t34_35) {
 366            $block = 18; break;
 367          }
 368          else {
 369            $block = 16; break;
 370          }
 371          break;
 372        }
 373        case 18: {
 374          $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
 375          $t35_36 = $rt.builtin.stringByteAt(s, $t32_33);
 376          $t36_37 = ($t35_36 === 32);
 377          if ($t36_37) {
 378            $block = 15; break;
 379          }
 380          else {
 381            $block = 21; break;
 382          }
 383          break;
 384        }
 385        case 19: {
 386          $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
 387          $t37_38 = $rt.builtin.stringByteAt(s, $t32_33);
 388          $t38_39 = ($t37_38 === 13);
 389          if ($t38_39) {
 390            $block = 15; break;
 391          }
 392          else {
 393            $block = 16; break;
 394          }
 395          break;
 396        }
 397        case 20: {
 398          $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
 399          $t39_40 = $rt.builtin.stringByteAt(s, $t32_33);
 400          $t40_41 = ($t39_40 === 10);
 401          if ($t40_41) {
 402            $block = 15; break;
 403          }
 404          else {
 405            $block = 19; break;
 406          }
 407          break;
 408        }
 409        case 21: {
 410          $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
 411          $t41_42 = $rt.builtin.stringByteAt(s, $t32_33);
 412          $t42_43 = ($t41_42 === 9);
 413          if ($t42_43) {
 414            $block = 15; break;
 415          }
 416          else {
 417            $block = 20; break;
 418          }
 419          break;
 420        }
 421        case 22: {
 422          $t43_44 = ($t32_33 + 1);
 423          $t48_49 = $t43_44;
 424          $t49_50 = $t43_44;
 425          $t50_51 = '';
 426          $block = 25; break;
 427          break;
 428        }
 429        case 23: {
 430          $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
 431          $t44_45 = $rt.builtin.stringByteAt(s, $t32_33);
 432          $t45_46 = ($t44_45 !== 34);
 433          if ($t45_46) {
 434            $block = 3; break;
 435          }
 436          else {
 437            $block = 22; break;
 438          }
 439          break;
 440        }
 441        case 24: {
 442          $rt.runtime.boundsCheck($t48_49, $rt.builtin.byteLen(s));
 443          $t46_47 = $rt.builtin.stringByteAt(s, $t48_49);
 444          $t47_48 = ($t46_47 === 92);
 445          if ($t47_48) {
 446            $block = 28; break;
 447          }
 448          else {
 449            $block = 27; break;
 450          }
 451          break;
 452        }
 453        case 25: {
 454          $t51_52 = $rt.builtin.len(s);
 455          $t52_53 = ($t48_49 < $t51_52);
 456          if ($t52_53) {
 457            $block = 24; break;
 458          }
 459          else {
 460            $block = 3; break;
 461          }
 462          break;
 463        }
 464        case 26: {
 465          $t53_54 = $rt.builtin.stringSlice(s, $t49_50, $t48_49);
 466          $t54_55 = ($t50_51 + $t53_54);
 467          $t55_56 = ($t48_49 + 1);
 468          $rt.runtime.boundsCheck($t55_56, $rt.builtin.byteLen(s));
 469          $t56_57 = $rt.builtin.stringByteAt(s, $t55_56);
 470          $t57_58 = ($t56_57 === 34);
 471          if ($t57_58) {
 472            $block = 30; break;
 473          }
 474          else {
 475            $block = 32; break;
 476          }
 477          break;
 478        }
 479        case 27: {
 480          $rt.runtime.boundsCheck($t48_49, $rt.builtin.byteLen(s));
 481          $t58_59 = $rt.builtin.stringByteAt(s, $t48_49);
 482          $t59_60 = ($t58_59 === 34);
 483          if ($t59_60) {
 484            $block = 40; break;
 485          }
 486          else {
 487            $block = 41; break;
 488          }
 489          break;
 490        }
 491        case 28: {
 492          $t60_61 = ($t48_49 + 1);
 493          $t61_62 = $rt.builtin.len(s);
 494          $t62_63 = ($t60_61 < $t61_62);
 495          if ($t62_63) {
 496            $block = 26; break;
 497          }
 498          else {
 499            $block = 27; break;
 500          }
 501          break;
 502        }
 503        case 29: {
 504          $t64_65 = ($t55_56 + 1);
 505          $t48_49 = $t64_65;
 506          $t49_50 = $t64_65;
 507          $t50_51 = $t63_64;
 508          $block = 25; break;
 509          break;
 510        }
 511        case 30: {
 512          $t65_66 = ($t55_56 + 1);
 513          $t66_67 = $rt.builtin.stringSlice(s, $t55_56, $t65_66);
 514          $t67_68 = ($t54_55 + $t66_67);
 515          $t63_64 = $t67_68;
 516          $block = 29; break;
 517          break;
 518        }
 519        case 31: {
 520          $t68_69 = ($t54_55 + '\n');
 521          $t63_64 = $t68_69;
 522          $block = 29; break;
 523          break;
 524        }
 525        case 32: {
 526          $t69_70 = ($t56_57 === 92);
 527          if ($t69_70) {
 528            $block = 30; break;
 529          }
 530          else {
 531            $block = 33; break;
 532          }
 533          break;
 534        }
 535        case 33: {
 536          $t70_71 = ($t56_57 === 47);
 537          if ($t70_71) {
 538            $block = 30; break;
 539          }
 540          else {
 541            $block = 34; break;
 542          }
 543          break;
 544        }
 545        case 34: {
 546          $t71_72 = ($t56_57 === 110);
 547          if ($t71_72) {
 548            $block = 31; break;
 549          }
 550          else {
 551            $block = 36; break;
 552          }
 553          break;
 554        }
 555        case 35: {
 556          $t72_73 = ($t54_55 + '\r');
 557          $t63_64 = $t72_73;
 558          $block = 29; break;
 559          break;
 560        }
 561        case 36: {
 562          $t73_74 = ($t56_57 === 114);
 563          if ($t73_74) {
 564            $block = 35; break;
 565          }
 566          else {
 567            $block = 38; break;
 568          }
 569          break;
 570        }
 571        case 37: {
 572          $t74_75 = ($t54_55 + '\t');
 573          $t63_64 = $t74_75;
 574          $block = 29; break;
 575          break;
 576        }
 577        case 38: {
 578          $t75_76 = ($t56_57 === 116);
 579          if ($t75_76) {
 580            $block = 37; break;
 581          }
 582          else {
 583            $block = 39; break;
 584          }
 585          break;
 586        }
 587        case 39: {
 588          $t76_77 = ($t55_56 + 1);
 589          $t77_78 = $rt.builtin.stringSlice(s, $t55_56, $t76_77);
 590          $t78_79 = ($t54_55 + $t77_78);
 591          $t63_64 = $t78_79;
 592          $block = 29; break;
 593          break;
 594        }
 595        case 40: {
 596          $t79_80 = $rt.builtin.stringSlice(s, $t49_50, $t48_49);
 597          $t80_81 = ($t50_51 + $t79_80);
 598          return $t80_81;
 599          break;
 600        }
 601        case 41: {
 602          $t81_82 = ($t48_49 + 1);
 603          let $phi0 = $t81_82;
 604          let $phi1 = $t49_50;
 605          let $phi2 = $t50_51;
 606          $t48_49 = $phi0;
 607          $t49_50 = $phi1;
 608          $t50_51 = $phi2;
 609          $block = 25; break;
 610          break;
 611        }
 612      }
 613    }
 614  }
 615  
 616  export function Itoa(n) {
 617    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;
 618    let $block = 0;
 619    while (true) {
 620      switch ($block) {
 621        case 0: {
 622          $t0_1 = (n === 0);
 623          if ($t0_1) {
 624            $block = 1; break;
 625          }
 626          else {
 627            $block = 2; break;
 628          }
 629          break;
 630        }
 631        case 1: {
 632          return '0';
 633          break;
 634        }
 635        case 2: {
 636          $t1_2 = (n < 0);
 637          if ($t1_2) {
 638            $block = 3; break;
 639          }
 640          else {
 641            $t3_4 = n;
 642            $t4_5 = false;
 643            $block = 4; break;
 644          }
 645          break;
 646        }
 647        case 3: {
 648          $t2_3 = -n;
 649          $t3_4 = $t2_3;
 650          $t4_5 = true;
 651          $block = 4; break;
 652          break;
 653        }
 654        case 4: {
 655          $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 656          $t12_13 = $t3_4;
 657          $t13_14 = 20;
 658          $block = 7; break;
 659          break;
 660        }
 661        case 5: {
 662          $t6_7 = ($t13_14 - 1);
 663          $t7_8 = ($t12_13 % 10);
 664          $t8_9 = (48 + $t7_8);
 665          $t9_10 = ($t8_9 & 0xFF);
 666          $t10_11 = $t5_6.$get().addr($t6_7);
 667          $t10_11.$set($t9_10);
 668          $t11_12 = Math.trunc($t12_13 / 10);
 669          $t12_13 = $t11_12;
 670          $t13_14 = $t6_7;
 671          $block = 7; break;
 672          break;
 673        }
 674        case 6: {
 675          if ($t4_5) {
 676            $block = 8; break;
 677          }
 678          else {
 679            $t17_18 = $t13_14;
 680            $block = 9; break;
 681          }
 682          break;
 683        }
 684        case 7: {
 685          $t14_15 = ($t12_13 > 0);
 686          if ($t14_15) {
 687            $block = 5; break;
 688          }
 689          else {
 690            $block = 6; break;
 691          }
 692          break;
 693        }
 694        case 8: {
 695          $t15_16 = ($t13_14 - 1);
 696          $t16_17 = $t5_6.$get().addr($t15_16);
 697          $t16_17.$set(45);
 698          $t17_18 = $t15_16;
 699          $block = 9; break;
 700          break;
 701        }
 702        case 9: {
 703          $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
 704          $t19_20 = $rt.builtin.bytesToString($t18_19);
 705          return $t19_20;
 706          break;
 707        }
 708      }
 709    }
 710  }
 711  
 712  export function Bech32Encode(hrp, data) {
 713    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;
 714    let $block = 0;
 715    while (true) {
 716      switch ($block) {
 717        case 0: {
 718          $t0_1 = bytesToBase32(data);
 719          $t1_2 = bech32Checksum(hrp, $t0_1);
 720          $t2_3 = $rt.builtin.appendSlice($t0_1, $t1_2);
 721          $t3_4 = $rt.builtin.len(hrp);
 722          $t4_5 = ($t3_4 + 1);
 723          $t5_6 = $rt.builtin.len($t2_3);
 724          $t6_7 = ($t4_5 + $t5_6);
 725          $t7_8 = $rt.builtin.makeSlice(0, $t6_7, 0);
 726          $t8_9 = $rt.builtin.appendString($t7_8, hrp);
 727          $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 728          $t10_11 = $t9_10.$get().addr(0);
 729          $t10_11.$set(49);
 730          $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
 731          $t12_13 = $rt.builtin.appendSlice($t8_9, $t11_12);
 732          $t13_14 = $rt.builtin.len($t2_3);
 733          $t14_15 = $t12_13;
 734          $t15_16 = -1;
 735          $block = 1; break;
 736          break;
 737        }
 738        case 1: {
 739          $t16_17 = ($t15_16 + 1);
 740          $t17_18 = ($t16_17 < $t13_14);
 741          if ($t17_18) {
 742            $block = 2; break;
 743          }
 744          else {
 745            $block = 3; break;
 746          }
 747          break;
 748        }
 749        case 2: {
 750          $t18_19 = $t2_3.addr($t16_17);
 751          $t19_20 = $t18_19.$get();
 752          $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
 753          $t20_21 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t19_20);
 754          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 755          $t22_23 = $t21_22.$get().addr(0);
 756          $t22_23.$set($t20_21);
 757          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
 758          $t24_25 = $rt.builtin.appendSlice($t14_15, $t23_24);
 759          $t14_15 = $t24_25;
 760          $t15_16 = $t16_17;
 761          $block = 1; break;
 762          break;
 763        }
 764        case 3: {
 765          $t25_26 = $rt.builtin.bytesToString($t14_15);
 766          return $t25_26;
 767          break;
 768        }
 769      }
 770    }
 771  }
 772  
 773  export function Bech32Decode(s) {
 774    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;
 775    let $block = 0;
 776    while (true) {
 777      switch ($block) {
 778        case 0: {
 779          $t0_1 = $rt.builtin.len(s);
 780          $t1_2 = ($t0_1 - 1);
 781          $t2_3 = $t1_2;
 782          $block = 1; break;
 783          break;
 784        }
 785        case 1: {
 786          $t3_4 = ($t2_3 >= 0);
 787          if ($t3_4) {
 788            $block = 2; break;
 789          }
 790          else {
 791            $t6_7 = -1;
 792            $block = 3; break;
 793          }
 794          break;
 795        }
 796        case 2: {
 797          $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
 798          $t4_5 = $rt.builtin.stringByteAt(s, $t2_3);
 799          $t5_6 = ($t4_5 === 49);
 800          if ($t5_6) {
 801            $block = 4; break;
 802          }
 803          else {
 804            $block = 5; break;
 805          }
 806          break;
 807        }
 808        case 3: {
 809          $t7_8 = ($t6_7 < 1);
 810          if ($t7_8) {
 811            $block = 6; break;
 812          }
 813          else {
 814            $block = 8; break;
 815          }
 816          break;
 817        }
 818        case 4: {
 819          $t6_7 = $t2_3;
 820          $block = 3; break;
 821          break;
 822        }
 823        case 5: {
 824          $t8_9 = ($t2_3 - 1);
 825          $t2_3 = $t8_9;
 826          $block = 1; break;
 827          break;
 828        }
 829        case 6: {
 830          return ['', null];
 831          break;
 832        }
 833        case 7: {
 834          $t9_10 = $rt.builtin.stringSlice(s, undefined, $t6_7);
 835          $t10_11 = ($t6_7 + 1);
 836          $t11_12 = $rt.builtin.stringSlice(s, $t10_11, undefined);
 837          $t12_13 = $rt.builtin.len($t11_12);
 838          $t13_14 = $rt.builtin.makeSlice($t12_13, $t12_13, 0);
 839          $t17_18 = 0;
 840          $block = 9; break;
 841          break;
 842        }
 843        case 8: {
 844          $t14_15 = ($t6_7 + 7);
 845          $t15_16 = $rt.builtin.len(s);
 846          $t16_17 = ($t14_15 > $t15_16);
 847          if ($t16_17) {
 848            $block = 6; break;
 849          }
 850          else {
 851            $block = 7; break;
 852          }
 853          break;
 854        }
 855        case 9: {
 856          $t18_19 = $rt.builtin.len($t11_12);
 857          $t19_20 = ($t17_18 < $t18_19);
 858          if ($t19_20) {
 859            $block = 10; break;
 860          }
 861          else {
 862            $block = 11; break;
 863          }
 864          break;
 865        }
 866        case 10: {
 867          $rt.runtime.boundsCheck($t17_18, $rt.builtin.byteLen($t11_12));
 868          $t20_21 = $rt.builtin.stringByteAt($t11_12, $t17_18);
 869          $t21_22 = charsetIndex($t20_21);
 870          $t22_23 = ($t21_22 < 0);
 871          if ($t22_23) {
 872            $block = 12; break;
 873          }
 874          else {
 875            $block = 13; break;
 876          }
 877          break;
 878        }
 879        case 11: {
 880          $t23_24 = bech32Verify($t9_10, $t13_14);
 881          if ($t23_24) {
 882            $block = 15; break;
 883          }
 884          else {
 885            $block = 14; break;
 886          }
 887          break;
 888        }
 889        case 12: {
 890          return ['', null];
 891          break;
 892        }
 893        case 13: {
 894          $t24_25 = ($t21_22 & 0xFF);
 895          $t25_26 = $t13_14.addr($t17_18);
 896          $t25_26.$set($t24_25);
 897          $t26_27 = ($t17_18 + 1);
 898          $t17_18 = $t26_27;
 899          $block = 9; break;
 900          break;
 901        }
 902        case 14: {
 903          return ['', null];
 904          break;
 905        }
 906        case 15: {
 907          $t27_28 = $rt.builtin.len($t13_14);
 908          $t28_29 = ($t27_28 - 6);
 909          $t29_30 = $rt.builtin.sliceSlice($t13_14, undefined, $t28_29, undefined);
 910          $t30_31 = base32ToBytes($t29_30);
 911          return [$t9_10, $t30_31];
 912          break;
 913        }
 914      }
 915    }
 916  }
 917  
 918  export function EncodeNpub(pubkey) {
 919    let $t0_1;
 920    $t0_1 = Bech32Encode('npub', pubkey);
 921    return $t0_1;
 922  }
 923  
 924  export function EncodeNsec(seckey) {
 925    let $t0_1;
 926    $t0_1 = Bech32Encode('nsec', seckey);
 927    return $t0_1;
 928  }
 929  
 930  export function EncodeNote(eventID) {
 931    let $t0_1;
 932    $t0_1 = Bech32Encode('note', eventID);
 933    return $t0_1;
 934  }
 935  
 936  export function DecodeNpub(s) {
 937    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
 938    let $block = 0;
 939    while (true) {
 940      switch ($block) {
 941        case 0: {
 942          $t0_1 = Bech32Decode(s);
 943          $t1_2 = $t0_1[0];
 944          $t2_3 = $t0_1[1];
 945          $t3_4 = ($t1_2 !== 'npub');
 946          if ($t3_4) {
 947            $block = 1; break;
 948          }
 949          else {
 950            $block = 3; break;
 951          }
 952          break;
 953        }
 954        case 1: {
 955          return null;
 956          break;
 957        }
 958        case 2: {
 959          return $t2_3;
 960          break;
 961        }
 962        case 3: {
 963          $t4_5 = $rt.builtin.len($t2_3);
 964          $t5_6 = ($t4_5 !== 32);
 965          if ($t5_6) {
 966            $block = 1; break;
 967          }
 968          else {
 969            $block = 2; break;
 970          }
 971          break;
 972        }
 973      }
 974    }
 975  }
 976  
 977  export function DecodeNsec(s) {
 978    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
 979    let $block = 0;
 980    while (true) {
 981      switch ($block) {
 982        case 0: {
 983          $t0_1 = Bech32Decode(s);
 984          $t1_2 = $t0_1[0];
 985          $t2_3 = $t0_1[1];
 986          $t3_4 = ($t1_2 !== 'nsec');
 987          if ($t3_4) {
 988            $block = 1; break;
 989          }
 990          else {
 991            $block = 3; break;
 992          }
 993          break;
 994        }
 995        case 1: {
 996          return null;
 997          break;
 998        }
 999        case 2: {
1000          return $t2_3;
1001          break;
1002        }
1003        case 3: {
1004          $t4_5 = $rt.builtin.len($t2_3);
1005          $t5_6 = ($t4_5 !== 32);
1006          if ($t5_6) {
1007            $block = 1; break;
1008          }
1009          else {
1010            $block = 2; break;
1011          }
1012          break;
1013        }
1014      }
1015    }
1016  }
1017  
1018  export function DecodeNote(s) {
1019    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1020    let $block = 0;
1021    while (true) {
1022      switch ($block) {
1023        case 0: {
1024          $t0_1 = Bech32Decode(s);
1025          $t1_2 = $t0_1[0];
1026          $t2_3 = $t0_1[1];
1027          $t3_4 = ($t1_2 !== 'note');
1028          if ($t3_4) {
1029            $block = 1; break;
1030          }
1031          else {
1032            $block = 3; break;
1033          }
1034          break;
1035        }
1036        case 1: {
1037          return null;
1038          break;
1039        }
1040        case 2: {
1041          return $t2_3;
1042          break;
1043        }
1044        case 3: {
1045          $t4_5 = $rt.builtin.len($t2_3);
1046          $t5_6 = ($t4_5 !== 32);
1047          if ($t5_6) {
1048            $block = 1; break;
1049          }
1050          else {
1051            $block = 2; break;
1052          }
1053          break;
1054        }
1055      }
1056    }
1057  }
1058  
1059  export function PubkeyShort(pubkey) {
1060    let $t0_1, $t1_2, $t2_3;
1061    let $block = 0;
1062    while (true) {
1063      switch ($block) {
1064        case 0: {
1065          $t0_1 = $rt.builtin.len(pubkey);
1066          $t1_2 = ($t0_1 >= 8);
1067          if ($t1_2) {
1068            $block = 1; break;
1069          }
1070          else {
1071            $block = 2; break;
1072          }
1073          break;
1074        }
1075        case 1: {
1076          $t2_3 = $rt.builtin.stringSlice(pubkey, undefined, 8);
1077          return $t2_3;
1078          break;
1079        }
1080        case 2: {
1081          return pubkey;
1082          break;
1083        }
1084      }
1085    }
1086  }
1087  
1088  export function bytesToBase32(data) {
1089    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;
1090    let $block = 0;
1091    while (true) {
1092      switch ($block) {
1093        case 0: {
1094          $t0_1 = $rt.builtin.len(data);
1095          $t1_2 = null;
1096          $t2_3 = 0;
1097          $t3_4 = 0;
1098          $t4_5 = -1;
1099          $block = 1; break;
1100          break;
1101        }
1102        case 1: {
1103          $t5_6 = ($t4_5 + 1);
1104          $t6_7 = ($t5_6 < $t0_1);
1105          if ($t6_7) {
1106            $block = 2; break;
1107          }
1108          else {
1109            $block = 3; break;
1110          }
1111          break;
1112        }
1113        case 2: {
1114          $t7_8 = data.addr($t5_6);
1115          $t8_9 = $t7_8.$get();
1116          $t9_10 = ($t2_3 * (2 ** 8));
1117          $t10_11 = $t8_9;
1118          $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1119          $t12_13 = ($t3_4 + 8);
1120          $t26_27 = $t1_2;
1121          $t27_28 = $t12_13;
1122          $block = 6; break;
1123          break;
1124        }
1125        case 3: {
1126          $t13_14 = ($t3_4 > 0);
1127          if ($t13_14) {
1128            $block = 7; break;
1129          }
1130          else {
1131            $t37_38 = $t1_2;
1132            $block = 8; break;
1133          }
1134          break;
1135        }
1136        case 4: {
1137          $t14_15 = ($t27_28 - 5);
1138          $t15_16 = Math.trunc($t11_12 / (2 ** $t14_15));
1139          $t16_17 = $rt.builtin.int64and($t15_16, 31);
1140          $t17_18 = ($t16_17 & 0xFF);
1141          $t18_19 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1142          $t19_20 = $t18_19.$get().addr(0);
1143          $t19_20.$set($t17_18);
1144          $t20_21 = $rt.builtin.sliceSlice($t18_19.$get(), undefined, undefined, undefined);
1145          $t21_22 = $rt.builtin.appendSlice($t26_27, $t20_21);
1146          $t26_27 = $t21_22;
1147          $t27_28 = $t14_15;
1148          $block = 6; break;
1149          break;
1150        }
1151        case 5: {
1152          $t22_23 = $t27_28;
1153          $t23_24 = (1 * (2 ** $t22_23));
1154          $t24_25 = ($t23_24 - 1);
1155          $t25_26 = $rt.builtin.int64and($t11_12, $t24_25);
1156          $t1_2 = $t26_27;
1157          $t2_3 = $t25_26;
1158          $t3_4 = $t27_28;
1159          $t4_5 = $t5_6;
1160          $block = 1; break;
1161          break;
1162        }
1163        case 6: {
1164          $t28_29 = ($t27_28 >= 5);
1165          if ($t28_29) {
1166            $block = 4; break;
1167          }
1168          else {
1169            $block = 5; break;
1170          }
1171          break;
1172        }
1173        case 7: {
1174          $t29_30 = (5 - $t3_4);
1175          $t30_31 = ($t2_3 * (2 ** $t29_30));
1176          $t31_32 = $rt.builtin.int64and($t30_31, 31);
1177          $t32_33 = ($t31_32 & 0xFF);
1178          $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1179          $t34_35 = $t33_34.$get().addr(0);
1180          $t34_35.$set($t32_33);
1181          $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
1182          $t36_37 = $rt.builtin.appendSlice($t1_2, $t35_36);
1183          $t37_38 = $t36_37;
1184          $block = 8; break;
1185          break;
1186        }
1187        case 8: {
1188          return $t37_38;
1189          break;
1190        }
1191      }
1192    }
1193  }
1194  
1195  export function base32ToBytes(data) {
1196    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;
1197    let $block = 0;
1198    while (true) {
1199      switch ($block) {
1200        case 0: {
1201          $t0_1 = $rt.builtin.len(data);
1202          $t1_2 = null;
1203          $t2_3 = 0;
1204          $t3_4 = 0;
1205          $t4_5 = -1;
1206          $block = 1; break;
1207          break;
1208        }
1209        case 1: {
1210          $t5_6 = ($t4_5 + 1);
1211          $t6_7 = ($t5_6 < $t0_1);
1212          if ($t6_7) {
1213            $block = 2; break;
1214          }
1215          else {
1216            $block = 3; break;
1217          }
1218          break;
1219        }
1220        case 2: {
1221          $t7_8 = data.addr($t5_6);
1222          $t8_9 = $t7_8.$get();
1223          $t9_10 = ($t2_3 * (2 ** 5));
1224          $t10_11 = $t8_9;
1225          $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1226          $t12_13 = ($t3_4 + 5);
1227          $t25_26 = $t1_2;
1228          $t26_27 = $t12_13;
1229          $block = 6; break;
1230          break;
1231        }
1232        case 3: {
1233          return $t1_2;
1234          break;
1235        }
1236        case 4: {
1237          $t13_14 = ($t26_27 - 8);
1238          $t14_15 = Math.trunc($t11_12 / (2 ** $t13_14));
1239          $t15_16 = $rt.builtin.int64and($t14_15, 255);
1240          $t16_17 = ($t15_16 & 0xFF);
1241          $t17_18 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1242          $t18_19 = $t17_18.$get().addr(0);
1243          $t18_19.$set($t16_17);
1244          $t19_20 = $rt.builtin.sliceSlice($t17_18.$get(), undefined, undefined, undefined);
1245          $t20_21 = $rt.builtin.appendSlice($t25_26, $t19_20);
1246          $t25_26 = $t20_21;
1247          $t26_27 = $t13_14;
1248          $block = 6; break;
1249          break;
1250        }
1251        case 5: {
1252          $t21_22 = $t26_27;
1253          $t22_23 = (1 * (2 ** $t21_22));
1254          $t23_24 = ($t22_23 - 1);
1255          $t24_25 = $rt.builtin.int64and($t11_12, $t23_24);
1256          $t1_2 = $t25_26;
1257          $t2_3 = $t24_25;
1258          $t3_4 = $t26_27;
1259          $t4_5 = $t5_6;
1260          $block = 1; break;
1261          break;
1262        }
1263        case 6: {
1264          $t27_28 = ($t26_27 >= 8);
1265          if ($t27_28) {
1266            $block = 4; break;
1267          }
1268          else {
1269            $block = 5; break;
1270          }
1271          break;
1272        }
1273      }
1274    }
1275  }
1276  
1277  export function bech32Polymod(values) {
1278    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;
1279    let $block = 0;
1280    while (true) {
1281      switch ($block) {
1282        case 0: {
1283          $t0_1 = { $value: $rt.builtin.makeSlice(5, 5, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1284          $t1_2 = $t0_1.$get().addr(0);
1285          $t2_3 = $t0_1.$get().addr(1);
1286          $t3_4 = $t0_1.$get().addr(2);
1287          $t4_5 = $t0_1.$get().addr(3);
1288          $t5_6 = $t0_1.$get().addr(4);
1289          $t1_2.$set(996825010);
1290          $t2_3.$set(642813549);
1291          $t3_4.$set(513874426);
1292          $t4_5.$set(1027748829);
1293          $t5_6.$set(705979059);
1294          $t6_7 = $rt.builtin.len(values);
1295          $t7_8 = 1;
1296          $t8_9 = -1;
1297          $block = 1; break;
1298          break;
1299        }
1300        case 1: {
1301          $t9_10 = ($t8_9 + 1);
1302          $t10_11 = ($t9_10 < $t6_7);
1303          if ($t10_11) {
1304            $block = 2; break;
1305          }
1306          else {
1307            $block = 3; break;
1308          }
1309          break;
1310        }
1311        case 2: {
1312          $t11_12 = values.addr($t9_10);
1313          $t12_13 = $t11_12.$get();
1314          $t13_14 = ($t7_8 >>> 25);
1315          $t14_15 = (($t7_8 & 33554431) >>> 0);
1316          $t15_16 = (($t14_15 << 5) >>> 0);
1317          $t16_17 = ($t12_13 >>> 0);
1318          $t17_18 = (($t15_16 ^ $t16_17) >>> 0);
1319          $t18_19 = $t17_18;
1320          $t19_20 = 0;
1321          $block = 4; break;
1322          break;
1323        }
1324        case 3: {
1325          return $t7_8;
1326          break;
1327        }
1328        case 4: {
1329          $t20_21 = ($t19_20 < 5);
1330          if ($t20_21) {
1331            $block = 5; break;
1332          }
1333          else {
1334            $t7_8 = $t18_19;
1335            $t8_9 = $t9_10;
1336            $block = 1; break;
1337          }
1338          break;
1339        }
1340        case 5: {
1341          $t21_22 = $t19_20;
1342          $t22_23 = ($t13_14 >>> $t21_22);
1343          $t23_24 = (($t22_23 & 1) >>> 0);
1344          $t24_25 = ($t23_24 === 1);
1345          if ($t24_25) {
1346            $block = 6; break;
1347          }
1348          else {
1349            $t28_29 = $t18_19;
1350            $block = 7; break;
1351          }
1352          break;
1353        }
1354        case 6: {
1355          $t25_26 = $t0_1.$get().addr($t19_20);
1356          $t26_27 = $t25_26.$get();
1357          $t27_28 = (($t18_19 ^ $t26_27) >>> 0);
1358          $t28_29 = $t27_28;
1359          $block = 7; break;
1360          break;
1361        }
1362        case 7: {
1363          $t29_30 = ($t19_20 + 1);
1364          $t18_19 = $t28_29;
1365          $t19_20 = $t29_30;
1366          $block = 4; break;
1367          break;
1368        }
1369      }
1370    }
1371  }
1372  
1373  export function bech32HRPExpand(hrp) {
1374    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;
1375    let $block = 0;
1376    while (true) {
1377      switch ($block) {
1378        case 0: {
1379          $t0_1 = $rt.builtin.len(hrp);
1380          $t1_2 = ($t0_1 * 2);
1381          $t2_3 = ($t1_2 + 1);
1382          $t3_4 = $rt.builtin.makeSlice(0, $t2_3, 0);
1383          $t4_5 = $t3_4;
1384          $t5_6 = 0;
1385          $block = 1; break;
1386          break;
1387        }
1388        case 1: {
1389          $t6_7 = $rt.builtin.len(hrp);
1390          $t7_8 = ($t5_6 < $t6_7);
1391          if ($t7_8) {
1392            $block = 2; break;
1393          }
1394          else {
1395            $block = 3; break;
1396          }
1397          break;
1398        }
1399        case 2: {
1400          $rt.runtime.boundsCheck($t5_6, $rt.builtin.byteLen(hrp));
1401          $t8_9 = $rt.builtin.stringByteAt(hrp, $t5_6);
1402          $t9_10 = (($t8_9 & 0xFF) >> 5);
1403          $t10_11 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1404          $t11_12 = $t10_11.$get().addr(0);
1405          $t11_12.$set($t9_10);
1406          $t12_13 = $rt.builtin.sliceSlice($t10_11.$get(), undefined, undefined, undefined);
1407          $t13_14 = $rt.builtin.appendSlice($t4_5, $t12_13);
1408          $t14_15 = ($t5_6 + 1);
1409          $t4_5 = $t13_14;
1410          $t5_6 = $t14_15;
1411          $block = 1; break;
1412          break;
1413        }
1414        case 3: {
1415          $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1416          $t16_17 = $t15_16.$get().addr(0);
1417          $t16_17.$set(0);
1418          $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
1419          $t18_19 = $rt.builtin.appendSlice($t4_5, $t17_18);
1420          $t19_20 = $t18_19;
1421          $t20_21 = 0;
1422          $block = 4; break;
1423          break;
1424        }
1425        case 4: {
1426          $t21_22 = $rt.builtin.len(hrp);
1427          $t22_23 = ($t20_21 < $t21_22);
1428          if ($t22_23) {
1429            $block = 5; break;
1430          }
1431          else {
1432            $block = 6; break;
1433          }
1434          break;
1435        }
1436        case 5: {
1437          $rt.runtime.boundsCheck($t20_21, $rt.builtin.byteLen(hrp));
1438          $t23_24 = $rt.builtin.stringByteAt(hrp, $t20_21);
1439          $t24_25 = ($t23_24 & 31);
1440          $t25_26 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1441          $t26_27 = $t25_26.$get().addr(0);
1442          $t26_27.$set($t24_25);
1443          $t27_28 = $rt.builtin.sliceSlice($t25_26.$get(), undefined, undefined, undefined);
1444          $t28_29 = $rt.builtin.appendSlice($t19_20, $t27_28);
1445          $t29_30 = ($t20_21 + 1);
1446          $t19_20 = $t28_29;
1447          $t20_21 = $t29_30;
1448          $block = 4; break;
1449          break;
1450        }
1451        case 6: {
1452          return $t19_20;
1453          break;
1454        }
1455      }
1456    }
1457  }
1458  
1459  export function bech32Checksum(hrp, data) {
1460    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;
1461    let $block = 0;
1462    while (true) {
1463      switch ($block) {
1464        case 0: {
1465          $t0_1 = bech32HRPExpand(hrp);
1466          $t1_2 = $rt.builtin.appendSlice($t0_1, data);
1467          $t2_3 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1468          $t3_4 = $t2_3.$get().addr(0);
1469          $t3_4.$set(0);
1470          $t4_5 = $t2_3.$get().addr(1);
1471          $t4_5.$set(0);
1472          $t5_6 = $t2_3.$get().addr(2);
1473          $t5_6.$set(0);
1474          $t6_7 = $t2_3.$get().addr(3);
1475          $t6_7.$set(0);
1476          $t7_8 = $t2_3.$get().addr(4);
1477          $t7_8.$set(0);
1478          $t8_9 = $t2_3.$get().addr(5);
1479          $t8_9.$set(0);
1480          $t9_10 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
1481          $t10_11 = $rt.builtin.appendSlice($t1_2, $t9_10);
1482          $t11_12 = bech32Polymod($t10_11);
1483          $t12_13 = (($t11_12 ^ 1) >>> 0);
1484          $t13_14 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1485          $t14_15 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, 6, undefined);
1486          $t15_16 = 0;
1487          $block = 1; break;
1488          break;
1489        }
1490        case 1: {
1491          $t16_17 = ($t15_16 < 6);
1492          if ($t16_17) {
1493            $block = 2; break;
1494          }
1495          else {
1496            $block = 3; break;
1497          }
1498          break;
1499        }
1500        case 2: {
1501          $t17_18 = $t15_16;
1502          $t18_19 = (5 - $t17_18);
1503          $t19_20 = (5 * $t18_19);
1504          $t20_21 = ($t12_13 >>> $t19_20);
1505          $t21_22 = (($t20_21 & 31) >>> 0);
1506          $t22_23 = ($t21_22 & 0xFF);
1507          $t23_24 = $t14_15.addr($t15_16);
1508          $t23_24.$set($t22_23);
1509          $t24_25 = ($t15_16 + 1);
1510          $t15_16 = $t24_25;
1511          $block = 1; break;
1512          break;
1513        }
1514        case 3: {
1515          return $t14_15;
1516          break;
1517        }
1518      }
1519    }
1520  }
1521  
1522  export function bech32Verify(hrp, data) {
1523    let $t0_1, $t1_2, $t2_3, $t3_4;
1524    $t0_1 = bech32HRPExpand(hrp);
1525    $t1_2 = $rt.builtin.appendSlice($t0_1, data);
1526    $t2_3 = bech32Polymod($t1_2);
1527    $t3_4 = ($t2_3 === 1);
1528    return $t3_4;
1529  }
1530  
1531  export function charsetIndex(c) {
1532    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
1533    let $block = 0;
1534    while (true) {
1535      switch ($block) {
1536        case 0: {
1537          $t0_1 = 0;
1538          $block = 1; break;
1539          break;
1540        }
1541        case 1: {
1542          $t1_2 = ($t0_1 < 32);
1543          if ($t1_2) {
1544            $block = 2; break;
1545          }
1546          else {
1547            $block = 3; break;
1548          }
1549          break;
1550        }
1551        case 2: {
1552          $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
1553          $t2_3 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t0_1);
1554          $t3_4 = ($t2_3 === c);
1555          if ($t3_4) {
1556            $block = 4; break;
1557          }
1558          else {
1559            $block = 5; break;
1560          }
1561          break;
1562        }
1563        case 3: {
1564          return -1;
1565          break;
1566        }
1567        case 4: {
1568          return $t0_1;
1569          break;
1570        }
1571        case 5: {
1572          $t4_5 = ($t0_1 + 1);
1573          $t0_1 = $t4_5;
1574          $block = 1; break;
1575          break;
1576        }
1577      }
1578    }
1579  }
1580  
1581  export function HexEncode(b) {
1582    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;
1583    let $block = 0;
1584    while (true) {
1585      switch ($block) {
1586        case 0: {
1587          $t0_1 = $rt.builtin.len(b);
1588          $t1_2 = ($t0_1 * 2);
1589          $t2_3 = $rt.builtin.makeSlice($t1_2, $t1_2, 0);
1590          $t3_4 = $rt.builtin.len(b);
1591          $t4_5 = -1;
1592          $block = 1; break;
1593          break;
1594        }
1595        case 1: {
1596          $t5_6 = ($t4_5 + 1);
1597          $t6_7 = ($t5_6 < $t3_4);
1598          if ($t6_7) {
1599            $block = 2; break;
1600          }
1601          else {
1602            $block = 3; break;
1603          }
1604          break;
1605        }
1606        case 2: {
1607          $t7_8 = b.addr($t5_6);
1608          $t8_9 = $t7_8.$get();
1609          $t9_10 = ($t5_6 * 2);
1610          $t10_11 = (($t8_9 & 0xFF) >> 4);
1611          $rt.runtime.boundsCheck($t10_11, $rt.builtin.byteLen('0123456789abcdef'));
1612          $t11_12 = $rt.builtin.stringByteAt('0123456789abcdef', $t10_11);
1613          $t12_13 = $t2_3.addr($t9_10);
1614          $t12_13.$set($t11_12);
1615          $t13_14 = ($t5_6 * 2);
1616          $t14_15 = ($t13_14 + 1);
1617          $t15_16 = ($t8_9 & 15);
1618          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen('0123456789abcdef'));
1619          $t16_17 = $rt.builtin.stringByteAt('0123456789abcdef', $t15_16);
1620          $t17_18 = $t2_3.addr($t14_15);
1621          $t17_18.$set($t16_17);
1622          $t4_5 = $t5_6;
1623          $block = 1; break;
1624          break;
1625        }
1626        case 3: {
1627          $t18_19 = $rt.builtin.bytesToString($t2_3);
1628          return $t18_19;
1629          break;
1630        }
1631      }
1632    }
1633  }
1634  
1635  export function HexDecode(s) {
1636    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;
1637    let $block = 0;
1638    while (true) {
1639      switch ($block) {
1640        case 0: {
1641          $t0_1 = $rt.builtin.len(s);
1642          $t1_2 = ($t0_1 % 2);
1643          $t2_3 = ($t1_2 !== 0);
1644          if ($t2_3) {
1645            $block = 1; break;
1646          }
1647          else {
1648            $block = 2; break;
1649          }
1650          break;
1651        }
1652        case 1: {
1653          return null;
1654          break;
1655        }
1656        case 2: {
1657          $t3_4 = $rt.builtin.len(s);
1658          $t4_5 = Math.trunc($t3_4 / 2);
1659          $t5_6 = $rt.builtin.makeSlice($t4_5, $t4_5, 0);
1660          $t6_7 = 0;
1661          $block = 3; break;
1662          break;
1663        }
1664        case 3: {
1665          $t7_8 = $rt.builtin.len(s);
1666          $t8_9 = ($t6_7 < $t7_8);
1667          if ($t8_9) {
1668            $block = 4; break;
1669          }
1670          else {
1671            $block = 5; break;
1672          }
1673          break;
1674        }
1675        case 4: {
1676          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
1677          $t9_10 = $rt.builtin.stringByteAt(s, $t6_7);
1678          $t10_11 = hexVal($t9_10);
1679          $t11_12 = ($t6_7 + 1);
1680          $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1681          $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1682          $t13_14 = hexVal($t12_13);
1683          $t14_15 = ($t10_11 < 0);
1684          if ($t14_15) {
1685            $block = 6; break;
1686          }
1687          else {
1688            $block = 8; break;
1689          }
1690          break;
1691        }
1692        case 5: {
1693          return $t5_6;
1694          break;
1695        }
1696        case 6: {
1697          return null;
1698          break;
1699        }
1700        case 7: {
1701          $t15_16 = Math.trunc($t6_7 / 2);
1702          $t16_17 = ($t10_11 * (2 ** 4));
1703          $t17_18 = $rt.builtin.int64or($t16_17, $t13_14);
1704          $t18_19 = ($t17_18 & 0xFF);
1705          $t19_20 = $t5_6.addr($t15_16);
1706          $t19_20.$set($t18_19);
1707          $t20_21 = ($t6_7 + 2);
1708          $t6_7 = $t20_21;
1709          $block = 3; break;
1710          break;
1711        }
1712        case 8: {
1713          $t21_22 = ($t13_14 < 0);
1714          if ($t21_22) {
1715            $block = 6; break;
1716          }
1717          else {
1718            $block = 7; break;
1719          }
1720          break;
1721        }
1722      }
1723    }
1724  }
1725  
1726  export function HexDecode32(s) {
1727    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;
1728    let $block = 0;
1729    while (true) {
1730      switch ($block) {
1731        case 0: {
1732          $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1733          $t1_2 = $rt.builtin.len(s);
1734          $t2_3 = ($t1_2 !== 64);
1735          if ($t2_3) {
1736            $block = 1; break;
1737          }
1738          else {
1739            $block = 2; break;
1740          }
1741          break;
1742        }
1743        case 1: {
1744          $t3_4 = $t0_1.$get();
1745          $t0_1.$set($rt.builtin.cloneValue($t3_4));
1746          $t4_5 = $t0_1.$get();
1747          return [$t4_5, false];
1748          break;
1749        }
1750        case 2: {
1751          $t5_6 = 0;
1752          $block = 3; break;
1753          break;
1754        }
1755        case 3: {
1756          $t6_7 = ($t5_6 < 32);
1757          if ($t6_7) {
1758            $block = 4; break;
1759          }
1760          else {
1761            $block = 5; break;
1762          }
1763          break;
1764        }
1765        case 4: {
1766          $t7_8 = ($t5_6 * 2);
1767          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
1768          $t8_9 = $rt.builtin.stringByteAt(s, $t7_8);
1769          $t9_10 = hexVal($t8_9);
1770          $t10_11 = ($t5_6 * 2);
1771          $t11_12 = ($t10_11 + 1);
1772          $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1773          $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1774          $t13_14 = hexVal($t12_13);
1775          $t14_15 = ($t9_10 < 0);
1776          if ($t14_15) {
1777            $block = 6; break;
1778          }
1779          else {
1780            $block = 8; break;
1781          }
1782          break;
1783        }
1784        case 5: {
1785          $t15_16 = $t0_1.$get();
1786          $t0_1.$set($rt.builtin.cloneValue($t15_16));
1787          $t16_17 = $t0_1.$get();
1788          return [$t16_17, true];
1789          break;
1790        }
1791        case 6: {
1792          $t17_18 = $t0_1.$get();
1793          $t0_1.$set($rt.builtin.cloneValue($t17_18));
1794          $t18_19 = $t0_1.$get();
1795          return [$t18_19, false];
1796          break;
1797        }
1798        case 7: {
1799          $t19_20 = ($t9_10 * (2 ** 4));
1800          $t20_21 = $rt.builtin.int64or($t19_20, $t13_14);
1801          $t21_22 = ($t20_21 & 0xFF);
1802          $t22_23 = $t0_1.$get().addr($t5_6);
1803          $t22_23.$set($t21_22);
1804          $t23_24 = ($t5_6 + 1);
1805          $t5_6 = $t23_24;
1806          $block = 3; break;
1807          break;
1808        }
1809        case 8: {
1810          $t24_25 = ($t13_14 < 0);
1811          if ($t24_25) {
1812            $block = 6; break;
1813          }
1814          else {
1815            $block = 7; break;
1816          }
1817          break;
1818        }
1819      }
1820    }
1821  }
1822  
1823  export function hexVal(c) {
1824    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;
1825    let $block = 0;
1826    while (true) {
1827      switch ($block) {
1828        case 0: {
1829          $t0_1 = (c >= 48);
1830          if ($t0_1) {
1831            $block = 4; break;
1832          }
1833          else {
1834            $block = 3; break;
1835          }
1836          break;
1837        }
1838        case 1: {
1839          $t1_2 = ((c - 48) & 0xFF);
1840          $t2_3 = $t1_2;
1841          return $t2_3;
1842          break;
1843        }
1844        case 2: {
1845          $t3_4 = ((c - 97) & 0xFF);
1846          $t4_5 = (($t3_4 + 10) & 0xFF);
1847          $t5_6 = $t4_5;
1848          return $t5_6;
1849          break;
1850        }
1851        case 3: {
1852          $t6_7 = (c >= 97);
1853          if ($t6_7) {
1854            $block = 7; break;
1855          }
1856          else {
1857            $block = 6; break;
1858          }
1859          break;
1860        }
1861        case 4: {
1862          $t7_8 = (c <= 57);
1863          if ($t7_8) {
1864            $block = 1; break;
1865          }
1866          else {
1867            $block = 3; break;
1868          }
1869          break;
1870        }
1871        case 5: {
1872          $t8_9 = ((c - 65) & 0xFF);
1873          $t9_10 = (($t8_9 + 10) & 0xFF);
1874          $t10_11 = $t9_10;
1875          return $t10_11;
1876          break;
1877        }
1878        case 6: {
1879          $t11_12 = (c >= 65);
1880          if ($t11_12) {
1881            $block = 9; break;
1882          }
1883          else {
1884            $block = 8; break;
1885          }
1886          break;
1887        }
1888        case 7: {
1889          $t12_13 = (c <= 102);
1890          if ($t12_13) {
1891            $block = 2; break;
1892          }
1893          else {
1894            $block = 6; break;
1895          }
1896          break;
1897        }
1898        case 8: {
1899          return -1;
1900          break;
1901        }
1902        case 9: {
1903          $t13_14 = (c <= 70);
1904          if ($t13_14) {
1905            $block = 5; break;
1906          }
1907          else {
1908            $block = 8; break;
1909          }
1910          break;
1911        }
1912      }
1913    }
1914  }
1915  
1916  export function Base64Encode(data) {
1917    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;
1918    let $block = 0;
1919    while (true) {
1920      switch ($block) {
1921        case 0: {
1922          $t0_1 = $rt.builtin.len(data);
1923          $t1_2 = ($t0_1 + 2);
1924          $t2_3 = Math.trunc($t1_2 / 3);
1925          $t3_4 = ($t2_3 * 4);
1926          $t4_5 = $rt.builtin.makeSlice(0, $t3_4, 0);
1927          $t5_6 = $t4_5;
1928          $t6_7 = 0;
1929          $block = 1; break;
1930          break;
1931        }
1932        case 1: {
1933          $t7_8 = ($t6_7 < $t0_1);
1934          if ($t7_8) {
1935            $block = 2; break;
1936          }
1937          else {
1938            $block = 3; break;
1939          }
1940          break;
1941        }
1942        case 2: {
1943          $t8_9 = data.addr($t6_7);
1944          $t9_10 = $t8_9.$get();
1945          $t10_11 = ($t6_7 + 1);
1946          $t11_12 = ($t10_11 < $t0_1);
1947          if ($t11_12) {
1948            $block = 4; break;
1949          }
1950          else {
1951            $t16_17 = 0;
1952            $block = 5; break;
1953          }
1954          break;
1955        }
1956        case 3: {
1957          $t12_13 = $rt.builtin.bytesToString($t5_6);
1958          return $t12_13;
1959          break;
1960        }
1961        case 4: {
1962          $t13_14 = ($t6_7 + 1);
1963          $t14_15 = data.addr($t13_14);
1964          $t15_16 = $t14_15.$get();
1965          $t16_17 = $t15_16;
1966          $block = 5; break;
1967          break;
1968        }
1969        case 5: {
1970          $t17_18 = ($t6_7 + 2);
1971          $t18_19 = ($t17_18 < $t0_1);
1972          if ($t18_19) {
1973            $block = 6; break;
1974          }
1975          else {
1976            $t22_23 = 0;
1977            $block = 7; break;
1978          }
1979          break;
1980        }
1981        case 6: {
1982          $t19_20 = ($t6_7 + 2);
1983          $t20_21 = data.addr($t19_20);
1984          $t21_22 = $t20_21.$get();
1985          $t22_23 = $t21_22;
1986          $block = 7; break;
1987          break;
1988        }
1989        case 7: {
1990          $t23_24 = (($t9_10 & 0xFF) >> 2);
1991          $t24_25 = ($t23_24 & 63);
1992          $rt.runtime.boundsCheck($t24_25, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
1993          $t25_26 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t24_25);
1994          $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1995          $t27_28 = $t26_27.$get().addr(0);
1996          $t27_28.$set($t25_26);
1997          $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
1998          $t29_30 = $rt.builtin.appendSlice($t5_6, $t28_29);
1999          $t30_31 = (($t9_10 << 4) & 0xFF);
2000          $t31_32 = (($t16_17 & 0xFF) >> 4);
2001          $t32_33 = ($t30_31 | $t31_32);
2002          $t33_34 = ($t32_33 & 63);
2003          $rt.runtime.boundsCheck($t33_34, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
2004          $t34_35 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t33_34);
2005          $t35_36 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2006          $t36_37 = $t35_36.$get().addr(0);
2007          $t36_37.$set($t34_35);
2008          $t37_38 = $rt.builtin.sliceSlice($t35_36.$get(), undefined, undefined, undefined);
2009          $t38_39 = $rt.builtin.appendSlice($t29_30, $t37_38);
2010          $t39_40 = ($t6_7 + 1);
2011          $t40_41 = ($t39_40 < $t0_1);
2012          if ($t40_41) {
2013            $block = 8; break;
2014          }
2015          else {
2016            $block = 10; break;
2017          }
2018          break;
2019        }
2020        case 8: {
2021          $t41_42 = (($t16_17 << 2) & 0xFF);
2022          $t42_43 = (($t22_23 & 0xFF) >> 6);
2023          $t43_44 = ($t41_42 | $t42_43);
2024          $t44_45 = ($t43_44 & 63);
2025          $rt.runtime.boundsCheck($t44_45, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
2026          $t45_46 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t44_45);
2027          $t46_47 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2028          $t47_48 = $t46_47.$get().addr(0);
2029          $t47_48.$set($t45_46);
2030          $t48_49 = $rt.builtin.sliceSlice($t46_47.$get(), undefined, undefined, undefined);
2031          $t49_50 = $rt.builtin.appendSlice($t38_39, $t48_49);
2032          $t50_51 = $t49_50;
2033          $block = 9; break;
2034          break;
2035        }
2036        case 9: {
2037          $t51_52 = ($t6_7 + 2);
2038          $t52_53 = ($t51_52 < $t0_1);
2039          if ($t52_53) {
2040            $block = 11; break;
2041          }
2042          else {
2043            $block = 13; break;
2044          }
2045          break;
2046        }
2047        case 10: {
2048          $t53_54 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2049          $t54_55 = $t53_54.$get().addr(0);
2050          $t54_55.$set(61);
2051          $t55_56 = $rt.builtin.sliceSlice($t53_54.$get(), undefined, undefined, undefined);
2052          $t56_57 = $rt.builtin.appendSlice($t38_39, $t55_56);
2053          $t50_51 = $t56_57;
2054          $block = 9; break;
2055          break;
2056        }
2057        case 11: {
2058          $t57_58 = ($t22_23 & 63);
2059          $rt.runtime.boundsCheck($t57_58, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
2060          $t58_59 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t57_58);
2061          $t59_60 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2062          $t60_61 = $t59_60.$get().addr(0);
2063          $t60_61.$set($t58_59);
2064          $t61_62 = $rt.builtin.sliceSlice($t59_60.$get(), undefined, undefined, undefined);
2065          $t62_63 = $rt.builtin.appendSlice($t50_51, $t61_62);
2066          $t63_64 = $t62_63;
2067          $block = 12; break;
2068          break;
2069        }
2070        case 12: {
2071          $t64_65 = ($t6_7 + 3);
2072          $t5_6 = $t63_64;
2073          $t6_7 = $t64_65;
2074          $block = 1; break;
2075          break;
2076        }
2077        case 13: {
2078          $t65_66 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2079          $t66_67 = $t65_66.$get().addr(0);
2080          $t66_67.$set(61);
2081          $t67_68 = $rt.builtin.sliceSlice($t65_66.$get(), undefined, undefined, undefined);
2082          $t68_69 = $rt.builtin.appendSlice($t50_51, $t67_68);
2083          $t63_64 = $t68_69;
2084          $block = 12; break;
2085          break;
2086        }
2087      }
2088    }
2089  }
2090  
2091  export function Base64Decode(s) {
2092    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;
2093    let $block = 0;
2094    while (true) {
2095      switch ($block) {
2096        case 0: {
2097          $t0_1 = $rt.builtin.len(s);
2098          $t6_7 = $t0_1;
2099          $t7_8 = 0;
2100          $block = 3; break;
2101          break;
2102        }
2103        case 1: {
2104          $t1_2 = ($t7_8 + 1);
2105          $t2_3 = ($t6_7 - 1);
2106          $t6_7 = $t2_3;
2107          $t7_8 = $t1_2;
2108          $block = 3; break;
2109          break;
2110        }
2111        case 2: {
2112          $t3_4 = ($t6_7 * 3);
2113          $t4_5 = Math.trunc($t3_4 / 4);
2114          $t5_6 = $rt.builtin.makeSlice(0, $t4_5, 0);
2115          $t12_13 = $t5_6;
2116          $t13_14 = 0;
2117          $t14_15 = 0;
2118          $t15_16 = 0;
2119          $block = 5; break;
2120          break;
2121        }
2122        case 3: {
2123          $t8_9 = ($t6_7 > 0);
2124          if ($t8_9) {
2125            $block = 4; break;
2126          }
2127          else {
2128            $block = 2; break;
2129          }
2130          break;
2131        }
2132        case 4: {
2133          $t9_10 = ($t6_7 - 1);
2134          $rt.runtime.boundsCheck($t9_10, $rt.builtin.byteLen(s));
2135          $t10_11 = $rt.builtin.stringByteAt(s, $t9_10);
2136          $t11_12 = ($t10_11 === 61);
2137          if ($t11_12) {
2138            $block = 1; break;
2139          }
2140          else {
2141            $block = 2; break;
2142          }
2143          break;
2144        }
2145        case 5: {
2146          $t16_17 = ($t15_16 < $t6_7);
2147          if ($t16_17) {
2148            $block = 6; break;
2149          }
2150          else {
2151            $block = 7; break;
2152          }
2153          break;
2154        }
2155        case 6: {
2156          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
2157          $t17_18 = $rt.builtin.stringByteAt(s, $t15_16);
2158          $t18_19 = b64val($t17_18);
2159          $t19_20 = ($t18_19 < 0);
2160          if ($t19_20) {
2161            $block = 8; break;
2162          }
2163          else {
2164            $block = 9; break;
2165          }
2166          break;
2167        }
2168        case 7: {
2169          return $t12_13;
2170          break;
2171        }
2172        case 8: {
2173          return null;
2174          break;
2175        }
2176        case 9: {
2177          $t20_21 = (($t13_14 << 6) >>> 0);
2178          $t21_22 = ($t18_19 >>> 0);
2179          $t22_23 = (($t20_21 | $t21_22) >>> 0);
2180          $t23_24 = ($t14_15 + 6);
2181          $t24_25 = ($t23_24 >= 8);
2182          if ($t24_25) {
2183            $block = 10; break;
2184          }
2185          else {
2186            $t33_34 = $t12_13;
2187            $t34_35 = $t23_24;
2188            $block = 11; break;
2189          }
2190          break;
2191        }
2192        case 10: {
2193          $t25_26 = ($t23_24 - 8);
2194          $t26_27 = $t25_26;
2195          $t27_28 = ($t22_23 >>> $t26_27);
2196          $t28_29 = ($t27_28 & 0xFF);
2197          $t29_30 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2198          $t30_31 = $t29_30.$get().addr(0);
2199          $t30_31.$set($t28_29);
2200          $t31_32 = $rt.builtin.sliceSlice($t29_30.$get(), undefined, undefined, undefined);
2201          $t32_33 = $rt.builtin.appendSlice($t12_13, $t31_32);
2202          $t33_34 = $t32_33;
2203          $t34_35 = $t25_26;
2204          $block = 11; break;
2205          break;
2206        }
2207        case 11: {
2208          $t35_36 = ($t15_16 + 1);
2209          $t12_13 = $t33_34;
2210          $t13_14 = $t22_23;
2211          $t14_15 = $t34_35;
2212          $t15_16 = $t35_36;
2213          $block = 5; break;
2214          break;
2215        }
2216      }
2217    }
2218  }
2219  
2220  export function b64val(c) {
2221    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;
2222    let $block = 0;
2223    while (true) {
2224      switch ($block) {
2225        case 0: {
2226          $t0_1 = (c >= 65);
2227          if ($t0_1) {
2228            $block = 4; break;
2229          }
2230          else {
2231            $block = 3; break;
2232          }
2233          break;
2234        }
2235        case 1: {
2236          $t1_2 = ((c - 65) & 0xFF);
2237          $t2_3 = $t1_2;
2238          return $t2_3;
2239          break;
2240        }
2241        case 2: {
2242          $t3_4 = ((c - 97) & 0xFF);
2243          $t4_5 = $t3_4;
2244          $t5_6 = ($t4_5 + 26);
2245          return $t5_6;
2246          break;
2247        }
2248        case 3: {
2249          $t6_7 = (c >= 97);
2250          if ($t6_7) {
2251            $block = 7; break;
2252          }
2253          else {
2254            $block = 6; break;
2255          }
2256          break;
2257        }
2258        case 4: {
2259          $t7_8 = (c <= 90);
2260          if ($t7_8) {
2261            $block = 1; break;
2262          }
2263          else {
2264            $block = 3; break;
2265          }
2266          break;
2267        }
2268        case 5: {
2269          $t8_9 = ((c - 48) & 0xFF);
2270          $t9_10 = $t8_9;
2271          $t10_11 = ($t9_10 + 52);
2272          return $t10_11;
2273          break;
2274        }
2275        case 6: {
2276          $t11_12 = (c >= 48);
2277          if ($t11_12) {
2278            $block = 10; break;
2279          }
2280          else {
2281            $block = 9; break;
2282          }
2283          break;
2284        }
2285        case 7: {
2286          $t12_13 = (c <= 122);
2287          if ($t12_13) {
2288            $block = 2; break;
2289          }
2290          else {
2291            $block = 6; break;
2292          }
2293          break;
2294        }
2295        case 8: {
2296          return 62;
2297          break;
2298        }
2299        case 9: {
2300          $t13_14 = (c === 43);
2301          if ($t13_14) {
2302            $block = 8; break;
2303          }
2304          else {
2305            $block = 12; break;
2306          }
2307          break;
2308        }
2309        case 10: {
2310          $t14_15 = (c <= 57);
2311          if ($t14_15) {
2312            $block = 5; break;
2313          }
2314          else {
2315            $block = 9; break;
2316          }
2317          break;
2318        }
2319        case 11: {
2320          return 63;
2321          break;
2322        }
2323        case 12: {
2324          $t15_16 = (c === 47);
2325          if ($t15_16) {
2326            $block = 11; break;
2327          }
2328          else {
2329            $block = 13; break;
2330          }
2331          break;
2332        }
2333        case 13: {
2334          return -1;
2335          break;
2336        }
2337      }
2338    }
2339  }
2340  
2341