tasmota-webserial-esptool 6.1.3 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,7 +50,7 @@ jobs:
50
50
  token: ${{ secrets.NPM_TOKEN }}
51
51
  strategy: all
52
52
  - name: Setup Pages
53
- uses: actions/configure-pages@v4
53
+ uses: actions/configure-pages@v5
54
54
  - name: Upload artifact
55
55
  uses: actions/upload-pages-artifact@v3
56
56
  with:
package/dist/const.d.ts CHANGED
@@ -122,6 +122,17 @@ export declare const ESP32H2_SPI_MISO_DLEN_OFFS = 40;
122
122
  export declare const ESP32H2_SPI_W0_OFFS = 88;
123
123
  export declare const ESP32H2_UART_DATE_REG_ADDR = 1610612860;
124
124
  export declare const ESP32H2_BOOTLOADER_FLASH_OFFSET = 0;
125
+ export declare const ESP32P4_SPI_REG_BASE = 1342754816;
126
+ export declare const ESP32P4_BASEFUSEADDR = 1343410176;
127
+ export declare const ESP32P4_MACFUSEADDR: number;
128
+ export declare const ESP32P4_SPI_USR_OFFS = 24;
129
+ export declare const ESP32P4_SPI_USR1_OFFS = 28;
130
+ export declare const ESP32P4_SPI_USR2_OFFS = 32;
131
+ export declare const ESP32P4_SPI_MOSI_DLEN_OFFS = 36;
132
+ export declare const ESP32P4_SPI_MISO_DLEN_OFFS = 40;
133
+ export declare const ESP32P4_SPI_W0_OFFS = 88;
134
+ export declare const ESP32P4_UART_DATE_REG_ADDR: number;
135
+ export declare const ESP32P4_BOOTLOADER_FLASH_OFFSET = 8192;
125
136
  export interface SpiFlashAddresses {
126
137
  regBase: number;
127
138
  baseFuse: number;
@@ -145,7 +156,8 @@ export declare const CHIP_FAMILY_ESP32C2 = 12994;
145
156
  export declare const CHIP_FAMILY_ESP32C3 = 12995;
146
157
  export declare const CHIP_FAMILY_ESP32C6 = 12998;
147
158
  export declare const CHIP_FAMILY_ESP32H2 = 12914;
148
- export type ChipFamily = typeof CHIP_FAMILY_ESP8266 | typeof CHIP_FAMILY_ESP32 | typeof CHIP_FAMILY_ESP32S2 | typeof CHIP_FAMILY_ESP32S3 | typeof CHIP_FAMILY_ESP32C2 | typeof CHIP_FAMILY_ESP32C3 | typeof CHIP_FAMILY_ESP32C6 | typeof CHIP_FAMILY_ESP32H2;
159
+ export declare const CHIP_FAMILY_ESP32P4 = 12928;
160
+ export type ChipFamily = typeof CHIP_FAMILY_ESP8266 | typeof CHIP_FAMILY_ESP32 | typeof CHIP_FAMILY_ESP32S2 | typeof CHIP_FAMILY_ESP32S3 | typeof CHIP_FAMILY_ESP32C2 | typeof CHIP_FAMILY_ESP32C3 | typeof CHIP_FAMILY_ESP32C6 | typeof CHIP_FAMILY_ESP32H2 | typeof CHIP_FAMILY_ESP32P4;
149
161
  interface ChipInfo {
150
162
  [magicValue: number]: {
151
163
  name: string;
package/dist/const.js CHANGED
@@ -127,6 +127,17 @@ export const ESP32H2_SPI_MISO_DLEN_OFFS = 0x28;
127
127
  export const ESP32H2_SPI_W0_OFFS = 0x58;
128
128
  export const ESP32H2_UART_DATE_REG_ADDR = 0x6000007c;
129
129
  export const ESP32H2_BOOTLOADER_FLASH_OFFSET = 0x0;
130
+ export const ESP32P4_SPI_REG_BASE = 0x5008d000;
131
+ export const ESP32P4_BASEFUSEADDR = 0x5012d000;
132
+ export const ESP32P4_MACFUSEADDR = 0x5012d000 + 0x044;
133
+ export const ESP32P4_SPI_USR_OFFS = 0x18;
134
+ export const ESP32P4_SPI_USR1_OFFS = 0x1c;
135
+ export const ESP32P4_SPI_USR2_OFFS = 0x20;
136
+ export const ESP32P4_SPI_MOSI_DLEN_OFFS = 0x24;
137
+ export const ESP32P4_SPI_MISO_DLEN_OFFS = 0x28;
138
+ export const ESP32P4_SPI_W0_OFFS = 0x58;
139
+ export const ESP32P4_UART_DATE_REG_ADDR = 0x500ca000 + 0x8c;
140
+ export const ESP32P4_BOOTLOADER_FLASH_OFFSET = 0x2000;
130
141
  export const SYNC_PACKET = toByteArray("\x07\x07\x12 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU");
131
142
  export const CHIP_DETECT_MAGIC_REG_ADDR = 0x40001000;
132
143
  // These values for the families are made up; nothing that esptool uses.
@@ -138,6 +149,7 @@ export const CHIP_FAMILY_ESP32C2 = 0x32c2;
138
149
  export const CHIP_FAMILY_ESP32C3 = 0x32c3;
139
150
  export const CHIP_FAMILY_ESP32C6 = 0x32c6;
140
151
  export const CHIP_FAMILY_ESP32H2 = 0x3272;
152
+ export const CHIP_FAMILY_ESP32P4 = 0x3280;
141
153
  export const CHIP_DETECT_MAGIC_VALUES = {
142
154
  0xfff0c101: { name: "ESP8266", family: CHIP_FAMILY_ESP8266 },
143
155
  0x00f01d83: { name: "ESP32", family: CHIP_FAMILY_ESP32 },
@@ -151,6 +163,8 @@ export const CHIP_DETECT_MAGIC_VALUES = {
151
163
  0x4361606f: { name: "ESP32-C3", family: CHIP_FAMILY_ESP32C3 },
152
164
  0xd7b73e80: { name: "ESP32-H2", family: CHIP_FAMILY_ESP32H2 },
153
165
  0x2ce0806f: { name: "ESP32-C6", family: CHIP_FAMILY_ESP32C6 },
166
+ 0x0addbad0: { name: "ESP32-P4", family: CHIP_FAMILY_ESP32P4 },
167
+ 0x0: { name: "ESP32-P4", family: CHIP_FAMILY_ESP32P4 },
154
168
  };
155
169
  // Commands supported by ESP8266 ROM bootloader
156
170
  export const ESP_FLASH_BEGIN = 0x02;
@@ -307,6 +321,20 @@ export const getSpiFlashAddresses = (chipFamily) => {
307
321
  uartDateReg: ESP32H2_UART_DATE_REG_ADDR,
308
322
  flashOffs: ESP32H2_BOOTLOADER_FLASH_OFFSET,
309
323
  };
324
+ case CHIP_FAMILY_ESP32P4:
325
+ return {
326
+ regBase: ESP32P4_SPI_REG_BASE,
327
+ baseFuse: ESP32P4_BASEFUSEADDR,
328
+ macFuse: ESP32P4_MACFUSEADDR,
329
+ usrOffs: ESP32P4_SPI_USR_OFFS,
330
+ usr1Offs: ESP32P4_SPI_USR1_OFFS,
331
+ usr2Offs: ESP32P4_SPI_USR2_OFFS,
332
+ mosiDlenOffs: ESP32P4_SPI_MOSI_DLEN_OFFS,
333
+ misoDlenOffs: ESP32P4_SPI_MISO_DLEN_OFFS,
334
+ w0Offs: ESP32P4_SPI_W0_OFFS,
335
+ uartDateReg: ESP32P4_UART_DATE_REG_ADDR,
336
+ flashOffs: ESP32P4_BOOTLOADER_FLASH_OFFSET,
337
+ };
310
338
  default:
311
339
  return {
312
340
  regBase: -1,
@@ -1,4 +1,3 @@
1
- /// <reference types="w3c-web-serial" />
2
1
  import { Logger, ChipFamily, SpiFlashAddresses } from "./const";
3
2
  export declare class ESPLoader extends EventTarget {
4
3
  port: SerialPort;
@@ -1,4 +1,4 @@
1
- import { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, CHIP_FAMILY_ESP8266, MAX_TIMEOUT, DEFAULT_TIMEOUT, ERASE_REGION_TIMEOUT_PER_MB, ESP_CHANGE_BAUDRATE, ESP_CHECKSUM_MAGIC, ESP_FLASH_BEGIN, ESP_FLASH_DATA, ESP_FLASH_END, ESP_MEM_BEGIN, ESP_MEM_DATA, ESP_MEM_END, ESP_READ_REG, ESP_WRITE_REG, ESP_SPI_ATTACH, ESP_SYNC, FLASH_SECTOR_SIZE, FLASH_WRITE_SIZE, STUB_FLASH_WRITE_SIZE, MEM_END_ROM_TIMEOUT, ROM_INVALID_RECV_MSG, SYNC_PACKET, SYNC_TIMEOUT, USB_RAM_BLOCK, ESP_ERASE_FLASH, CHIP_ERASE_TIMEOUT, timeoutPerMb, ESP_ROM_BAUD, USB_JTAG_SERIAL_PID, ESP_FLASH_DEFL_BEGIN, ESP_FLASH_DEFL_DATA, ESP_FLASH_DEFL_END, getSpiFlashAddresses, DETECTED_FLASH_SIZES, CHIP_DETECT_MAGIC_REG_ADDR, CHIP_DETECT_MAGIC_VALUES, SlipReadError, } from "./const";
1
+ import { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, CHIP_FAMILY_ESP32P4, CHIP_FAMILY_ESP8266, MAX_TIMEOUT, DEFAULT_TIMEOUT, ERASE_REGION_TIMEOUT_PER_MB, ESP_CHANGE_BAUDRATE, ESP_CHECKSUM_MAGIC, ESP_FLASH_BEGIN, ESP_FLASH_DATA, ESP_FLASH_END, ESP_MEM_BEGIN, ESP_MEM_DATA, ESP_MEM_END, ESP_READ_REG, ESP_WRITE_REG, ESP_SPI_ATTACH, ESP_SYNC, FLASH_SECTOR_SIZE, FLASH_WRITE_SIZE, STUB_FLASH_WRITE_SIZE, MEM_END_ROM_TIMEOUT, ROM_INVALID_RECV_MSG, SYNC_PACKET, SYNC_TIMEOUT, USB_RAM_BLOCK, ESP_ERASE_FLASH, CHIP_ERASE_TIMEOUT, timeoutPerMb, ESP_ROM_BAUD, USB_JTAG_SERIAL_PID, ESP_FLASH_DEFL_BEGIN, ESP_FLASH_DEFL_DATA, ESP_FLASH_DEFL_END, getSpiFlashAddresses, DETECTED_FLASH_SIZES, CHIP_DETECT_MAGIC_REG_ADDR, CHIP_DETECT_MAGIC_VALUES, SlipReadError, } from "./const";
2
2
  import { getStubCode } from "./stubs";
3
3
  import { hexFormatter, sleep, slipEncode, toHex } from "./util";
4
4
  // @ts-ignore
@@ -178,7 +178,8 @@ export class ESPLoader extends EventTarget {
178
178
  this.chipFamily == CHIP_FAMILY_ESP32C2 ||
179
179
  this.chipFamily == CHIP_FAMILY_ESP32C3 ||
180
180
  this.chipFamily == CHIP_FAMILY_ESP32C6 ||
181
- this.chipFamily == CHIP_FAMILY_ESP32H2) {
181
+ this.chipFamily == CHIP_FAMILY_ESP32H2 ||
182
+ this.chipFamily == CHIP_FAMILY_ESP32P4) {
182
183
  macAddr[0] = (mac1 >> 8) & 0xff;
183
184
  macAddr[1] = mac1 & 0xff;
184
185
  macAddr[2] = (mac0 >> 24) & 0xff;
@@ -225,6 +226,7 @@ export class ESPLoader extends EventTarget {
225
226
  CHIP_FAMILY_ESP32C3,
226
227
  CHIP_FAMILY_ESP32C6,
227
228
  CHIP_FAMILY_ESP32H2,
229
+ CHIP_FAMILY_ESP32P4,
228
230
  ].includes(this.chipFamily)) {
229
231
  statusLen = 4;
230
232
  }
@@ -582,6 +584,7 @@ export class ESPLoader extends EventTarget {
582
584
  CHIP_FAMILY_ESP32C3,
583
585
  CHIP_FAMILY_ESP32C6,
584
586
  CHIP_FAMILY_ESP32H2,
587
+ CHIP_FAMILY_ESP32P4,
585
588
  ].includes(this.chipFamily)) {
586
589
  await this.checkCommand(ESP_SPI_ATTACH, new Array(8).fill(0));
587
590
  }
@@ -607,7 +610,8 @@ export class ESPLoader extends EventTarget {
607
610
  this.chipFamily == CHIP_FAMILY_ESP32C2 ||
608
611
  this.chipFamily == CHIP_FAMILY_ESP32C3 ||
609
612
  this.chipFamily == CHIP_FAMILY_ESP32C6 ||
610
- this.chipFamily == CHIP_FAMILY_ESP32H2) {
613
+ this.chipFamily == CHIP_FAMILY_ESP32H2 ||
614
+ this.chipFamily == CHIP_FAMILY_ESP32P4) {
611
615
  buffer = buffer.concat(pack("<I", encrypted ? 1 : 0));
612
616
  }
613
617
  this.logger.log("Erase size " +
package/dist/index.d.ts CHANGED
@@ -2,5 +2,5 @@ import { Logger } from "./const";
2
2
  import { ESPLoader } from "./esp_loader";
3
3
  export type { Logger } from "./const";
4
4
  export { ESPLoader } from "./esp_loader";
5
- export { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP8266, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, } from "./const";
5
+ export { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP8266, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, CHIP_FAMILY_ESP32P4, } from "./const";
6
6
  export declare const connect: (logger: Logger) => Promise<ESPLoader>;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ESP_ROM_BAUD } from "./const";
2
2
  import { ESPLoader } from "./esp_loader";
3
3
  export { ESPLoader } from "./esp_loader";
4
- export { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP8266, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, } from "./const";
4
+ export { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP8266, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, CHIP_FAMILY_ESP32P4, } from "./const";
5
5
  export const connect = async (logger) => {
6
6
  // - Request a port and open a connection.
7
7
  const port = await navigator.serial.requestPort();
@@ -0,0 +1,8 @@
1
+ {
2
+ "entry": 1341195918,
3
+ "text": "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",
4
+ "text_start": 1341194240,
5
+ "data": "EAD1TwYK8U9WCvFPrgrxT4QL8U/wC/FPngvxT9QI8U9AC/FPgAvxT8IK8U+ECPFP9grxT4QI8U/gCfFPJgrxT1YK8U+uCvFP8gnxTzgJ8U9oCfFP7gnxT0AO8U9WCvFPCA3xTwAO8U/EB/FPJA7xT8QH8U/EB/FPxAfxT8QH8U/EB/FPxAfxT8QH8U/EB/FPpAzxT8QH8U8mDfFPAA7xTw==",
6
+ "data_start": 1341533100,
7
+ "bss_start": 1341456384
8
+ }
@@ -1,4 +1,4 @@
1
- import { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP8266, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2 } from "../const";
1
+ import { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP8266, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32H2, CHIP_FAMILY_ESP32P4 } from "../const";
2
2
  import { toByteArray } from "../util";
3
3
  export const getStubCode = async (chipFamily) => {
4
4
  let stubcode;
@@ -26,6 +26,9 @@ export const getStubCode = async (chipFamily) => {
26
26
  else if (chipFamily == CHIP_FAMILY_ESP32H2) {
27
27
  stubcode = await import("./esp32h2.json");
28
28
  }
29
+ else if (chipFamily == CHIP_FAMILY_ESP32P4) {
30
+ stubcode = await import("./esp32p4.json");
31
+ }
29
32
  // Base64 decode the text and data
30
33
  return {
31
34
  ...stubcode,
@@ -0,0 +1 @@
1
+ var A=1341195918,B="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",w=1341194240,E="EAD1TwYK8U9WCvFPrgrxT4QL8U/wC/FPngvxT9QI8U9AC/FPgAvxT8IK8U+ECPFP9grxT4QI8U/gCfFPJgrxT1YK8U+uCvFP8gnxTzgJ8U9oCfFP7gnxT0AO8U9WCvFPCA3xTwAO8U/EB/FPJA7xT8QH8U/EB/FPxAfxT8QH8U/EB/FPxAfxT8QH8U/EB/FPpAzxT8QH8U8mDfFPAA7xTw==",c=1341533100,M=1341456384,T={entry:A,text:B,text_start:w,data:E,data_start:c,bss_start:M};export{M as bss_start,E as data,c as data_start,T as default,A as entry,B as text,w as text_start};
package/dist/web/index.js CHANGED
@@ -1 +1 @@
1
- const t=t=>{let e=[];for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);i<=255&&e.push(i)}return e},e=t=>"["+t.map((t=>a(t))).join(", ")+"]",a=(t,e=2)=>{let a=t.toString(16).toUpperCase();return a.startsWith("-")?"-0x"+a.substring(1).padStart(e,"0"):"0x"+a.padStart(e,"0")},i=t=>new Promise((e=>setTimeout(e,t))),s={18:"256KB",19:"512KB",20:"1MB",21:"2MB",22:"4MB",23:"8MB",24:"16MB",25:"32MB",26:"64MB"},r=115200,n=t(" UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"),o=33382,l=50,h=12882,d=12883,f=12994,_=12995,c=12998,u=12914,w={4293968129:{name:"ESP8266",family:o},15736195:{name:"ESP32",family:l},1990:{name:"ESP32-S2",family:h},9:{name:"ESP32-S3",family:d},1867591791:{name:"ESP32-C2",family:f},2084675695:{name:"ESP32-C2",family:f},1763790959:{name:"ESP32-C3",family:_},456216687:{name:"ESP32-C3",family:_},1216438383:{name:"ESP32-C3",family:_},1130455151:{name:"ESP32-C3",family:_},3619110528:{name:"ESP32-H2",family:u},752910447:{name:"ESP32-C6",family:c}},g=3e3,m=6e5,p=(t,e)=>{let a=Math.floor(t*(e/486));return a<g?g:a},b=t=>{switch(t){case l:return{regBase:1072963584,baseFuse:1073061888,macFuse:1073061888,usrOffs:28,usr1Offs:32,usr2Offs:36,mosiDlenOffs:40,misoDlenOffs:44,w0Offs:128,uartDateReg:1610612856,flashOffs:4096};case h:return{regBase:1061167104,baseFuse:1061265408,macFuse:1061265476,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612856,flashOffs:4096};case d:return{regBase:1610620928,usrOffs:24,baseFuse:1610641408,macFuse:1610641476,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612864,flashOffs:0};case o:return{regBase:1610613248,usrOffs:28,baseFuse:1072693328,macFuse:1072693328,usr1Offs:32,usr2Offs:36,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:64,uartDateReg:1610612856,flashOffs:0};case f:case _:return{regBase:1610620928,baseFuse:1610647552,macFuse:1610647620,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case c:return{regBase:1610625024,baseFuse:1611335680,macFuse:1611335748,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case u:return{regBase:1610620928,baseFuse:1610719232,macFuse:1610719300,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};default:return{regBase:-1,baseFuse:-1,macFuse:-1,usrOffs:-1,usr1Offs:-1,usr2Offs:-1,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:-1,uartDateReg:-1,flashOffs:-1}}};class y extends Error{constructor(t){super(t),this.name="SlipReadError"}}const k=async e=>{let a;return e==l?a=await import("./esp32-BLbsWvxO.js"):e==h?a=await import("./esp32s2-CrsP1231.js"):e==d?a=await import("./esp32s3-CiJyd6Fk.js"):e==o?a=await import("./esp8266-CQFcqJ_a.js"):e==f?a=await import("./esp32c2-wLQhZItC.js"):e==_?a=await import("./esp32c3-DmSvHQKL.js"):e==c?a=await import("./esp32c6-ZuxjUVr4.js"):e==u&&(a=await import("./esp32h2-CZ4EIL3w.js")),{...a,text:t(atob(a.text)),data:t(atob(a.data))}};function v(t){let e=t.length;for(;--e>=0;)t[e]=0}const x=256,z=286,R=30,S=15,E=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),U=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),D=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),A=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I=new Array(576);v(I);const O=new Array(60);v(O);const F=new Array(512);v(F);const B=new Array(256);v(B);const T=new Array(29);v(T);const C=new Array(R);function Z(t,e,a,i,s){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=s,this.has_stree=t&&t.length}let L,M,N;function P(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}v(C);const H=t=>t<256?F[t]:F[256+(t>>>7)],$=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},j=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,$(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},V=(t,e,a)=>{j(t,a[2*e],a[2*e+1])},W=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},K=(t,e,a)=>{const i=new Array(16);let s,r,n=0;for(s=1;s<=S;s++)n=n+a[s-1]<<1,i[s]=n;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=W(i[e]++,e))}},Y=t=>{let e;for(e=0;e<z;e++)t.dyn_ltree[2*e]=0;for(e=0;e<R;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},q=t=>{t.bi_valid>8?$(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},G=(t,e,a,i)=>{const s=2*e,r=2*a;return t[s]<t[r]||t[s]===t[r]&&i[e]<=i[a]},X=(t,e,a)=>{const i=t.heap[a];let s=a<<1;for(;s<=t.heap_len&&(s<t.heap_len&&G(e,t.heap[s+1],t.heap[s],t.depth)&&s++,!G(e,i,t.heap[s],t.depth));)t.heap[a]=t.heap[s],a=s,s<<=1;t.heap[a]=i},Q=(t,e,a)=>{let i,s,r,n,o=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+o++],i+=(255&t.pending_buf[t.sym_buf+o++])<<8,s=t.pending_buf[t.sym_buf+o++],0===i?V(t,s,e):(r=B[s],V(t,r+x+1,e),n=E[r],0!==n&&(s-=T[r],j(t,s,n)),i--,r=H(i),V(t,r,a),n=U[r],0!==n&&(i-=C[r],j(t,i,n)))}while(o<t.sym_next);V(t,256,e)},J=(t,e)=>{const a=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.elems;let n,o,l,h=-1;for(t.heap_len=0,t.heap_max=573,n=0;n<r;n++)0!==a[2*n]?(t.heap[++t.heap_len]=h=n,t.depth[n]=0):a[2*n+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,a[2*l]=1,t.depth[l]=0,t.opt_len--,s&&(t.static_len-=i[2*l+1]);for(e.max_code=h,n=t.heap_len>>1;n>=1;n--)X(t,a,n);l=r;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],X(t,a,1),o=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=o,a[2*l]=a[2*n]+a[2*o],t.depth[l]=(t.depth[n]>=t.depth[o]?t.depth[n]:t.depth[o])+1,a[2*n+1]=a[2*o+1]=l,t.heap[1]=l++,X(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,d,f,_,c,u,w=0;for(_=0;_<=S;_++)t.bl_count[_]=0;for(a[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)d=t.heap[h],_=a[2*a[2*d+1]+1]+1,_>l&&(_=l,w++),a[2*d+1]=_,d>i||(t.bl_count[_]++,c=0,d>=o&&(c=n[d-o]),u=a[2*d],t.opt_len+=u*(_+c),r&&(t.static_len+=u*(s[2*d+1]+c)));if(0!==w){do{for(_=l-1;0===t.bl_count[_];)_--;t.bl_count[_]--,t.bl_count[_+1]+=2,t.bl_count[l]--,w-=2}while(w>0);for(_=l;0!==_;_--)for(d=t.bl_count[_];0!==d;)f=t.heap[--h],f>i||(a[2*f+1]!==_&&(t.opt_len+=(_-a[2*f+1])*a[2*f],a[2*f+1]=_),d--)}})(t,e),K(a,h,t.bl_count)},tt=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)s=n,n=e[2*(i+1)+1],++o<l&&s===n||(o<h?t.bl_tree[2*s]+=o:0!==s?(s!==r&&t.bl_tree[2*s]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4))},et=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),i=0;i<=a;i++)if(s=n,n=e[2*(i+1)+1],!(++o<l&&s===n)){if(o<h)do{V(t,s,t.bl_tree)}while(0!=--o);else 0!==s?(s!==r&&(V(t,s,t.bl_tree),o--),V(t,16,t.bl_tree),j(t,o-3,2)):o<=10?(V(t,17,t.bl_tree),j(t,o-3,3)):(V(t,18,t.bl_tree),j(t,o-11,7));o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4)}};let at=!1;const it=(t,e,a,i)=>{j(t,0+(i?1:0),3),q(t),$(t,a),$(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var st=(t,e,a,i)=>{let s,r,n=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<x;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),J(t,t.l_desc),J(t,t.d_desc),n=(t=>{let e;for(tt(t,t.dyn_ltree,t.l_desc.max_code),tt(t,t.dyn_dtree,t.d_desc.max_code),J(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*A[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=a+5,a+4<=s&&-1!==e?it(t,e,a,i):4===t.strategy||r===s?(j(t,2+(i?1:0),3),Q(t,I,O)):(j(t,4+(i?1:0),3),((t,e,a,i)=>{let s;for(j(t,e-257,5),j(t,a-1,5),j(t,i-4,4),s=0;s<i;s++)j(t,t.bl_tree[2*A[s]+1],3);et(t,t.dyn_ltree,e-1),et(t,t.dyn_dtree,a-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,n+1),Q(t,t.dyn_ltree,t.dyn_dtree)),Y(t),i&&q(t)},rt={_tr_init:t=>{at||((()=>{let t,e,a,i,s;const r=new Array(16);for(a=0,i=0;i<28;i++)for(T[i]=a,t=0;t<1<<E[i];t++)B[a++]=i;for(B[a-1]=i,s=0,i=0;i<16;i++)for(C[i]=s,t=0;t<1<<U[i];t++)F[s++]=i;for(s>>=7;i<R;i++)for(C[i]=s<<7,t=0;t<1<<U[i]-7;t++)F[256+s++]=i;for(e=0;e<=S;e++)r[e]=0;for(t=0;t<=143;)I[2*t+1]=8,t++,r[8]++;for(;t<=255;)I[2*t+1]=9,t++,r[9]++;for(;t<=279;)I[2*t+1]=7,t++,r[7]++;for(;t<=287;)I[2*t+1]=8,t++,r[8]++;for(K(I,287,r),t=0;t<R;t++)O[2*t+1]=5,O[2*t]=W(t,5);L=new Z(I,E,257,z,S),M=new Z(O,U,0,R,S),N=new Z(new Array(0),D,0,19,7)})(),at=!0),t.l_desc=new P(t.dyn_ltree,L),t.d_desc=new P(t.dyn_dtree,M),t.bl_desc=new P(t.bl_tree,N),t.bi_buf=0,t.bi_valid=0,Y(t)},_tr_stored_block:it,_tr_flush_block:st,_tr_tally:(t,e,a)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(B[a]+x+1)]++,t.dyn_dtree[2*H(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{j(t,2,3),V(t,256,I),(t=>{16===t.bi_valid?($(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var nt=(t,e,a,i)=>{let s=65535&t|0,r=t>>>16&65535|0,n=0;for(;0!==a;){n=a>2e3?2e3:a,a-=n;do{s=s+e[i++]|0,r=r+s|0}while(--n);s%=65521,r%=65521}return s|r<<16|0};const ot=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var lt=(t,e,a,i)=>{const s=ot,r=i+a;t^=-1;for(let a=i;a<r;a++)t=t>>>8^s[255&(t^e[a])];return-1^t},ht={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},dt={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:ft,_tr_stored_block:_t,_tr_flush_block:ct,_tr_tally:ut,_tr_align:wt}=rt,{Z_NO_FLUSH:gt,Z_PARTIAL_FLUSH:mt,Z_FULL_FLUSH:pt,Z_FINISH:bt,Z_BLOCK:yt,Z_OK:kt,Z_STREAM_END:vt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:zt,Z_BUF_ERROR:Rt,Z_DEFAULT_COMPRESSION:St,Z_FILTERED:Et,Z_HUFFMAN_ONLY:Ut,Z_RLE:Dt,Z_FIXED:At,Z_DEFAULT_STRATEGY:It,Z_UNKNOWN:Ot,Z_DEFLATED:Ft}=dt,Bt=258,Tt=262,Ct=42,Zt=113,Lt=666,Mt=(t,e)=>(t.msg=ht[e],e),Nt=t=>2*t-(t>4?9:0),Pt=t=>{let e=t.length;for(;--e>=0;)t[e]=0},Ht=t=>{let e,a,i,s=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=s?a-s:0}while(--e);e=s,i=e;do{a=t.prev[--i],t.prev[i]=a>=s?a-s:0}while(--e)};let $t=(t,e,a)=>(e<<t.hash_shift^a)&t.hash_mask;const jt=t=>{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},Vt=(t,e)=>{ct(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,jt(t.strm)},Wt=(t,e)=>{t.pending_buf[t.pending++]=e},Kt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Yt=(t,e,a,i)=>{let s=t.avail_in;return s>i&&(s=i),0===s?0:(t.avail_in-=s,e.set(t.input.subarray(t.next_in,t.next_in+s),a),1===t.state.wrap?t.adler=nt(t.adler,e,s,a):2===t.state.wrap&&(t.adler=lt(t.adler,e,s,a)),t.next_in+=s,t.total_in+=s,s)},qt=(t,e)=>{let a,i,s=t.max_chain_length,r=t.strstart,n=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-Tt?t.strstart-(t.w_size-Tt):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+Bt;let c=h[r+n-1],u=h[r+n];t.prev_length>=t.good_match&&(s>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+n]===u&&h[a+n-1]===c&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do{}while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=Bt-(_-r),r=_-Bt,i>n){if(t.match_start=e,n=i,i>=o)break;c=h[r+n-1],u=h[r+n]}}}while((e=f[e&d])>l&&0!=--s);return n<=t.lookahead?n:t.lookahead},Gt=t=>{const e=t.w_size;let a,i,s;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Tt)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),Ht(t),i+=e),0===t.strm.avail_in)break;if(a=Yt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=$t(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=$t(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<Tt&&0!==t.strm.avail_in)},Xt=(t,e)=>{let a,i,s,r=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,n=0,o=t.strm.avail_in;do{if(a=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s)break;if(s=t.strm.avail_out-s,i=t.strstart-t.block_start,a>i+t.strm.avail_in&&(a=i+t.strm.avail_in),a>s&&(a=s),a<r&&(0===a&&e!==bt||e===gt||a!==i+t.strm.avail_in))break;n=e===bt&&a===i+t.strm.avail_in?1:0,_t(t,0,0,n),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,jt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(Yt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===n);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),n?4:e!==gt&&e!==bt&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(Yt(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,r=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=r||(i||e===bt)&&e!==gt&&0===t.strm.avail_in&&i<=s)&&(a=i>s?s:i,n=e===bt&&0===t.strm.avail_in&&a===i?1:0,_t(t,t.block_start,a,n),t.block_start+=a,jt(t.strm)),n?3:1)},Qt=(t,e)=>{let a,i;for(;;){if(t.lookahead<Tt){if(Gt(t),t.lookahead<Tt&&e===gt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-Tt&&(t.match_length=qt(t,a)),t.match_length>=3)if(i=ut(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=$t(t,t.ins_h,t.window[t.strstart+1]);else i=ut(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(Vt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2},Jt=(t,e)=>{let a,i,s;for(;;){if(t.lookahead<Tt){if(Gt(t),t.lookahead<Tt&&e===gt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-Tt&&(t.match_length=qt(t,a),t.match_length<=5&&(t.strategy===Et||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){s=t.strstart+t.lookahead-3,i=ut(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=s&&(t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(Vt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=ut(t,0,t.window[t.strstart-1]),i&&Vt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=ut(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2};function te(t,e,a,i,s){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=s}const ee=[new te(0,0,0,0,Xt),new te(4,4,8,4,Qt),new te(4,5,16,8,Qt),new te(4,6,32,32,Qt),new te(4,4,16,16,Jt),new te(8,16,32,32,Jt),new te(8,16,128,128,Jt),new te(8,32,128,256,Jt),new te(32,128,258,1024,Jt),new te(32,258,258,4096,Jt)];function ae(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ft,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Pt(this.dyn_ltree),Pt(this.dyn_dtree),Pt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Pt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Pt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ie=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Ct&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Zt&&e.status!==Lt?1:0},se=t=>{if(ie(t))return Mt(t,xt);t.total_in=t.total_out=0,t.data_type=Ot;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Ct:Zt,t.adler=2===e.wrap?0:1,e.last_flush=-2,ft(e),kt},re=t=>{const e=se(t);var a;return e===kt&&((a=t.state).window_size=2*a.w_size,Pt(a.head),a.max_lazy_match=ee[a.level].max_lazy,a.good_match=ee[a.level].good_length,a.nice_match=ee[a.level].nice_length,a.max_chain_length=ee[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},ne=(t,e,a,i,s,r)=>{if(!t)return xt;let n=1;if(e===St&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),s<1||s>9||a!==Ft||i<8||i>15||e<0||e>9||r<0||r>At||8===i&&1!==n)return Mt(t,xt);8===i&&(i=9);const o=new ae;return t.state=o,o.strm=t,o.status=Ct,o.wrap=n,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=s+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<s+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=e,o.strategy=r,o.method=a,re(t)};var oe={deflateInit:(t,e)=>ne(t,e,Ft,15,8,It),deflateInit2:ne,deflateReset:re,deflateResetKeep:se,deflateSetHeader:(t,e)=>ie(t)||2!==t.state.wrap?xt:(t.state.gzhead=e,kt),deflate:(t,e)=>{if(ie(t)||e>yt||e<0)return t?Mt(t,xt):xt;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===Lt&&e!==bt)return Mt(t,0===t.avail_out?Rt:xt);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(jt(t),0===t.avail_out)return a.last_flush=-1,kt}else if(0===t.avail_in&&Nt(e)<=Nt(i)&&e!==bt)return Mt(t,Rt);if(a.status===Lt&&0!==t.avail_in)return Mt(t,Rt);if(a.status===Ct&&0===a.wrap&&(a.status=Zt),a.status===Ct){let e=Ft+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=Ut||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,Kt(a,e),0!==a.strstart&&(Kt(a,t.adler>>>16),Kt(a,65535&t.adler)),t.adler=1,a.status=Zt,jt(t),0!==a.pending)return a.last_flush=-1,kt}if(57===a.status)if(t.adler=0,Wt(a,31),Wt(a,139),Wt(a,8),a.gzhead)Wt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Wt(a,255&a.gzhead.time),Wt(a,a.gzhead.time>>8&255),Wt(a,a.gzhead.time>>16&255),Wt(a,a.gzhead.time>>24&255),Wt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Wt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Wt(a,255&a.gzhead.extra.length),Wt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=lt(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Wt(a,0),Wt(a,0),Wt(a,0),Wt(a,0),Wt(a,0),Wt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Wt(a,3),a.status=Zt,jt(t),0!==a.pending)return a.last_flush=-1,kt;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let s=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=lt(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=s,jt(t),0!==a.pending)return a.last_flush=-1,kt;e=0,i-=s}let s=new Uint8Array(a.gzhead.extra);a.pending_buf.set(s.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=lt(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i)),jt(t),0!==a.pending)return a.last_flush=-1,kt;i=0}e=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Wt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i)),jt(t),0!==a.pending)return a.last_flush=-1,kt;i=0}e=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Wt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(jt(t),0!==a.pending))return a.last_flush=-1,kt;Wt(a,255&t.adler),Wt(a,t.adler>>8&255),t.adler=0}if(a.status=Zt,jt(t),0!==a.pending)return a.last_flush=-1,kt}if(0!==t.avail_in||0!==a.lookahead||e!==gt&&a.status!==Lt){let i=0===a.level?Xt(a,e):a.strategy===Ut?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Gt(t),0===t.lookahead)){if(e===gt)return 1;break}if(t.match_length=0,a=ut(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(Vt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===Dt?((t,e)=>{let a,i,s,r;const n=t.window;for(;;){if(t.lookahead<=Bt){if(Gt(t),t.lookahead<=Bt&&e===gt)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(s=t.strstart-1,i=n[s],i===n[++s]&&i===n[++s]&&i===n[++s])){r=t.strstart+Bt;do{}while(i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&s<r);t.match_length=Bt-(r-s),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=ut(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=ut(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(Vt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2})(a,e):ee[a.level].func(a,e);if(3!==i&&4!==i||(a.status=Lt),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),kt;if(2===i&&(e===mt?wt(a):e!==yt&&(_t(a,0,0,!1),e===pt&&(Pt(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),jt(t),0===t.avail_out))return a.last_flush=-1,kt}return e!==bt?kt:a.wrap<=0?vt:(2===a.wrap?(Wt(a,255&t.adler),Wt(a,t.adler>>8&255),Wt(a,t.adler>>16&255),Wt(a,t.adler>>24&255),Wt(a,255&t.total_in),Wt(a,t.total_in>>8&255),Wt(a,t.total_in>>16&255),Wt(a,t.total_in>>24&255)):(Kt(a,t.adler>>>16),Kt(a,65535&t.adler)),jt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?kt:vt)},deflateEnd:t=>{if(ie(t))return xt;const e=t.state.status;return t.state=null,e===Zt?Mt(t,zt):kt},deflateSetDictionary:(t,e)=>{let a=e.length;if(ie(t))return xt;const i=t.state,s=i.wrap;if(2===s||1===s&&i.status!==Ct||i.lookahead)return xt;if(1===s&&(t.adler=nt(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===s&&(Pt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const r=t.avail_in,n=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Gt(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=$t(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Gt(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=n,t.input=o,t.avail_in=r,i.wrap=s,kt},deflateInfo:"pako deflate (from Nodeca project)"};const le=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var he={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)le(a,e)&&(t[e]=a[e])}}return t},flattenChunks:t=>{let e=0;for(let a=0,i=t.length;a<i;a++)e+=t[a].length;const a=new Uint8Array(e);for(let e=0,i=0,s=t.length;e<s;e++){let s=t[e];a.set(s,i),i+=s.length}return a}};let de=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){de=!1}const fe=new Uint8Array(256);for(let t=0;t<256;t++)fe[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;fe[254]=fe[254]=1;var _e={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,s,r,n=t.length,o=0;for(s=0;s<n;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(e=new Uint8Array(o),r=0,s=0;r<o;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),a<128?e[r++]=a:a<2048?(e[r++]=192|a>>>6,e[r++]=128|63&a):a<65536?(e[r++]=224|a>>>12,e[r++]=128|a>>>6&63,e[r++]=128|63&a):(e[r++]=240|a>>>18,e[r++]=128|a>>>12&63,e[r++]=128|a>>>6&63,e[r++]=128|63&a);return e},buf2string:(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,s;const r=new Array(2*a);for(s=0,i=0;i<a;){let e=t[i++];if(e<128){r[s++]=e;continue}let n=fe[e];if(n>4)r[s++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<a;)e=e<<6|63&t[i++],n--;n>1?r[s++]=65533:e<65536?r[s++]=e:(e-=65536,r[s++]=55296|e>>10&1023,r[s++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&de)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a})(r,s)},utf8border:(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+fe[t[a]]>e?a:e}};var ce=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const ue=Object.prototype.toString,{Z_NO_FLUSH:we,Z_SYNC_FLUSH:ge,Z_FULL_FLUSH:me,Z_FINISH:pe,Z_OK:be,Z_STREAM_END:ye,Z_DEFAULT_COMPRESSION:ke,Z_DEFAULT_STRATEGY:ve,Z_DEFLATED:xe}=dt;function ze(t){this.options=he.assign({level:ke,method:xe,chunkSize:16384,windowBits:15,memLevel:8,strategy:ve},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ce,this.strm.avail_out=0;let a=oe.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==be)throw new Error(ht[a]);if(e.header&&oe.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?_e.string2buf(e.dictionary):"[object ArrayBuffer]"===ue.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=oe.deflateSetDictionary(this.strm,t),a!==be)throw new Error(ht[a]);this._dict_set=!0}}function Re(t,e){const a=new ze(e);if(a.push(t,!0),a.err)throw a.msg||ht[a.err];return a.result}ze.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let s,r;if(this.ended)return!1;for(r=e===~~e?e:!0===e?pe:we,"string"==typeof t?a.input=_e.string2buf(t):"[object ArrayBuffer]"===ue.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===ge||r===me)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(s=oe.deflate(a,r),s===ye)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),s=oe.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===be;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ze.prototype.onData=function(t){this.chunks.push(t)},ze.prototype.onEnd=function(t){t===be&&(this.result=he.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Se={Deflate:ze,deflate:Re,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Re(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Re(t,e)},constants:dt};const Ee=16209;var Ue=function(t,e){let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z,R;const S=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),s=t.next_out,R=t.output,r=s-(e-t.avail_out),n=s+(t.avail_out-257),o=S.dmax,l=S.wsize,h=S.whave,d=S.wnext,f=S.window,_=S.hold,c=S.bits,u=S.lencode,w=S.distcode,g=(1<<S.lenbits)-1,m=(1<<S.distbits)-1;t:do{c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=u[_&g];e:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,0===b)R[s++]=65535&p;else{if(!(16&b)){if(0==(64&b)){p=u[(65535&p)+(_&(1<<b)-1)];continue e}if(32&b){S.mode=16191;break t}t.msg="invalid literal/length code",S.mode=Ee;break t}y=65535&p,b&=15,b&&(c<b&&(_+=z[a++]<<c,c+=8),y+=_&(1<<b)-1,_>>>=b,c-=b),c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=w[_&m];a:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,!(16&b)){if(0==(64&b)){p=w[(65535&p)+(_&(1<<b)-1)];continue a}t.msg="invalid distance code",S.mode=Ee;break t}if(k=65535&p,b&=15,c<b&&(_+=z[a++]<<c,c+=8,c<b&&(_+=z[a++]<<c,c+=8)),k+=_&(1<<b)-1,k>o){t.msg="invalid distance too far back",S.mode=Ee;break t}if(_>>>=b,c-=b,b=s-r,k>b){if(b=k-b,b>h&&S.sane){t.msg="invalid distance too far back",S.mode=Ee;break t}if(v=0,x=f,0===d){if(v+=l-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}else if(d<b){if(v+=l+d-b,b-=d,b<y){y-=b;do{R[s++]=f[v++]}while(--b);if(v=0,d<y){b=d,y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}}else if(v+=d-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}for(;y>2;)R[s++]=x[v++],R[s++]=x[v++],R[s++]=x[v++],y-=3;y&&(R[s++]=x[v++],y>1&&(R[s++]=x[v++]))}else{v=s-k;do{R[s++]=R[v++],R[s++]=R[v++],R[s++]=R[v++],y-=3}while(y>2);y&&(R[s++]=R[v++],y>1&&(R[s++]=R[v++]))}break}}break}}while(a<i&&s<n);y=c>>3,a-=y,c-=y<<3,_&=(1<<c)-1,t.next_in=a,t.next_out=s,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=s<n?n-s+257:257-(s-n),S.hold=_,S.bits=c};const De=15,Ae=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ie=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Oe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Fe=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Be=(t,e,a,i,s,r,n,o)=>{const l=o.bits;let h,d,f,_,c,u,w=0,g=0,m=0,p=0,b=0,y=0,k=0,v=0,x=0,z=0,R=null;const S=new Uint16Array(16),E=new Uint16Array(16);let U,D,A,I=null;for(w=0;w<=De;w++)S[w]=0;for(g=0;g<i;g++)S[e[a+g]]++;for(b=l,p=De;p>=1&&0===S[p];p--);if(b>p&&(b=p),0===p)return s[r++]=20971520,s[r++]=20971520,o.bits=1,0;for(m=1;m<p&&0===S[m];m++);for(b<m&&(b=m),v=1,w=1;w<=De;w++)if(v<<=1,v-=S[w],v<0)return-1;if(v>0&&(0===t||1!==p))return-1;for(E[1]=0,w=1;w<De;w++)E[w+1]=E[w]+S[w];for(g=0;g<i;g++)0!==e[a+g]&&(n[E[e[a+g]]++]=g);if(0===t?(R=I=n,u=20):1===t?(R=Ae,I=Ie,u=257):(R=Oe,I=Fe,u=0),z=0,g=0,w=m,c=r,y=b,k=0,f=-1,x=1<<b,_=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){U=w-k,n[g]+1<u?(D=0,A=n[g]):n[g]>=u?(D=I[n[g]-u],A=R[n[g]-u]):(D=96,A=0),h=1<<w-k,d=1<<y,m=d;do{d-=h,s[c+(z>>k)+d]=U<<24|D<<16|A|0}while(0!==d);for(h=1<<w-1;z&h;)h>>=1;if(0!==h?(z&=h-1,z+=h):z=0,g++,0==--S[w]){if(w===p)break;w=e[a+n[g]]}if(w>b&&(z&_)!==f){for(0===k&&(k=b),c+=m,y=w-k,v=1<<y;y+k<p&&(v-=S[y+k],!(v<=0));)y++,v<<=1;if(x+=1<<y,1===t&&x>852||2===t&&x>592)return 1;f=z&_,s[f]=b<<24|y<<16|c-r|0}}return 0!==z&&(s[c+z]=w-k<<24|64<<16|0),o.bits=b,0};const{Z_FINISH:Te,Z_BLOCK:Ce,Z_TREES:Ze,Z_OK:Le,Z_STREAM_END:Me,Z_NEED_DICT:Ne,Z_STREAM_ERROR:Pe,Z_DATA_ERROR:He,Z_MEM_ERROR:$e,Z_BUF_ERROR:je,Z_DEFLATED:Ve}=dt,We=16180,Ke=16190,Ye=16191,qe=16192,Ge=16194,Xe=16199,Qe=16200,Je=16206,ta=16209,ea=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function aa(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ia=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<We||e.mode>16211?1:0},sa=t=>{if(ia(t))return Pe;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=We,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Le},ra=t=>{if(ia(t))return Pe;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,sa(t)},na=(t,e)=>{let a;if(ia(t))return Pe;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Pe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,ra(t))},oa=(t,e)=>{if(!t)return Pe;const a=new aa;t.state=a,a.strm=t,a.window=null,a.mode=We;const i=na(t,e);return i!==Le&&(t.state=null),i};let la,ha,da=!0;const fa=t=>{if(da){la=new Int32Array(512),ha=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Be(1,t.lens,0,288,la,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Be(2,t.lens,0,32,ha,0,t.work,{bits:5}),da=!1}t.lencode=la,t.lenbits=9,t.distcode=ha,t.distbits=5},_a=(t,e,a,i)=>{let s;const r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(e.subarray(a-i,a-i+s),r.wnext),(i-=s)?(r.window.set(e.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var ca={inflateReset:ra,inflateReset2:na,inflateResetKeep:sa,inflateInit:t=>oa(t,15),inflateInit2:oa,inflate:(t,e)=>{let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z=0;const R=new Uint8Array(4);let S,E;const U=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ia(t)||!t.output||!t.input&&0!==t.avail_in)return Pe;a=t.state,a.mode===Ye&&(a.mode=qe),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,f=o,_=l,x=Le;t:for(;;)switch(a.mode){case We:if(0===a.wrap){a.mode=qe;break}for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(2&a.wrap&&35615===h){0===a.wbits&&(a.wbits=15),a.check=0,R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0),h=0,d=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=ta;break}if((15&h)!==Ve){t.msg="unknown compression method",a.mode=ta;break}if(h>>>=4,d-=4,v=8+(15&h),0===a.wbits&&(a.wbits=v),v>15||v>a.wbits){t.msg="invalid window size",a.mode=ta;break}a.dmax=1<<a.wbits,a.flags=0,t.adler=a.check=1,a.mode=512&h?16189:Ye,h=0,d=0;break;case 16181:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.flags=h,(255&a.flags)!==Ve){t.msg="unknown compression method",a.mode=ta;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=ta;break}a.head&&(a.head.text=h>>8&1),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.time=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,R[2]=h>>>16&255,R[3]=h>>>24&255,a.check=lt(a.check,R,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(v=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+c),v)),512&a.flags&&4&a.wrap&&(a.check=lt(a.check,i,c,r)),o-=c,r+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.name+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=lt(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.comment+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=lt(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=ta;break}h=0,d=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=Ye;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}t.adler=a.check=ea(h),h=0,d=0,a.mode=Ke;case Ke:if(0===a.havedict)return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Ne;t.adler=a.check=1,a.mode=Ye;case Ye:if(e===Ce||e===Ze)break t;case qe:if(a.last){h>>>=7&d,d-=7&d,a.mode=Je;break}for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}switch(a.last=1&h,h>>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(fa(a),a.mode=Xe,e===Ze){h>>>=2,d-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=ta}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=ta;break}if(a.length=65535&h,h=0,d=0,a.mode=Ge,e===Ze)break t;case Ge:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;s.set(i.subarray(r,r+c),n),o-=c,r+=c,l-=c,n+=c,a.length-=c;break}a.mode=Ye;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=ta;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.lens[U[a.have++]]=7&h,h>>>=3,d-=3}for(;a.have<19;)a.lens[U[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,S={bits:a.lenbits},x=Be(0,a.lens,0,19,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid code lengths set",a.mode=ta;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(p<16)h>>>=g,d-=g,a.lens[a.have++]=p;else{if(16===p){for(E=g+2;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h>>>=g,d-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=ta;break}v=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===p){for(E=g+3;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=3+(7&h),h>>>=3,d-=3}else{for(E=g+7;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=ta;break}for(;c--;)a.lens[a.have++]=v}}if(a.mode===ta)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=ta;break}if(a.lenbits=9,S={bits:a.lenbits},x=Be(1,a.lens,0,a.nlen,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid literal/lengths set",a.mode=ta;break}if(a.distbits=6,a.distcode=a.distdyn,S={bits:a.distbits},x=Be(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,S),a.distbits=S.bits,x){t.msg="invalid distances set",a.mode=ta;break}if(a.mode=Xe,e===Ze)break t;case Xe:a.mode=Qe;case Qe:if(o>=6&&l>=258){t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Ue(t,_),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===Ye&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(m&&0==(240&m)){for(b=g,y=m,k=p;z=a.lencode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,a.length=p,0===m){a.mode=16205;break}if(32&m){a.back=-1,a.mode=Ye;break}if(64&m){t.msg="invalid literal/length code",a.mode=ta;break}a.extra=15&m,a.mode=16201;case 16201:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<<a.distbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(0==(240&m)){for(b=g,y=m,k=p;z=a.distcode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,64&m){t.msg="invalid distance code",a.mode=ta;break}a.offset=p,a.extra=15&m,a.mode=16203;case 16203:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=ta;break}a.mode=16204;case 16204:if(0===l)break t;if(c=_-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=ta;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=s,u=n-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{s[n++]=w[u++]}while(--c);0===a.length&&(a.mode=Qe);break;case 16205:if(0===l)break t;s[n++]=a.length,l--,a.mode=Qe;break;case Je:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[r++]<<d,d+=8}if(_-=l,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?lt(a.check,s,_,n-_):nt(a.check,s,_,n-_)),_=l,4&a.wrap&&(a.flags?h:ea(h))!==a.check){t.msg="incorrect data check",a.mode=ta;break}h=0,d=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=ta;break}h=0,d=0}a.mode=16208;case 16208:x=Me;break t;case ta:x=He;break t;case 16210:return $e;default:return Pe}return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||_!==t.avail_out&&a.mode<ta&&(a.mode<Je||e!==Te))&&_a(t,t.output,t.next_out,_-t.avail_out),f-=t.avail_in,_-=t.avail_out,t.total_in+=f,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?lt(a.check,s,_,t.next_out-_):nt(a.check,s,_,t.next_out-_)),t.data_type=a.bits+(a.last?64:0)+(a.mode===Ye?128:0)+(a.mode===Xe||a.mode===Ge?256:0),(0===f&&0===_||e===Te)&&x===Le&&(x=je),x},inflateEnd:t=>{if(ia(t))return Pe;let e=t.state;return e.window&&(e.window=null),t.state=null,Le},inflateGetHeader:(t,e)=>{if(ia(t))return Pe;const a=t.state;return 0==(2&a.wrap)?Pe:(a.head=e,e.done=!1,Le)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,s,r;return ia(t)?Pe:(i=t.state,0!==i.wrap&&i.mode!==Ke?Pe:i.mode===Ke&&(s=1,s=nt(s,e,a,0),s!==i.check)?He:(r=_a(t,e,a,a),r?(i.mode=16210,$e):(i.havedict=1,Le)))},inflateInfo:"pako inflate (from Nodeca project)"};var ua=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const wa=Object.prototype.toString,{Z_NO_FLUSH:ga,Z_FINISH:ma,Z_OK:pa,Z_STREAM_END:ba,Z_NEED_DICT:ya,Z_STREAM_ERROR:ka,Z_DATA_ERROR:va,Z_MEM_ERROR:xa}=dt;function za(t){this.options=he.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ce,this.strm.avail_out=0;let a=ca.inflateInit2(this.strm,e.windowBits);if(a!==pa)throw new Error(ht[a]);if(this.header=new ua,ca.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=_e.string2buf(e.dictionary):"[object ArrayBuffer]"===wa.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=ca.inflateSetDictionary(this.strm,e.dictionary),a!==pa)))throw new Error(ht[a])}za.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let r,n,o;if(this.ended)return!1;for(n=e===~~e?e:!0===e?ma:ga,"[object ArrayBuffer]"===wa.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ca.inflate(a,n),r===ya&&s&&(r=ca.inflateSetDictionary(a,s),r===pa?r=ca.inflate(a,n):r===va&&(r=ya));a.avail_in>0&&r===ba&&a.state.wrap>0&&0!==t[a.next_in];)ca.inflateReset(a),r=ca.inflate(a,n);switch(r){case ka:case va:case ya:case xa:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===ba))if("string"===this.options.to){let t=_e.utf8border(a.output,a.next_out),e=a.next_out-t,s=_e.buf2string(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(s)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==pa||0!==o){if(r===ba)return r=ca.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},za.prototype.onData=function(t){this.chunks.push(t)},za.prototype.onEnd=function(t){t===pa&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=he.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const{Deflate:Ra,deflate:Sa,deflateRaw:Ea,gzip:Ua}=Se;var Da=Sa;const Aa={b:{u:DataView.prototype.getInt8,p:DataView.prototype.setInt8,bytes:1},B:{u:DataView.prototype.getUint8,p:DataView.prototype.setUint8,bytes:1},h:{u:DataView.prototype.getInt16,p:DataView.prototype.setInt16,bytes:2},H:{u:DataView.prototype.getUint16,p:DataView.prototype.setUint16,bytes:2},i:{u:DataView.prototype.getInt32,p:DataView.prototype.setInt32,bytes:4},I:{u:DataView.prototype.getUint32,p:DataView.prototype.setUint32,bytes:4},q:{u:DataView.prototype.getInt64,p:DataView.prototype.setInt64,bytes:8},Q:{u:DataView.prototype.getUint64,p:DataView.prototype.setUint64,bytes:8}},Ia=(t,...e)=>{let a=0;if(t.replace(/[<>]/,"").length!=e.length)throw"Pack format to Argument count mismatch";let i=[],s=!0;for(let i=0;i<t.length;i++)"<"==t[i]?s=!0:">"==t[i]?s=!1:(r(t[i],e[a]),a++);function r(t,e){if(!(t in Aa))throw"Unhandled character '"+t+"' in pack format";let a=Aa[t].bytes,r=new DataView(new ArrayBuffer(a));Aa[t].p.bind(r)(0,e,s);for(let t=0;t<a;t++)i.push(r.getUint8(t))}return i},Oa=(t,e)=>{let a=0,i=[],s=!0;for(let e of t)"<"==e?s=!0:">"==e?s=!1:r(e);function r(t){if(!(t in Aa))throw"Unhandled character '"+t+"' in unpack format";let r=Aa[t].bytes,n=new DataView(new ArrayBuffer(r));for(let t=0;t<r;t++)n.setUint8(t,255&e[a+t]);let o=Aa[t].u.bind(n);i.push(o(0,s)),a+=r}return i};class Fa extends EventTarget{constructor(t,e,a){super(),this.port=t,this.logger=e,this._parent=a,this.chipName=null,this._efuses=new Array(4).fill(0),this._flashsize=4194304,this.debug=!1,this.IS_STUB=!1,this.connected=!0,this.flashSize=null,this.state_DTR=!1}get _inputBuffer(){return this._parent?this._parent._inputBuffer:this.__inputBuffer}async initialize(){await this.hardReset(!0),this._parent||(this.__inputBuffer=[],this.readLoop()),await this.sync();let t=await this.readRegister(1073745920),e=w[t>>>0];if(void 0===e)throw new Error(`Unknown Chip: Hex: ${a(t>>>0,8).toLowerCase()} Number: ${t}`);this.chipName=e.name,this.chipFamily=e.family;let i=b(this.getChipFamily()).macFuse;for(let t=0;t<4;t++)this._efuses[t]=await this.readRegister(i+4*t);this.logger.log(`Chip type ${this.chipName}`)}async readLoop(){this.debug&&this.logger.debug("Starting read loop"),this._reader=this.port.readable.getReader();try{for(;;){const{value:t,done:e}=await this._reader.read();if(e){this._reader.releaseLock();break}t&&0!==t.length&&this._inputBuffer.push(...Array.from(t))}}catch(t){console.error("Read loop got disconnected")}this.connected=!1,this.dispatchEvent(new Event("disconnect")),this.logger.debug("Finished read loop")}sleep(t=100){return new Promise((e=>setTimeout(e,t)))}async setRTS(t){await this.port.setSignals({requestToSend:t}),await this.setDTR(this.state_DTR)}async setDTR(t){this.state_DTR=t,await this.port.setSignals({dataTerminalReady:t})}async hardReset(t=!1){this.logger.log("Try hard reset."),t?4097===this.port.getInfo().usbProductId?(await this.setDTR(!1),await this.setRTS(!1),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(100),await this.setRTS(!0),await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!1),await this.setRTS(!1)):(await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(50),await this.setDTR(!1)):(await this.setRTS(!0),await this.sleep(100),await this.setRTS(!1)),await new Promise((t=>setTimeout(t,1e3)))}macAddr(){let t,e=new Array(6).fill(0),a=this._efuses[0],i=this._efuses[1],s=this._efuses[2],r=this._efuses[3];if(this.chipFamily==o){if(0!=r)t=[r>>16&255,r>>8&255,255&r];else if(0==(i>>16&255))t=[24,254,52];else{if(1!=(i>>16&255))throw new Error("Couldnt determine OUI");t=[172,208,116]}e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=i>>8&255,e[4]=255&i,e[5]=a>>24&255}else if(this.chipFamily==l)e[0]=s>>8&255,e[1]=255&s,e[2]=i>>24&255,e[3]=i>>16&255,e[4]=i>>8&255,e[5]=255&i;else{if(this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u)throw new Error("Unknown chip family");e[0]=i>>8&255,e[1]=255&i,e[2]=a>>24&255,e[3]=a>>16&255,e[4]=a>>8&255,e[5]=255&a}return e}async readRegister(t){this.debug&&this.logger.debug("Reading from Register "+a(t,8));let e=Ia("<I",t);await this.sendCommand(10,e);let[i,s]=await this.getResponse(10);return i}async checkCommand(t,e,i=0,s=3e3){s=Math.min(s,12e5),await this.sendCommand(t,e,i);let[r,n]=await this.getResponse(t,s);if(null===n)throw new Error("Didn't get enough status bytes");let w=0;if(this.IS_STUB||this.chipFamily==o?w=2:[l,h,d,f,_,c,u].includes(this.chipFamily)?w=4:[2,4].includes(n.length)&&(w=n.length),n.length<w)throw new Error("Didn't get enough status bytes");let g=n.slice(-w,n.length);if(n=n.slice(0,-w),this.debug&&(this.logger.debug("status",g),this.logger.debug("value",r),this.logger.debug("data",n)),1==g[0])throw 5==g[1]?new Error("Invalid (unsupported) command "+a(t)):new Error("Command failure error code "+a(g[1]));return[r,n]}async sendCommand(t,e,a=0){let i=(t=>{let e=[192];for(let a of t)219==a?e=e.concat([219,221]):192==a?e=e.concat([219,220]):e.push(a);return e.push(192),e})([...Ia("<BBHI",0,t,e.length,a),...e]);this.debug&&this.logger.debug(`Writing ${i.length} byte${1==i.length?"":"s"}:`,i),await this.writeToStream(i)}async readPacket(t){let s=null,r=!1,n=[];for(;;){let o=Date.now();for(n=[];Date.now()-o<t;){if(this._inputBuffer.length>0){n.push(this._inputBuffer.shift());break}await i(10)}if(0==n.length){throw new y("Timed out waiting for packet "+(null===s?"header":"content"))}this.debug&&this.logger.debug("Read "+n.length+" bytes: "+e(n));for(let t of n)if(null===s){if(192!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new y("Invalid head of packet ("+a(t)+")");s=[]}else if(r)if(r=!1,220==t)s.push(192);else{if(221!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new y("Invalid SLIP escape (0xdb, "+a(t)+")");s.push(219)}else if(219==t)r=!0;else{if(192==t)return this.debug&&this.logger.debug("Received full packet: "+e(s)),s;s.push(t)}}throw new y("Invalid state")}async getResponse(t,e=3e3){for(let i=0;i<100;i++){const i=await this.readPacket(e);if(i.length<8)continue;const[s,r,n,o]=Oa("<BBHI",i.slice(0,8));if(1!=s)continue;const l=i.slice(8);if(null==t||r==t)return[o,l];if(0!=l[0]&&5==l[1])throw this._inputBuffer.length=0,new Error(`Invalid (unsupported) command ${a(t)}`)}throw"Response doesn't match request"}checksum(t,e=239){for(let a of t)e^=a;return e}async setBaudrate(t){if(this.chipFamily==o)throw new Error("Changing baud rate is not supported on the ESP8266");this.logger.log("Attempting to change baud rate to "+t+"...");try{let e=Ia("<II",t,this.IS_STUB?r:0);await this.checkCommand(15,e)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: No response from set baud rate command.`)}this._parent?await this._parent.reconfigurePort(t):await this.reconfigurePort(t)}async reconfigurePort(t){var e;try{await(null===(e=this._reader)||void 0===e?void 0:e.cancel()),await this.port.close(),await this.port.open({baudRate:t}),this.readLoop(),this.logger.log(`Changed baud rate to ${t}`)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: ${e}`)}}async sync(){for(let t=0;t<5;t++){if(this._inputBuffer.length=0,await this._sync())return await i(100),!0;await i(100)}throw new Error("Couldn't sync to ESP. Try resetting.")}async _sync(){await this.sendCommand(8,n);for(let t=0;t<8;t++)try{let[t,e]=await this.getResponse(8,100);if(e.length>1&&0==e[0]&&0==e[1])return!0}catch(t){}return!1}getFlashWriteSize(){return this.IS_STUB?16384:1024}async flashData(t,e,i=0,s=!1){if(t.byteLength>=8){var r=Array.from(new Uint8Array(t,0,4));let e=r[0],i=r[2],s=r[3];this.logger.log(`Image header, Magic=${a(e)}, FlashMode=${a(i)}, FlashSizeFreq=${a(s)}`)}let n,o=t.byteLength,l=0,h=g;s?(n=Da(new Uint8Array(t),{level:9}).buffer,l=n.byteLength,this.logger.log(`Writing data with filesize: ${o}. Compressed Size: ${l}`),h=await this.flashDeflBegin(o,l,i)):(this.logger.log(`Writing data with filesize: ${o}`),n=t,await this.flashBegin(o,i));let d=[],f=0,_=0,c=0,u=Date.now(),w=this.getFlashWriteSize(),m=s?l:o;for(;m-c>0;)this.debug&&this.logger.log(`Writing at ${a(i+f*w,8)} `),m-c>=w?d=Array.from(new Uint8Array(n,c,w)):(d=Array.from(new Uint8Array(n,c,m-c)),s||(d=d.concat(new Array(w-d.length).fill(255)))),s?await this.flashDeflBlock(d,f,h):await this.flashBlock(d,f),f+=1,_+=s?Math.round(d.length*o/l):d.length,c+=w,e(Math.min(_,o),o);this.logger.log("Took "+(Date.now()-u)+"ms to write "+m+" bytes"),this.IS_STUB&&(await this.flashBegin(0,0),s?await this.flashDeflFinish():await this.flashFinish())}async flashBlock(t,e,a=3e3){await this.checkCommand(3,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashDeflBlock(t,e,a=3e3){await this.checkCommand(17,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashBegin(t=0,e=0,i=!1){let s,r,n=this.getFlashWriteSize();!this.IS_STUB&&[l,h,d,f,_,c,u].includes(this.chipFamily)&&await this.checkCommand(13,new Array(8).fill(0));let w,m=Math.floor((t+n-1)/n);s=this.chipFamily==o?this.getEraseSize(e,t):t,w=this.IS_STUB?g:p(3e4,t);let b=Date.now();return r=Ia("<IIII",s,m,n,e),this.chipFamily!=l&&this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u||(r=r.concat(Ia("<I",i?1:0))),this.logger.log("Erase size "+s+", blocks "+m+", block size "+a(n,4)+", offset "+a(e,4)+", encrypted "+(i?"yes":"no")),await this.checkCommand(2,r,0,w),0==t||this.IS_STUB||this.logger.log("Took "+(Date.now()-b)+"ms to erase "+m+" bytes"),m}async flashDeflBegin(t=0,e=0,a=0,i=!1){let s,r=this.getFlashWriteSize(),n=Math.floor((e+r-1)/r),o=Math.floor((t+r-1)/r),l=0,h=0;return this.IS_STUB?(l=t,h=p(3e4,l)):(l=o*r,h=g),s=Ia("<IIII",l,n,r,a),await this.checkCommand(16,s,0,h),h}async flashFinish(){let t=Ia("<I",1);await this.checkCommand(4,t)}async flashDeflFinish(){let t=Ia("<I",1);await this.checkCommand(18,t)}getBootloaderOffset(){return b(this.getChipFamily()).flashOffs}async flashId(){return await this.runSpiFlashCommand(159,[],24)}getChipFamily(){return this._parent?this._parent.chipFamily:this.chipFamily}async writeRegister(t,e,a=4294967295,i=0,s=0){let r=Ia("<IIII",t,e,a,i);s>0&&r.concat(Ia("<IIII",b(this.getChipFamily()).uartDateReg,0,0,s)),await this.checkCommand(9,r)}async setDataLengths(t,e,a){if(-1!=t.mosiDlenOffs){let i=t.regBase+t.mosiDlenOffs,s=t.regBase+t.misoDlenOffs;e>0&&await this.writeRegister(i,e-1),a>0&&await this.writeRegister(s,a-1)}else{let i=t.regBase+t.usr1Offs,s=(0==a?0:a-1)<<8|(0==e?0:e-1)<<17;await this.writeRegister(i,s)}}async waitDone(t,e){for(let a=0;a<10;a++){if(0==(await this.readRegister(t)&e))return}throw Error("SPI command did not complete in time")}async runSpiFlashCommand(t,e,i=0){let s=b(this.getChipFamily()),r=s.regBase,n=r,o=r+s.usrOffs,l=r+s.usr2Offs,h=r+s.w0Offs,d=1<<18;if(i>32)throw new Error("Reading more than 32 bits back from a SPI flash operation is unsupported");if(e.length>64)throw new Error("Writing more than 64 bytes of data with one SPI command is unsupported");let f=8*e.length,_=await this.readRegister(o),c=await this.readRegister(l),u=1<<31;if(i>0&&(u|=268435456),f>0&&(u|=134217728),await this.setDataLengths(s,f,i),await this.writeRegister(o,u),await this.writeRegister(l,7<<28|t),0==f)await this.writeRegister(h,0);else{e.concat(new Array(e.length%4).fill(0));let t=Oa("I".repeat(Math.floor(e.length/4)),e),i=h;this.logger.debug(`Words Length: ${t.length}`);for(const e of t)this.logger.debug(`Writing word ${a(e)} to register offset ${a(i)}`),await this.writeRegister(i,e),i+=4}await this.writeRegister(n,d),await this.waitDone(n,d);let w=await this.readRegister(h);return await this.writeRegister(o,_),await this.writeRegister(l,c),w}async detectFlashSize(){this.logger.log("Detecting Flash Size");let t=await this.flashId(),e=255&t,i=t>>16&255;this.logger.log(`FlashId: ${a(t)}`),this.logger.log(`Flash Manufacturer: ${e.toString(16)}`),this.logger.log(`Flash Device: ${(t>>8&255).toString(16)}${i.toString(16)}`),this.flashSize=s[i],this.logger.log(`Auto-detected Flash size: ${this.flashSize}`)}getEraseSize(t,e){let a=4096,i=Math.floor((e+a-1)/a),s=16-Math.floor(t/a)%16;return i<s&&(s=i),i<2*s?Math.floor((i+1)/2*a):(i-s)*a}async memBegin(t,e,a,i){return await this.checkCommand(5,Ia("<IIII",t,e,a,i))}async memBlock(t,e){return await this.checkCommand(7,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t))}async memFinish(t=0){let e=this.IS_STUB?g:500,a=Ia("<II",0==t?1:0,t);return await this.checkCommand(6,a,0,e)}async runStub(){const t=await k(this.chipFamily);let e,a=2048;this.logger.log("Uploading stub...");for(let e of["text","data"])if(Object.keys(t).includes(e)){let i=t[e+"_start"],s=t[e].length,r=Math.floor((s+a-1)/a);await this.memBegin(s,r,a,i);for(let i of Array(r).keys()){let r=i*a,n=r+a;n>s&&(n=s),await this.memBlock(t[e].slice(r,n),i)}}this.logger.log("Running stub..."),await this.memFinish(t.entry);const i=await this.readPacket(500);if(e=String.fromCharCode(...i),"OHAI"!=e)throw new Error("Failed to start stub. Unexpected response: "+e);this.logger.log("Stub is now running...");const s=new Ba(this.port,this.logger,this);return await s.detectFlashSize(),s}async writeToStream(t){const e=this.port.writable.getWriter();await e.write(new Uint8Array(t));try{e.releaseLock()}catch(t){console.error("Ignoring release lock error",t)}}async disconnect(){this._parent?await this._parent.disconnect():(await this.port.writable.getWriter().close(),await new Promise((t=>{this._reader||t(void 0),this.addEventListener("disconnect",t,{once:!0}),this._reader.cancel()})),this.connected=!1)}}class Ba extends Fa{constructor(){super(...arguments),this.IS_STUB=!0}async memBegin(t,e,i,s){let r=await k(this.chipFamily),n=s,o=s+t;console.log(n,o),console.log(r.data_start,r.data.length,r.text_start,r.text.length);for(let[t,e]of[[r.data_start,r.data_start+r.data.length],[r.text_start,r.text_start+r.text.length]])if(n<e&&o>t)throw new Error("Software loader is resident at "+a(t,8)+"-"+a(e,8)+". Can't load binary at overlapping address range "+a(n,8)+"-"+a(o,8)+". Try changing the binary loading address.")}async eraseFlash(){await this.checkCommand(208,[],0,m)}}const Ta=async t=>{const e=await navigator.serial.requestPort();return t.log("Connecting..."),await e.open({baudRate:r}),t.log("Connected successfully."),new Fa(e,t)};export{l as CHIP_FAMILY_ESP32,f as CHIP_FAMILY_ESP32C2,_ as CHIP_FAMILY_ESP32C3,c as CHIP_FAMILY_ESP32C6,u as CHIP_FAMILY_ESP32H2,h as CHIP_FAMILY_ESP32S2,d as CHIP_FAMILY_ESP32S3,o as CHIP_FAMILY_ESP8266,Fa as ESPLoader,Ta as connect};
1
+ const t=t=>{let e=[];for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);i<=255&&e.push(i)}return e},e=t=>"["+t.map((t=>a(t))).join(", ")+"]",a=(t,e=2)=>{let a=t.toString(16).toUpperCase();return a.startsWith("-")?"-0x"+a.substring(1).padStart(e,"0"):"0x"+a.padStart(e,"0")},i=t=>new Promise((e=>setTimeout(e,t))),s={18:"256KB",19:"512KB",20:"1MB",21:"2MB",22:"4MB",23:"8MB",24:"16MB",25:"32MB",26:"64MB"},r=115200,n=t(" UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"),o=33382,l=50,h=12882,d=12883,f=12994,_=12995,c=12998,u=12914,w=12928,g={4293968129:{name:"ESP8266",family:o},15736195:{name:"ESP32",family:l},1990:{name:"ESP32-S2",family:h},9:{name:"ESP32-S3",family:d},1867591791:{name:"ESP32-C2",family:f},2084675695:{name:"ESP32-C2",family:f},1763790959:{name:"ESP32-C3",family:_},456216687:{name:"ESP32-C3",family:_},1216438383:{name:"ESP32-C3",family:_},1130455151:{name:"ESP32-C3",family:_},3619110528:{name:"ESP32-H2",family:u},752910447:{name:"ESP32-C6",family:c},182303440:{name:"ESP32-P4",family:w},0:{name:"ESP32-P4",family:w}},m=3e3,p=6e5,b=(t,e)=>{let a=Math.floor(t*(e/486));return a<m?m:a},y=t=>{switch(t){case l:return{regBase:1072963584,baseFuse:1073061888,macFuse:1073061888,usrOffs:28,usr1Offs:32,usr2Offs:36,mosiDlenOffs:40,misoDlenOffs:44,w0Offs:128,uartDateReg:1610612856,flashOffs:4096};case h:return{regBase:1061167104,baseFuse:1061265408,macFuse:1061265476,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612856,flashOffs:4096};case d:return{regBase:1610620928,usrOffs:24,baseFuse:1610641408,macFuse:1610641476,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612864,flashOffs:0};case o:return{regBase:1610613248,usrOffs:28,baseFuse:1072693328,macFuse:1072693328,usr1Offs:32,usr2Offs:36,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:64,uartDateReg:1610612856,flashOffs:0};case f:case _:return{regBase:1610620928,baseFuse:1610647552,macFuse:1610647620,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case c:return{regBase:1610625024,baseFuse:1611335680,macFuse:1611335748,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case u:return{regBase:1610620928,baseFuse:1610719232,macFuse:1610719300,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case w:return{regBase:1342754816,baseFuse:1343410176,macFuse:1343410244,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1343004812,flashOffs:8192};default:return{regBase:-1,baseFuse:-1,macFuse:-1,usrOffs:-1,usr1Offs:-1,usr2Offs:-1,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:-1,uartDateReg:-1,flashOffs:-1}}};class k extends Error{constructor(t){super(t),this.name="SlipReadError"}}const v=async e=>{let a;return e==l?a=await import("./esp32-BLbsWvxO.js"):e==h?a=await import("./esp32s2-CrsP1231.js"):e==d?a=await import("./esp32s3-CiJyd6Fk.js"):e==o?a=await import("./esp8266-CQFcqJ_a.js"):e==f?a=await import("./esp32c2-wLQhZItC.js"):e==_?a=await import("./esp32c3-DmSvHQKL.js"):e==c?a=await import("./esp32c6-ZuxjUVr4.js"):e==u?a=await import("./esp32h2-CZ4EIL3w.js"):e==w&&(a=await import("./esp32p4-BvuBbdjO.js")),{...a,text:t(atob(a.text)),data:t(atob(a.data))}};function x(t){let e=t.length;for(;--e>=0;)t[e]=0}const z=256,R=286,S=30,E=15,D=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),U=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),A=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I=new Array(576);x(I);const F=new Array(60);x(F);const B=new Array(512);x(B);const T=new Array(256);x(T);const C=new Array(29);x(C);const Z=new Array(S);function L(t,e,a,i,s){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=s,this.has_stree=t&&t.length}let M,N,P;function H(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}x(Z);const $=t=>t<256?B[t]:B[256+(t>>>7)],j=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},V=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,j(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},W=(t,e,a)=>{V(t,a[2*e],a[2*e+1])},K=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},Y=(t,e,a)=>{const i=new Array(16);let s,r,n=0;for(s=1;s<=E;s++)n=n+a[s-1]<<1,i[s]=n;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=K(i[e]++,e))}},q=t=>{let e;for(e=0;e<R;e++)t.dyn_ltree[2*e]=0;for(e=0;e<S;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},G=t=>{t.bi_valid>8?j(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},X=(t,e,a,i)=>{const s=2*e,r=2*a;return t[s]<t[r]||t[s]===t[r]&&i[e]<=i[a]},Q=(t,e,a)=>{const i=t.heap[a];let s=a<<1;for(;s<=t.heap_len&&(s<t.heap_len&&X(e,t.heap[s+1],t.heap[s],t.depth)&&s++,!X(e,i,t.heap[s],t.depth));)t.heap[a]=t.heap[s],a=s,s<<=1;t.heap[a]=i},J=(t,e,a)=>{let i,s,r,n,o=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+o++],i+=(255&t.pending_buf[t.sym_buf+o++])<<8,s=t.pending_buf[t.sym_buf+o++],0===i?W(t,s,e):(r=T[s],W(t,r+z+1,e),n=D[r],0!==n&&(s-=C[r],V(t,s,n)),i--,r=$(i),W(t,r,a),n=U[r],0!==n&&(i-=Z[r],V(t,i,n)))}while(o<t.sym_next);W(t,256,e)},tt=(t,e)=>{const a=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.elems;let n,o,l,h=-1;for(t.heap_len=0,t.heap_max=573,n=0;n<r;n++)0!==a[2*n]?(t.heap[++t.heap_len]=h=n,t.depth[n]=0):a[2*n+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,a[2*l]=1,t.depth[l]=0,t.opt_len--,s&&(t.static_len-=i[2*l+1]);for(e.max_code=h,n=t.heap_len>>1;n>=1;n--)Q(t,a,n);l=r;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Q(t,a,1),o=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=o,a[2*l]=a[2*n]+a[2*o],t.depth[l]=(t.depth[n]>=t.depth[o]?t.depth[n]:t.depth[o])+1,a[2*n+1]=a[2*o+1]=l,t.heap[1]=l++,Q(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,d,f,_,c,u,w=0;for(_=0;_<=E;_++)t.bl_count[_]=0;for(a[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)d=t.heap[h],_=a[2*a[2*d+1]+1]+1,_>l&&(_=l,w++),a[2*d+1]=_,d>i||(t.bl_count[_]++,c=0,d>=o&&(c=n[d-o]),u=a[2*d],t.opt_len+=u*(_+c),r&&(t.static_len+=u*(s[2*d+1]+c)));if(0!==w){do{for(_=l-1;0===t.bl_count[_];)_--;t.bl_count[_]--,t.bl_count[_+1]+=2,t.bl_count[l]--,w-=2}while(w>0);for(_=l;0!==_;_--)for(d=t.bl_count[_];0!==d;)f=t.heap[--h],f>i||(a[2*f+1]!==_&&(t.opt_len+=(_-a[2*f+1])*a[2*f],a[2*f+1]=_),d--)}})(t,e),Y(a,h,t.bl_count)},et=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)s=n,n=e[2*(i+1)+1],++o<l&&s===n||(o<h?t.bl_tree[2*s]+=o:0!==s?(s!==r&&t.bl_tree[2*s]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4))},at=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),i=0;i<=a;i++)if(s=n,n=e[2*(i+1)+1],!(++o<l&&s===n)){if(o<h)do{W(t,s,t.bl_tree)}while(0!=--o);else 0!==s?(s!==r&&(W(t,s,t.bl_tree),o--),W(t,16,t.bl_tree),V(t,o-3,2)):o<=10?(W(t,17,t.bl_tree),V(t,o-3,3)):(W(t,18,t.bl_tree),V(t,o-11,7));o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4)}};let it=!1;const st=(t,e,a,i)=>{V(t,0+(i?1:0),3),G(t),j(t,a),j(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var rt=(t,e,a,i)=>{let s,r,n=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<z;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),tt(t,t.l_desc),tt(t,t.d_desc),n=(t=>{let e;for(et(t,t.dyn_ltree,t.l_desc.max_code),et(t,t.dyn_dtree,t.d_desc.max_code),tt(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*O[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=a+5,a+4<=s&&-1!==e?st(t,e,a,i):4===t.strategy||r===s?(V(t,2+(i?1:0),3),J(t,I,F)):(V(t,4+(i?1:0),3),((t,e,a,i)=>{let s;for(V(t,e-257,5),V(t,a-1,5),V(t,i-4,4),s=0;s<i;s++)V(t,t.bl_tree[2*O[s]+1],3);at(t,t.dyn_ltree,e-1),at(t,t.dyn_dtree,a-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,n+1),J(t,t.dyn_ltree,t.dyn_dtree)),q(t),i&&G(t)},nt={_tr_init:t=>{it||((()=>{let t,e,a,i,s;const r=new Array(16);for(a=0,i=0;i<28;i++)for(C[i]=a,t=0;t<1<<D[i];t++)T[a++]=i;for(T[a-1]=i,s=0,i=0;i<16;i++)for(Z[i]=s,t=0;t<1<<U[i];t++)B[s++]=i;for(s>>=7;i<S;i++)for(Z[i]=s<<7,t=0;t<1<<U[i]-7;t++)B[256+s++]=i;for(e=0;e<=E;e++)r[e]=0;for(t=0;t<=143;)I[2*t+1]=8,t++,r[8]++;for(;t<=255;)I[2*t+1]=9,t++,r[9]++;for(;t<=279;)I[2*t+1]=7,t++,r[7]++;for(;t<=287;)I[2*t+1]=8,t++,r[8]++;for(Y(I,287,r),t=0;t<S;t++)F[2*t+1]=5,F[2*t]=K(t,5);M=new L(I,D,257,R,E),N=new L(F,U,0,S,E),P=new L(new Array(0),A,0,19,7)})(),it=!0),t.l_desc=new H(t.dyn_ltree,M),t.d_desc=new H(t.dyn_dtree,N),t.bl_desc=new H(t.bl_tree,P),t.bi_buf=0,t.bi_valid=0,q(t)},_tr_stored_block:st,_tr_flush_block:rt,_tr_tally:(t,e,a)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(T[a]+z+1)]++,t.dyn_dtree[2*$(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{V(t,2,3),W(t,256,I),(t=>{16===t.bi_valid?(j(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var ot=(t,e,a,i)=>{let s=65535&t|0,r=t>>>16&65535|0,n=0;for(;0!==a;){n=a>2e3?2e3:a,a-=n;do{s=s+e[i++]|0,r=r+s|0}while(--n);s%=65521,r%=65521}return s|r<<16|0};const lt=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var ht=(t,e,a,i)=>{const s=lt,r=i+a;t^=-1;for(let a=i;a<r;a++)t=t>>>8^s[255&(t^e[a])];return-1^t},dt={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ft={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:_t,_tr_stored_block:ct,_tr_flush_block:ut,_tr_tally:wt,_tr_align:gt}=nt,{Z_NO_FLUSH:mt,Z_PARTIAL_FLUSH:pt,Z_FULL_FLUSH:bt,Z_FINISH:yt,Z_BLOCK:kt,Z_OK:vt,Z_STREAM_END:xt,Z_STREAM_ERROR:zt,Z_DATA_ERROR:Rt,Z_BUF_ERROR:St,Z_DEFAULT_COMPRESSION:Et,Z_FILTERED:Dt,Z_HUFFMAN_ONLY:Ut,Z_RLE:At,Z_FIXED:Ot,Z_DEFAULT_STRATEGY:It,Z_UNKNOWN:Ft,Z_DEFLATED:Bt}=ft,Tt=258,Ct=262,Zt=42,Lt=113,Mt=666,Nt=(t,e)=>(t.msg=dt[e],e),Pt=t=>2*t-(t>4?9:0),Ht=t=>{let e=t.length;for(;--e>=0;)t[e]=0},$t=t=>{let e,a,i,s=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=s?a-s:0}while(--e);e=s,i=e;do{a=t.prev[--i],t.prev[i]=a>=s?a-s:0}while(--e)};let jt=(t,e,a)=>(e<<t.hash_shift^a)&t.hash_mask;const Vt=t=>{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},Wt=(t,e)=>{ut(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Vt(t.strm)},Kt=(t,e)=>{t.pending_buf[t.pending++]=e},Yt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},qt=(t,e,a,i)=>{let s=t.avail_in;return s>i&&(s=i),0===s?0:(t.avail_in-=s,e.set(t.input.subarray(t.next_in,t.next_in+s),a),1===t.state.wrap?t.adler=ot(t.adler,e,s,a):2===t.state.wrap&&(t.adler=ht(t.adler,e,s,a)),t.next_in+=s,t.total_in+=s,s)},Gt=(t,e)=>{let a,i,s=t.max_chain_length,r=t.strstart,n=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-Ct?t.strstart-(t.w_size-Ct):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+Tt;let c=h[r+n-1],u=h[r+n];t.prev_length>=t.good_match&&(s>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+n]===u&&h[a+n-1]===c&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do{}while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=Tt-(_-r),r=_-Tt,i>n){if(t.match_start=e,n=i,i>=o)break;c=h[r+n-1],u=h[r+n]}}}while((e=f[e&d])>l&&0!=--s);return n<=t.lookahead?n:t.lookahead},Xt=t=>{const e=t.w_size;let a,i,s;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Ct)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),$t(t),i+=e),0===t.strm.avail_in)break;if(a=qt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=jt(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=jt(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<Ct&&0!==t.strm.avail_in)},Qt=(t,e)=>{let a,i,s,r=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,n=0,o=t.strm.avail_in;do{if(a=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s)break;if(s=t.strm.avail_out-s,i=t.strstart-t.block_start,a>i+t.strm.avail_in&&(a=i+t.strm.avail_in),a>s&&(a=s),a<r&&(0===a&&e!==yt||e===mt||a!==i+t.strm.avail_in))break;n=e===yt&&a===i+t.strm.avail_in?1:0,ct(t,0,0,n),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,Vt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(qt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===n);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),n?4:e!==mt&&e!==yt&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(qt(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,r=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=r||(i||e===yt)&&e!==mt&&0===t.strm.avail_in&&i<=s)&&(a=i>s?s:i,n=e===yt&&0===t.strm.avail_in&&a===i?1:0,ct(t,t.block_start,a,n),t.block_start+=a,Vt(t.strm)),n?3:1)},Jt=(t,e)=>{let a,i;for(;;){if(t.lookahead<Ct){if(Xt(t),t.lookahead<Ct&&e===mt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-Ct&&(t.match_length=Gt(t,a)),t.match_length>=3)if(i=wt(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=jt(t,t.ins_h,t.window[t.strstart+1]);else i=wt(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(Wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2},te=(t,e)=>{let a,i,s;for(;;){if(t.lookahead<Ct){if(Xt(t),t.lookahead<Ct&&e===mt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-Ct&&(t.match_length=Gt(t,a),t.match_length<=5&&(t.strategy===Dt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){s=t.strstart+t.lookahead-3,i=wt(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=s&&(t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(Wt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=wt(t,0,t.window[t.strstart-1]),i&&Wt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=wt(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2};function ee(t,e,a,i,s){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=s}const ae=[new ee(0,0,0,0,Qt),new ee(4,4,8,4,Jt),new ee(4,5,16,8,Jt),new ee(4,6,32,32,Jt),new ee(4,4,16,16,te),new ee(8,16,32,32,te),new ee(8,16,128,128,te),new ee(8,32,128,256,te),new ee(32,128,258,1024,te),new ee(32,258,258,4096,te)];function ie(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Bt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ht(this.dyn_ltree),Ht(this.dyn_dtree),Ht(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ht(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ht(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const se=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Zt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Lt&&e.status!==Mt?1:0},re=t=>{if(se(t))return Nt(t,zt);t.total_in=t.total_out=0,t.data_type=Ft;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Zt:Lt,t.adler=2===e.wrap?0:1,e.last_flush=-2,_t(e),vt},ne=t=>{const e=re(t);var a;return e===vt&&((a=t.state).window_size=2*a.w_size,Ht(a.head),a.max_lazy_match=ae[a.level].max_lazy,a.good_match=ae[a.level].good_length,a.nice_match=ae[a.level].nice_length,a.max_chain_length=ae[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},oe=(t,e,a,i,s,r)=>{if(!t)return zt;let n=1;if(e===Et&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),s<1||s>9||a!==Bt||i<8||i>15||e<0||e>9||r<0||r>Ot||8===i&&1!==n)return Nt(t,zt);8===i&&(i=9);const o=new ie;return t.state=o,o.strm=t,o.status=Zt,o.wrap=n,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=s+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<s+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=e,o.strategy=r,o.method=a,ne(t)};var le={deflateInit:(t,e)=>oe(t,e,Bt,15,8,It),deflateInit2:oe,deflateReset:ne,deflateResetKeep:re,deflateSetHeader:(t,e)=>se(t)||2!==t.state.wrap?zt:(t.state.gzhead=e,vt),deflate:(t,e)=>{if(se(t)||e>kt||e<0)return t?Nt(t,zt):zt;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===Mt&&e!==yt)return Nt(t,0===t.avail_out?St:zt);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(Vt(t),0===t.avail_out)return a.last_flush=-1,vt}else if(0===t.avail_in&&Pt(e)<=Pt(i)&&e!==yt)return Nt(t,St);if(a.status===Mt&&0!==t.avail_in)return Nt(t,St);if(a.status===Zt&&0===a.wrap&&(a.status=Lt),a.status===Zt){let e=Bt+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=Ut||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,Yt(a,e),0!==a.strstart&&(Yt(a,t.adler>>>16),Yt(a,65535&t.adler)),t.adler=1,a.status=Lt,Vt(t),0!==a.pending)return a.last_flush=-1,vt}if(57===a.status)if(t.adler=0,Kt(a,31),Kt(a,139),Kt(a,8),a.gzhead)Kt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Kt(a,255&a.gzhead.time),Kt(a,a.gzhead.time>>8&255),Kt(a,a.gzhead.time>>16&255),Kt(a,a.gzhead.time>>24&255),Kt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Kt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Kt(a,255&a.gzhead.extra.length),Kt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=ht(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Kt(a,0),Kt(a,0),Kt(a,0),Kt(a,0),Kt(a,0),Kt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Kt(a,3),a.status=Lt,Vt(t),0!==a.pending)return a.last_flush=-1,vt;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let s=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=ht(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=s,Vt(t),0!==a.pending)return a.last_flush=-1,vt;e=0,i-=s}let s=new Uint8Array(a.gzhead.extra);a.pending_buf.set(s.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=ht(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i)),Vt(t),0!==a.pending)return a.last_flush=-1,vt;i=0}e=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Kt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i)),Vt(t),0!==a.pending)return a.last_flush=-1,vt;i=0}e=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Kt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(Vt(t),0!==a.pending))return a.last_flush=-1,vt;Kt(a,255&t.adler),Kt(a,t.adler>>8&255),t.adler=0}if(a.status=Lt,Vt(t),0!==a.pending)return a.last_flush=-1,vt}if(0!==t.avail_in||0!==a.lookahead||e!==mt&&a.status!==Mt){let i=0===a.level?Qt(a,e):a.strategy===Ut?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Xt(t),0===t.lookahead)){if(e===mt)return 1;break}if(t.match_length=0,a=wt(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(Wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===At?((t,e)=>{let a,i,s,r;const n=t.window;for(;;){if(t.lookahead<=Tt){if(Xt(t),t.lookahead<=Tt&&e===mt)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(s=t.strstart-1,i=n[s],i===n[++s]&&i===n[++s]&&i===n[++s])){r=t.strstart+Tt;do{}while(i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&s<r);t.match_length=Tt-(r-s),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=wt(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=wt(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(Wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2})(a,e):ae[a.level].func(a,e);if(3!==i&&4!==i||(a.status=Mt),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),vt;if(2===i&&(e===pt?gt(a):e!==kt&&(ct(a,0,0,!1),e===bt&&(Ht(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),Vt(t),0===t.avail_out))return a.last_flush=-1,vt}return e!==yt?vt:a.wrap<=0?xt:(2===a.wrap?(Kt(a,255&t.adler),Kt(a,t.adler>>8&255),Kt(a,t.adler>>16&255),Kt(a,t.adler>>24&255),Kt(a,255&t.total_in),Kt(a,t.total_in>>8&255),Kt(a,t.total_in>>16&255),Kt(a,t.total_in>>24&255)):(Yt(a,t.adler>>>16),Yt(a,65535&t.adler)),Vt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?vt:xt)},deflateEnd:t=>{if(se(t))return zt;const e=t.state.status;return t.state=null,e===Lt?Nt(t,Rt):vt},deflateSetDictionary:(t,e)=>{let a=e.length;if(se(t))return zt;const i=t.state,s=i.wrap;if(2===s||1===s&&i.status!==Zt||i.lookahead)return zt;if(1===s&&(t.adler=ot(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===s&&(Ht(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const r=t.avail_in,n=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Xt(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=jt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Xt(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=n,t.input=o,t.avail_in=r,i.wrap=s,vt},deflateInfo:"pako deflate (from Nodeca project)"};const he=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var de={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)he(a,e)&&(t[e]=a[e])}}return t},flattenChunks:t=>{let e=0;for(let a=0,i=t.length;a<i;a++)e+=t[a].length;const a=new Uint8Array(e);for(let e=0,i=0,s=t.length;e<s;e++){let s=t[e];a.set(s,i),i+=s.length}return a}};let fe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){fe=!1}const _e=new Uint8Array(256);for(let t=0;t<256;t++)_e[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;_e[254]=_e[254]=1;var ce={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,s,r,n=t.length,o=0;for(s=0;s<n;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(e=new Uint8Array(o),r=0,s=0;r<o;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),a<128?e[r++]=a:a<2048?(e[r++]=192|a>>>6,e[r++]=128|63&a):a<65536?(e[r++]=224|a>>>12,e[r++]=128|a>>>6&63,e[r++]=128|63&a):(e[r++]=240|a>>>18,e[r++]=128|a>>>12&63,e[r++]=128|a>>>6&63,e[r++]=128|63&a);return e},buf2string:(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,s;const r=new Array(2*a);for(s=0,i=0;i<a;){let e=t[i++];if(e<128){r[s++]=e;continue}let n=_e[e];if(n>4)r[s++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<a;)e=e<<6|63&t[i++],n--;n>1?r[s++]=65533:e<65536?r[s++]=e:(e-=65536,r[s++]=55296|e>>10&1023,r[s++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&fe)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a})(r,s)},utf8border:(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+_e[t[a]]>e?a:e}};var ue=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const we=Object.prototype.toString,{Z_NO_FLUSH:ge,Z_SYNC_FLUSH:me,Z_FULL_FLUSH:pe,Z_FINISH:be,Z_OK:ye,Z_STREAM_END:ke,Z_DEFAULT_COMPRESSION:ve,Z_DEFAULT_STRATEGY:xe,Z_DEFLATED:ze}=ft;function Re(t){this.options=de.assign({level:ve,method:ze,chunkSize:16384,windowBits:15,memLevel:8,strategy:xe},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ue,this.strm.avail_out=0;let a=le.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==ye)throw new Error(dt[a]);if(e.header&&le.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?ce.string2buf(e.dictionary):"[object ArrayBuffer]"===we.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=le.deflateSetDictionary(this.strm,t),a!==ye)throw new Error(dt[a]);this._dict_set=!0}}function Se(t,e){const a=new Re(e);if(a.push(t,!0),a.err)throw a.msg||dt[a.err];return a.result}Re.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let s,r;if(this.ended)return!1;for(r=e===~~e?e:!0===e?be:ge,"string"==typeof t?a.input=ce.string2buf(t):"[object ArrayBuffer]"===we.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===me||r===pe)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(s=le.deflate(a,r),s===ke)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),s=le.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===ye;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},Re.prototype.onData=function(t){this.chunks.push(t)},Re.prototype.onEnd=function(t){t===ye&&(this.result=de.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Ee={Deflate:Re,deflate:Se,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Se(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Se(t,e)},constants:ft};const De=16209;var Ue=function(t,e){let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z,R;const S=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),s=t.next_out,R=t.output,r=s-(e-t.avail_out),n=s+(t.avail_out-257),o=S.dmax,l=S.wsize,h=S.whave,d=S.wnext,f=S.window,_=S.hold,c=S.bits,u=S.lencode,w=S.distcode,g=(1<<S.lenbits)-1,m=(1<<S.distbits)-1;t:do{c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=u[_&g];e:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,0===b)R[s++]=65535&p;else{if(!(16&b)){if(0==(64&b)){p=u[(65535&p)+(_&(1<<b)-1)];continue e}if(32&b){S.mode=16191;break t}t.msg="invalid literal/length code",S.mode=De;break t}y=65535&p,b&=15,b&&(c<b&&(_+=z[a++]<<c,c+=8),y+=_&(1<<b)-1,_>>>=b,c-=b),c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=w[_&m];a:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,!(16&b)){if(0==(64&b)){p=w[(65535&p)+(_&(1<<b)-1)];continue a}t.msg="invalid distance code",S.mode=De;break t}if(k=65535&p,b&=15,c<b&&(_+=z[a++]<<c,c+=8,c<b&&(_+=z[a++]<<c,c+=8)),k+=_&(1<<b)-1,k>o){t.msg="invalid distance too far back",S.mode=De;break t}if(_>>>=b,c-=b,b=s-r,k>b){if(b=k-b,b>h&&S.sane){t.msg="invalid distance too far back",S.mode=De;break t}if(v=0,x=f,0===d){if(v+=l-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}else if(d<b){if(v+=l+d-b,b-=d,b<y){y-=b;do{R[s++]=f[v++]}while(--b);if(v=0,d<y){b=d,y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}}else if(v+=d-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}for(;y>2;)R[s++]=x[v++],R[s++]=x[v++],R[s++]=x[v++],y-=3;y&&(R[s++]=x[v++],y>1&&(R[s++]=x[v++]))}else{v=s-k;do{R[s++]=R[v++],R[s++]=R[v++],R[s++]=R[v++],y-=3}while(y>2);y&&(R[s++]=R[v++],y>1&&(R[s++]=R[v++]))}break}}break}}while(a<i&&s<n);y=c>>3,a-=y,c-=y<<3,_&=(1<<c)-1,t.next_in=a,t.next_out=s,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=s<n?n-s+257:257-(s-n),S.hold=_,S.bits=c};const Ae=15,Oe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ie=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Fe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Be=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Te=(t,e,a,i,s,r,n,o)=>{const l=o.bits;let h,d,f,_,c,u,w=0,g=0,m=0,p=0,b=0,y=0,k=0,v=0,x=0,z=0,R=null;const S=new Uint16Array(16),E=new Uint16Array(16);let D,U,A,O=null;for(w=0;w<=Ae;w++)S[w]=0;for(g=0;g<i;g++)S[e[a+g]]++;for(b=l,p=Ae;p>=1&&0===S[p];p--);if(b>p&&(b=p),0===p)return s[r++]=20971520,s[r++]=20971520,o.bits=1,0;for(m=1;m<p&&0===S[m];m++);for(b<m&&(b=m),v=1,w=1;w<=Ae;w++)if(v<<=1,v-=S[w],v<0)return-1;if(v>0&&(0===t||1!==p))return-1;for(E[1]=0,w=1;w<Ae;w++)E[w+1]=E[w]+S[w];for(g=0;g<i;g++)0!==e[a+g]&&(n[E[e[a+g]]++]=g);if(0===t?(R=O=n,u=20):1===t?(R=Oe,O=Ie,u=257):(R=Fe,O=Be,u=0),z=0,g=0,w=m,c=r,y=b,k=0,f=-1,x=1<<b,_=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){D=w-k,n[g]+1<u?(U=0,A=n[g]):n[g]>=u?(U=O[n[g]-u],A=R[n[g]-u]):(U=96,A=0),h=1<<w-k,d=1<<y,m=d;do{d-=h,s[c+(z>>k)+d]=D<<24|U<<16|A|0}while(0!==d);for(h=1<<w-1;z&h;)h>>=1;if(0!==h?(z&=h-1,z+=h):z=0,g++,0==--S[w]){if(w===p)break;w=e[a+n[g]]}if(w>b&&(z&_)!==f){for(0===k&&(k=b),c+=m,y=w-k,v=1<<y;y+k<p&&(v-=S[y+k],!(v<=0));)y++,v<<=1;if(x+=1<<y,1===t&&x>852||2===t&&x>592)return 1;f=z&_,s[f]=b<<24|y<<16|c-r|0}}return 0!==z&&(s[c+z]=w-k<<24|64<<16|0),o.bits=b,0};const{Z_FINISH:Ce,Z_BLOCK:Ze,Z_TREES:Le,Z_OK:Me,Z_STREAM_END:Ne,Z_NEED_DICT:Pe,Z_STREAM_ERROR:He,Z_DATA_ERROR:$e,Z_MEM_ERROR:je,Z_BUF_ERROR:Ve,Z_DEFLATED:We}=ft,Ke=16180,Ye=16190,qe=16191,Ge=16192,Xe=16194,Qe=16199,Je=16200,ta=16206,ea=16209,aa=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function ia(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const sa=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<Ke||e.mode>16211?1:0},ra=t=>{if(sa(t))return He;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Ke,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Me},na=t=>{if(sa(t))return He;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,ra(t)},oa=(t,e)=>{let a;if(sa(t))return He;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?He:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,na(t))},la=(t,e)=>{if(!t)return He;const a=new ia;t.state=a,a.strm=t,a.window=null,a.mode=Ke;const i=oa(t,e);return i!==Me&&(t.state=null),i};let ha,da,fa=!0;const _a=t=>{if(fa){ha=new Int32Array(512),da=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Te(1,t.lens,0,288,ha,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Te(2,t.lens,0,32,da,0,t.work,{bits:5}),fa=!1}t.lencode=ha,t.lenbits=9,t.distcode=da,t.distbits=5},ca=(t,e,a,i)=>{let s;const r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(e.subarray(a-i,a-i+s),r.wnext),(i-=s)?(r.window.set(e.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var ua={inflateReset:na,inflateReset2:oa,inflateResetKeep:ra,inflateInit:t=>la(t,15),inflateInit2:la,inflate:(t,e)=>{let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z=0;const R=new Uint8Array(4);let S,E;const D=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(sa(t)||!t.output||!t.input&&0!==t.avail_in)return He;a=t.state,a.mode===qe&&(a.mode=Ge),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,f=o,_=l,x=Me;t:for(;;)switch(a.mode){case Ke:if(0===a.wrap){a.mode=Ge;break}for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(2&a.wrap&&35615===h){0===a.wbits&&(a.wbits=15),a.check=0,R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0),h=0,d=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=ea;break}if((15&h)!==We){t.msg="unknown compression method",a.mode=ea;break}if(h>>>=4,d-=4,v=8+(15&h),0===a.wbits&&(a.wbits=v),v>15||v>a.wbits){t.msg="invalid window size",a.mode=ea;break}a.dmax=1<<a.wbits,a.flags=0,t.adler=a.check=1,a.mode=512&h?16189:qe,h=0,d=0;break;case 16181:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.flags=h,(255&a.flags)!==We){t.msg="unknown compression method",a.mode=ea;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=ea;break}a.head&&(a.head.text=h>>8&1),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.time=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,R[2]=h>>>16&255,R[3]=h>>>24&255,a.check=ht(a.check,R,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(v=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+c),v)),512&a.flags&&4&a.wrap&&(a.check=ht(a.check,i,c,r)),o-=c,r+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.name+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=ht(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.comment+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=ht(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=ea;break}h=0,d=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=qe;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}t.adler=a.check=aa(h),h=0,d=0,a.mode=Ye;case Ye:if(0===a.havedict)return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Pe;t.adler=a.check=1,a.mode=qe;case qe:if(e===Ze||e===Le)break t;case Ge:if(a.last){h>>>=7&d,d-=7&d,a.mode=ta;break}for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}switch(a.last=1&h,h>>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(_a(a),a.mode=Qe,e===Le){h>>>=2,d-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=ea}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=ea;break}if(a.length=65535&h,h=0,d=0,a.mode=Xe,e===Le)break t;case Xe:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;s.set(i.subarray(r,r+c),n),o-=c,r+=c,l-=c,n+=c,a.length-=c;break}a.mode=qe;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=ea;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.lens[D[a.have++]]=7&h,h>>>=3,d-=3}for(;a.have<19;)a.lens[D[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,S={bits:a.lenbits},x=Te(0,a.lens,0,19,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid code lengths set",a.mode=ea;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(p<16)h>>>=g,d-=g,a.lens[a.have++]=p;else{if(16===p){for(E=g+2;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h>>>=g,d-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=ea;break}v=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===p){for(E=g+3;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=3+(7&h),h>>>=3,d-=3}else{for(E=g+7;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=ea;break}for(;c--;)a.lens[a.have++]=v}}if(a.mode===ea)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=ea;break}if(a.lenbits=9,S={bits:a.lenbits},x=Te(1,a.lens,0,a.nlen,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid literal/lengths set",a.mode=ea;break}if(a.distbits=6,a.distcode=a.distdyn,S={bits:a.distbits},x=Te(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,S),a.distbits=S.bits,x){t.msg="invalid distances set",a.mode=ea;break}if(a.mode=Qe,e===Le)break t;case Qe:a.mode=Je;case Je:if(o>=6&&l>=258){t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Ue(t,_),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===qe&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(m&&0==(240&m)){for(b=g,y=m,k=p;z=a.lencode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,a.length=p,0===m){a.mode=16205;break}if(32&m){a.back=-1,a.mode=qe;break}if(64&m){t.msg="invalid literal/length code",a.mode=ea;break}a.extra=15&m,a.mode=16201;case 16201:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<<a.distbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(0==(240&m)){for(b=g,y=m,k=p;z=a.distcode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,64&m){t.msg="invalid distance code",a.mode=ea;break}a.offset=p,a.extra=15&m,a.mode=16203;case 16203:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=ea;break}a.mode=16204;case 16204:if(0===l)break t;if(c=_-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=ea;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=s,u=n-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{s[n++]=w[u++]}while(--c);0===a.length&&(a.mode=Je);break;case 16205:if(0===l)break t;s[n++]=a.length,l--,a.mode=Je;break;case ta:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[r++]<<d,d+=8}if(_-=l,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?ht(a.check,s,_,n-_):ot(a.check,s,_,n-_)),_=l,4&a.wrap&&(a.flags?h:aa(h))!==a.check){t.msg="incorrect data check",a.mode=ea;break}h=0,d=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=ea;break}h=0,d=0}a.mode=16208;case 16208:x=Ne;break t;case ea:x=$e;break t;case 16210:return je;default:return He}return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||_!==t.avail_out&&a.mode<ea&&(a.mode<ta||e!==Ce))&&ca(t,t.output,t.next_out,_-t.avail_out),f-=t.avail_in,_-=t.avail_out,t.total_in+=f,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?ht(a.check,s,_,t.next_out-_):ot(a.check,s,_,t.next_out-_)),t.data_type=a.bits+(a.last?64:0)+(a.mode===qe?128:0)+(a.mode===Qe||a.mode===Xe?256:0),(0===f&&0===_||e===Ce)&&x===Me&&(x=Ve),x},inflateEnd:t=>{if(sa(t))return He;let e=t.state;return e.window&&(e.window=null),t.state=null,Me},inflateGetHeader:(t,e)=>{if(sa(t))return He;const a=t.state;return 0==(2&a.wrap)?He:(a.head=e,e.done=!1,Me)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,s,r;return sa(t)?He:(i=t.state,0!==i.wrap&&i.mode!==Ye?He:i.mode===Ye&&(s=1,s=ot(s,e,a,0),s!==i.check)?$e:(r=ca(t,e,a,a),r?(i.mode=16210,je):(i.havedict=1,Me)))},inflateInfo:"pako inflate (from Nodeca project)"};var wa=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ga=Object.prototype.toString,{Z_NO_FLUSH:ma,Z_FINISH:pa,Z_OK:ba,Z_STREAM_END:ya,Z_NEED_DICT:ka,Z_STREAM_ERROR:va,Z_DATA_ERROR:xa,Z_MEM_ERROR:za}=ft;function Ra(t){this.options=de.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ue,this.strm.avail_out=0;let a=ua.inflateInit2(this.strm,e.windowBits);if(a!==ba)throw new Error(dt[a]);if(this.header=new wa,ua.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=ce.string2buf(e.dictionary):"[object ArrayBuffer]"===ga.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=ua.inflateSetDictionary(this.strm,e.dictionary),a!==ba)))throw new Error(dt[a])}Ra.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let r,n,o;if(this.ended)return!1;for(n=e===~~e?e:!0===e?pa:ma,"[object ArrayBuffer]"===ga.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ua.inflate(a,n),r===ka&&s&&(r=ua.inflateSetDictionary(a,s),r===ba?r=ua.inflate(a,n):r===xa&&(r=ka));a.avail_in>0&&r===ya&&a.state.wrap>0&&0!==t[a.next_in];)ua.inflateReset(a),r=ua.inflate(a,n);switch(r){case va:case xa:case ka:case za:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===ya))if("string"===this.options.to){let t=ce.utf8border(a.output,a.next_out),e=a.next_out-t,s=ce.buf2string(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(s)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==ba||0!==o){if(r===ya)return r=ua.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Ra.prototype.onData=function(t){this.chunks.push(t)},Ra.prototype.onEnd=function(t){t===ba&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=de.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const{Deflate:Sa,deflate:Ea,deflateRaw:Da,gzip:Ua}=Ee;var Aa=Ea;const Oa={b:{u:DataView.prototype.getInt8,p:DataView.prototype.setInt8,bytes:1},B:{u:DataView.prototype.getUint8,p:DataView.prototype.setUint8,bytes:1},h:{u:DataView.prototype.getInt16,p:DataView.prototype.setInt16,bytes:2},H:{u:DataView.prototype.getUint16,p:DataView.prototype.setUint16,bytes:2},i:{u:DataView.prototype.getInt32,p:DataView.prototype.setInt32,bytes:4},I:{u:DataView.prototype.getUint32,p:DataView.prototype.setUint32,bytes:4},q:{u:DataView.prototype.getInt64,p:DataView.prototype.setInt64,bytes:8},Q:{u:DataView.prototype.getUint64,p:DataView.prototype.setUint64,bytes:8}},Ia=(t,...e)=>{let a=0;if(t.replace(/[<>]/,"").length!=e.length)throw"Pack format to Argument count mismatch";let i=[],s=!0;for(let i=0;i<t.length;i++)"<"==t[i]?s=!0:">"==t[i]?s=!1:(r(t[i],e[a]),a++);function r(t,e){if(!(t in Oa))throw"Unhandled character '"+t+"' in pack format";let a=Oa[t].bytes,r=new DataView(new ArrayBuffer(a));Oa[t].p.bind(r)(0,e,s);for(let t=0;t<a;t++)i.push(r.getUint8(t))}return i},Fa=(t,e)=>{let a=0,i=[],s=!0;for(let e of t)"<"==e?s=!0:">"==e?s=!1:r(e);function r(t){if(!(t in Oa))throw"Unhandled character '"+t+"' in unpack format";let r=Oa[t].bytes,n=new DataView(new ArrayBuffer(r));for(let t=0;t<r;t++)n.setUint8(t,255&e[a+t]);let o=Oa[t].u.bind(n);i.push(o(0,s)),a+=r}return i};class Ba extends EventTarget{constructor(t,e,a){super(),this.port=t,this.logger=e,this._parent=a,this.chipName=null,this._efuses=new Array(4).fill(0),this._flashsize=4194304,this.debug=!1,this.IS_STUB=!1,this.connected=!0,this.flashSize=null,this.state_DTR=!1}get _inputBuffer(){return this._parent?this._parent._inputBuffer:this.__inputBuffer}async initialize(){await this.hardReset(!0),this._parent||(this.__inputBuffer=[],this.readLoop()),await this.sync();let t=await this.readRegister(1073745920),e=g[t>>>0];if(void 0===e)throw new Error(`Unknown Chip: Hex: ${a(t>>>0,8).toLowerCase()} Number: ${t}`);this.chipName=e.name,this.chipFamily=e.family;let i=y(this.getChipFamily()).macFuse;for(let t=0;t<4;t++)this._efuses[t]=await this.readRegister(i+4*t);this.logger.log(`Chip type ${this.chipName}`)}async readLoop(){this.debug&&this.logger.debug("Starting read loop"),this._reader=this.port.readable.getReader();try{for(;;){const{value:t,done:e}=await this._reader.read();if(e){this._reader.releaseLock();break}t&&0!==t.length&&this._inputBuffer.push(...Array.from(t))}}catch(t){console.error("Read loop got disconnected")}this.connected=!1,this.dispatchEvent(new Event("disconnect")),this.logger.debug("Finished read loop")}sleep(t=100){return new Promise((e=>setTimeout(e,t)))}async setRTS(t){await this.port.setSignals({requestToSend:t}),await this.setDTR(this.state_DTR)}async setDTR(t){this.state_DTR=t,await this.port.setSignals({dataTerminalReady:t})}async hardReset(t=!1){this.logger.log("Try hard reset."),t?4097===this.port.getInfo().usbProductId?(await this.setDTR(!1),await this.setRTS(!1),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(100),await this.setRTS(!0),await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!1),await this.setRTS(!1)):(await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(50),await this.setDTR(!1)):(await this.setRTS(!0),await this.sleep(100),await this.setRTS(!1)),await new Promise((t=>setTimeout(t,1e3)))}macAddr(){let t,e=new Array(6).fill(0),a=this._efuses[0],i=this._efuses[1],s=this._efuses[2],r=this._efuses[3];if(this.chipFamily==o){if(0!=r)t=[r>>16&255,r>>8&255,255&r];else if(0==(i>>16&255))t=[24,254,52];else{if(1!=(i>>16&255))throw new Error("Couldnt determine OUI");t=[172,208,116]}e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=i>>8&255,e[4]=255&i,e[5]=a>>24&255}else if(this.chipFamily==l)e[0]=s>>8&255,e[1]=255&s,e[2]=i>>24&255,e[3]=i>>16&255,e[4]=i>>8&255,e[5]=255&i;else{if(this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u&&this.chipFamily!=w)throw new Error("Unknown chip family");e[0]=i>>8&255,e[1]=255&i,e[2]=a>>24&255,e[3]=a>>16&255,e[4]=a>>8&255,e[5]=255&a}return e}async readRegister(t){this.debug&&this.logger.debug("Reading from Register "+a(t,8));let e=Ia("<I",t);await this.sendCommand(10,e);let[i,s]=await this.getResponse(10);return i}async checkCommand(t,e,i=0,s=3e3){s=Math.min(s,12e5),await this.sendCommand(t,e,i);let[r,n]=await this.getResponse(t,s);if(null===n)throw new Error("Didn't get enough status bytes");let g=0;if(this.IS_STUB||this.chipFamily==o?g=2:[l,h,d,f,_,c,u,w].includes(this.chipFamily)?g=4:[2,4].includes(n.length)&&(g=n.length),n.length<g)throw new Error("Didn't get enough status bytes");let m=n.slice(-g,n.length);if(n=n.slice(0,-g),this.debug&&(this.logger.debug("status",m),this.logger.debug("value",r),this.logger.debug("data",n)),1==m[0])throw 5==m[1]?new Error("Invalid (unsupported) command "+a(t)):new Error("Command failure error code "+a(m[1]));return[r,n]}async sendCommand(t,e,a=0){let i=(t=>{let e=[192];for(let a of t)219==a?e=e.concat([219,221]):192==a?e=e.concat([219,220]):e.push(a);return e.push(192),e})([...Ia("<BBHI",0,t,e.length,a),...e]);this.debug&&this.logger.debug(`Writing ${i.length} byte${1==i.length?"":"s"}:`,i),await this.writeToStream(i)}async readPacket(t){let s=null,r=!1,n=[];for(;;){let o=Date.now();for(n=[];Date.now()-o<t;){if(this._inputBuffer.length>0){n.push(this._inputBuffer.shift());break}await i(10)}if(0==n.length){throw new k("Timed out waiting for packet "+(null===s?"header":"content"))}this.debug&&this.logger.debug("Read "+n.length+" bytes: "+e(n));for(let t of n)if(null===s){if(192!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new k("Invalid head of packet ("+a(t)+")");s=[]}else if(r)if(r=!1,220==t)s.push(192);else{if(221!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new k("Invalid SLIP escape (0xdb, "+a(t)+")");s.push(219)}else if(219==t)r=!0;else{if(192==t)return this.debug&&this.logger.debug("Received full packet: "+e(s)),s;s.push(t)}}throw new k("Invalid state")}async getResponse(t,e=3e3){for(let i=0;i<100;i++){const i=await this.readPacket(e);if(i.length<8)continue;const[s,r,n,o]=Fa("<BBHI",i.slice(0,8));if(1!=s)continue;const l=i.slice(8);if(null==t||r==t)return[o,l];if(0!=l[0]&&5==l[1])throw this._inputBuffer.length=0,new Error(`Invalid (unsupported) command ${a(t)}`)}throw"Response doesn't match request"}checksum(t,e=239){for(let a of t)e^=a;return e}async setBaudrate(t){if(this.chipFamily==o)throw new Error("Changing baud rate is not supported on the ESP8266");this.logger.log("Attempting to change baud rate to "+t+"...");try{let e=Ia("<II",t,this.IS_STUB?r:0);await this.checkCommand(15,e)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: No response from set baud rate command.`)}this._parent?await this._parent.reconfigurePort(t):await this.reconfigurePort(t)}async reconfigurePort(t){var e;try{await(null===(e=this._reader)||void 0===e?void 0:e.cancel()),await this.port.close(),await this.port.open({baudRate:t}),this.readLoop(),this.logger.log(`Changed baud rate to ${t}`)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: ${e}`)}}async sync(){for(let t=0;t<5;t++){if(this._inputBuffer.length=0,await this._sync())return await i(100),!0;await i(100)}throw new Error("Couldn't sync to ESP. Try resetting.")}async _sync(){await this.sendCommand(8,n);for(let t=0;t<8;t++)try{let[t,e]=await this.getResponse(8,100);if(e.length>1&&0==e[0]&&0==e[1])return!0}catch(t){}return!1}getFlashWriteSize(){return this.IS_STUB?16384:1024}async flashData(t,e,i=0,s=!1){if(t.byteLength>=8){var r=Array.from(new Uint8Array(t,0,4));let e=r[0],i=r[2],s=r[3];this.logger.log(`Image header, Magic=${a(e)}, FlashMode=${a(i)}, FlashSizeFreq=${a(s)}`)}let n,o=t.byteLength,l=0,h=m;s?(n=Aa(new Uint8Array(t),{level:9}).buffer,l=n.byteLength,this.logger.log(`Writing data with filesize: ${o}. Compressed Size: ${l}`),h=await this.flashDeflBegin(o,l,i)):(this.logger.log(`Writing data with filesize: ${o}`),n=t,await this.flashBegin(o,i));let d=[],f=0,_=0,c=0,u=Date.now(),w=this.getFlashWriteSize(),g=s?l:o;for(;g-c>0;)this.debug&&this.logger.log(`Writing at ${a(i+f*w,8)} `),g-c>=w?d=Array.from(new Uint8Array(n,c,w)):(d=Array.from(new Uint8Array(n,c,g-c)),s||(d=d.concat(new Array(w-d.length).fill(255)))),s?await this.flashDeflBlock(d,f,h):await this.flashBlock(d,f),f+=1,_+=s?Math.round(d.length*o/l):d.length,c+=w,e(Math.min(_,o),o);this.logger.log("Took "+(Date.now()-u)+"ms to write "+g+" bytes"),this.IS_STUB&&(await this.flashBegin(0,0),s?await this.flashDeflFinish():await this.flashFinish())}async flashBlock(t,e,a=3e3){await this.checkCommand(3,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashDeflBlock(t,e,a=3e3){await this.checkCommand(17,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashBegin(t=0,e=0,i=!1){let s,r,n=this.getFlashWriteSize();!this.IS_STUB&&[l,h,d,f,_,c,u,w].includes(this.chipFamily)&&await this.checkCommand(13,new Array(8).fill(0));let g,p=Math.floor((t+n-1)/n);s=this.chipFamily==o?this.getEraseSize(e,t):t,g=this.IS_STUB?m:b(3e4,t);let y=Date.now();return r=Ia("<IIII",s,p,n,e),this.chipFamily!=l&&this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u&&this.chipFamily!=w||(r=r.concat(Ia("<I",i?1:0))),this.logger.log("Erase size "+s+", blocks "+p+", block size "+a(n,4)+", offset "+a(e,4)+", encrypted "+(i?"yes":"no")),await this.checkCommand(2,r,0,g),0==t||this.IS_STUB||this.logger.log("Took "+(Date.now()-y)+"ms to erase "+p+" bytes"),p}async flashDeflBegin(t=0,e=0,a=0,i=!1){let s,r=this.getFlashWriteSize(),n=Math.floor((e+r-1)/r),o=Math.floor((t+r-1)/r),l=0,h=0;return this.IS_STUB?(l=t,h=b(3e4,l)):(l=o*r,h=m),s=Ia("<IIII",l,n,r,a),await this.checkCommand(16,s,0,h),h}async flashFinish(){let t=Ia("<I",1);await this.checkCommand(4,t)}async flashDeflFinish(){let t=Ia("<I",1);await this.checkCommand(18,t)}getBootloaderOffset(){return y(this.getChipFamily()).flashOffs}async flashId(){return await this.runSpiFlashCommand(159,[],24)}getChipFamily(){return this._parent?this._parent.chipFamily:this.chipFamily}async writeRegister(t,e,a=4294967295,i=0,s=0){let r=Ia("<IIII",t,e,a,i);s>0&&r.concat(Ia("<IIII",y(this.getChipFamily()).uartDateReg,0,0,s)),await this.checkCommand(9,r)}async setDataLengths(t,e,a){if(-1!=t.mosiDlenOffs){let i=t.regBase+t.mosiDlenOffs,s=t.regBase+t.misoDlenOffs;e>0&&await this.writeRegister(i,e-1),a>0&&await this.writeRegister(s,a-1)}else{let i=t.regBase+t.usr1Offs,s=(0==a?0:a-1)<<8|(0==e?0:e-1)<<17;await this.writeRegister(i,s)}}async waitDone(t,e){for(let a=0;a<10;a++){if(0==(await this.readRegister(t)&e))return}throw Error("SPI command did not complete in time")}async runSpiFlashCommand(t,e,i=0){let s=y(this.getChipFamily()),r=s.regBase,n=r,o=r+s.usrOffs,l=r+s.usr2Offs,h=r+s.w0Offs,d=1<<18;if(i>32)throw new Error("Reading more than 32 bits back from a SPI flash operation is unsupported");if(e.length>64)throw new Error("Writing more than 64 bytes of data with one SPI command is unsupported");let f=8*e.length,_=await this.readRegister(o),c=await this.readRegister(l),u=1<<31;if(i>0&&(u|=268435456),f>0&&(u|=134217728),await this.setDataLengths(s,f,i),await this.writeRegister(o,u),await this.writeRegister(l,7<<28|t),0==f)await this.writeRegister(h,0);else{e.concat(new Array(e.length%4).fill(0));let t=Fa("I".repeat(Math.floor(e.length/4)),e),i=h;this.logger.debug(`Words Length: ${t.length}`);for(const e of t)this.logger.debug(`Writing word ${a(e)} to register offset ${a(i)}`),await this.writeRegister(i,e),i+=4}await this.writeRegister(n,d),await this.waitDone(n,d);let w=await this.readRegister(h);return await this.writeRegister(o,_),await this.writeRegister(l,c),w}async detectFlashSize(){this.logger.log("Detecting Flash Size");let t=await this.flashId(),e=255&t,i=t>>16&255;this.logger.log(`FlashId: ${a(t)}`),this.logger.log(`Flash Manufacturer: ${e.toString(16)}`),this.logger.log(`Flash Device: ${(t>>8&255).toString(16)}${i.toString(16)}`),this.flashSize=s[i],this.logger.log(`Auto-detected Flash size: ${this.flashSize}`)}getEraseSize(t,e){let a=4096,i=Math.floor((e+a-1)/a),s=16-Math.floor(t/a)%16;return i<s&&(s=i),i<2*s?Math.floor((i+1)/2*a):(i-s)*a}async memBegin(t,e,a,i){return await this.checkCommand(5,Ia("<IIII",t,e,a,i))}async memBlock(t,e){return await this.checkCommand(7,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t))}async memFinish(t=0){let e=this.IS_STUB?m:500,a=Ia("<II",0==t?1:0,t);return await this.checkCommand(6,a,0,e)}async runStub(){const t=await v(this.chipFamily);let e,a=2048;this.logger.log("Uploading stub...");for(let e of["text","data"])if(Object.keys(t).includes(e)){let i=t[e+"_start"],s=t[e].length,r=Math.floor((s+a-1)/a);await this.memBegin(s,r,a,i);for(let i of Array(r).keys()){let r=i*a,n=r+a;n>s&&(n=s),await this.memBlock(t[e].slice(r,n),i)}}this.logger.log("Running stub..."),await this.memFinish(t.entry);const i=await this.readPacket(500);if(e=String.fromCharCode(...i),"OHAI"!=e)throw new Error("Failed to start stub. Unexpected response: "+e);this.logger.log("Stub is now running...");const s=new Ta(this.port,this.logger,this);return await s.detectFlashSize(),s}async writeToStream(t){const e=this.port.writable.getWriter();await e.write(new Uint8Array(t));try{e.releaseLock()}catch(t){console.error("Ignoring release lock error",t)}}async disconnect(){this._parent?await this._parent.disconnect():(await this.port.writable.getWriter().close(),await new Promise((t=>{this._reader||t(void 0),this.addEventListener("disconnect",t,{once:!0}),this._reader.cancel()})),this.connected=!1)}}class Ta extends Ba{constructor(){super(...arguments),this.IS_STUB=!0}async memBegin(t,e,i,s){let r=await v(this.chipFamily),n=s,o=s+t;console.log(n,o),console.log(r.data_start,r.data.length,r.text_start,r.text.length);for(let[t,e]of[[r.data_start,r.data_start+r.data.length],[r.text_start,r.text_start+r.text.length]])if(n<e&&o>t)throw new Error("Software loader is resident at "+a(t,8)+"-"+a(e,8)+". Can't load binary at overlapping address range "+a(n,8)+"-"+a(o,8)+". Try changing the binary loading address.")}async eraseFlash(){await this.checkCommand(208,[],0,p)}}const Ca=async t=>{const e=await navigator.serial.requestPort();return t.log("Connecting..."),await e.open({baudRate:r}),t.log("Connected successfully."),new Ba(e,t)};export{l as CHIP_FAMILY_ESP32,f as CHIP_FAMILY_ESP32C2,_ as CHIP_FAMILY_ESP32C3,c as CHIP_FAMILY_ESP32C6,u as CHIP_FAMILY_ESP32H2,w as CHIP_FAMILY_ESP32P4,h as CHIP_FAMILY_ESP32S2,d as CHIP_FAMILY_ESP32S3,o as CHIP_FAMILY_ESP8266,Ba as ESPLoader,Ca as connect};
@@ -0,0 +1 @@
1
+ var A=1341195918,B="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",w=1341194240,E="EAD1TwYK8U9WCvFPrgrxT4QL8U/wC/FPngvxT9QI8U9AC/FPgAvxT8IK8U+ECPFP9grxT4QI8U/gCfFPJgrxT1YK8U+uCvFP8gnxTzgJ8U9oCfFP7gnxT0AO8U9WCvFPCA3xTwAO8U/EB/FPJA7xT8QH8U/EB/FPxAfxT8QH8U/EB/FPxAfxT8QH8U/EB/FPpAzxT8QH8U8mDfFPAA7xTw==",c=1341533100,M=1341456384,T={entry:A,text:B,text_start:w,data:E,data_start:c,bss_start:M};export{M as bss_start,E as data,c as data_start,T as default,A as entry,B as text,w as text_start};
@@ -1 +1 @@
1
- const t=t=>{let e=[];for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);i<=255&&e.push(i)}return e},e=t=>"["+t.map((t=>a(t))).join(", ")+"]",a=(t,e=2)=>{let a=t.toString(16).toUpperCase();return a.startsWith("-")?"-0x"+a.substring(1).padStart(e,"0"):"0x"+a.padStart(e,"0")},i=t=>new Promise((e=>setTimeout(e,t))),s={18:"256KB",19:"512KB",20:"1MB",21:"2MB",22:"4MB",23:"8MB",24:"16MB",25:"32MB",26:"64MB"},r=115200,n=t(" UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"),o=33382,l=50,h=12882,d=12883,f=12994,_=12995,c=12998,u=12914,w={4293968129:{name:"ESP8266",family:o},15736195:{name:"ESP32",family:l},1990:{name:"ESP32-S2",family:h},9:{name:"ESP32-S3",family:d},1867591791:{name:"ESP32-C2",family:f},2084675695:{name:"ESP32-C2",family:f},1763790959:{name:"ESP32-C3",family:_},456216687:{name:"ESP32-C3",family:_},1216438383:{name:"ESP32-C3",family:_},1130455151:{name:"ESP32-C3",family:_},3619110528:{name:"ESP32-H2",family:u},752910447:{name:"ESP32-C6",family:c}},g=3e3,m=6e5,p=(t,e)=>{let a=Math.floor(t*(e/486));return a<g?g:a},b=t=>{switch(t){case l:return{regBase:1072963584,baseFuse:1073061888,macFuse:1073061888,usrOffs:28,usr1Offs:32,usr2Offs:36,mosiDlenOffs:40,misoDlenOffs:44,w0Offs:128,uartDateReg:1610612856,flashOffs:4096};case h:return{regBase:1061167104,baseFuse:1061265408,macFuse:1061265476,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612856,flashOffs:4096};case d:return{regBase:1610620928,usrOffs:24,baseFuse:1610641408,macFuse:1610641476,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612864,flashOffs:0};case o:return{regBase:1610613248,usrOffs:28,baseFuse:1072693328,macFuse:1072693328,usr1Offs:32,usr2Offs:36,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:64,uartDateReg:1610612856,flashOffs:0};case f:case _:return{regBase:1610620928,baseFuse:1610647552,macFuse:1610647620,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case c:return{regBase:1610625024,baseFuse:1611335680,macFuse:1611335748,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case u:return{regBase:1610620928,baseFuse:1610719232,macFuse:1610719300,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};default:return{regBase:-1,baseFuse:-1,macFuse:-1,usrOffs:-1,usr1Offs:-1,usr2Offs:-1,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:-1,uartDateReg:-1,flashOffs:-1}}};class y extends Error{constructor(t){super(t),this.name="SlipReadError"}}const k=async e=>{let a;return e==l?a=await import("./esp32-BLbsWvxO.js"):e==h?a=await import("./esp32s2-CrsP1231.js"):e==d?a=await import("./esp32s3-CiJyd6Fk.js"):e==o?a=await import("./esp8266-CQFcqJ_a.js"):e==f?a=await import("./esp32c2-wLQhZItC.js"):e==_?a=await import("./esp32c3-DmSvHQKL.js"):e==c?a=await import("./esp32c6-ZuxjUVr4.js"):e==u&&(a=await import("./esp32h2-CZ4EIL3w.js")),{...a,text:t(atob(a.text)),data:t(atob(a.data))}};function v(t){let e=t.length;for(;--e>=0;)t[e]=0}const x=256,z=286,R=30,S=15,E=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),U=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),D=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),A=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I=new Array(576);v(I);const O=new Array(60);v(O);const F=new Array(512);v(F);const B=new Array(256);v(B);const T=new Array(29);v(T);const C=new Array(R);function Z(t,e,a,i,s){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=s,this.has_stree=t&&t.length}let L,M,N;function P(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}v(C);const H=t=>t<256?F[t]:F[256+(t>>>7)],$=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},j=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,$(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},V=(t,e,a)=>{j(t,a[2*e],a[2*e+1])},W=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},K=(t,e,a)=>{const i=new Array(16);let s,r,n=0;for(s=1;s<=S;s++)n=n+a[s-1]<<1,i[s]=n;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=W(i[e]++,e))}},Y=t=>{let e;for(e=0;e<z;e++)t.dyn_ltree[2*e]=0;for(e=0;e<R;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},q=t=>{t.bi_valid>8?$(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},G=(t,e,a,i)=>{const s=2*e,r=2*a;return t[s]<t[r]||t[s]===t[r]&&i[e]<=i[a]},X=(t,e,a)=>{const i=t.heap[a];let s=a<<1;for(;s<=t.heap_len&&(s<t.heap_len&&G(e,t.heap[s+1],t.heap[s],t.depth)&&s++,!G(e,i,t.heap[s],t.depth));)t.heap[a]=t.heap[s],a=s,s<<=1;t.heap[a]=i},Q=(t,e,a)=>{let i,s,r,n,o=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+o++],i+=(255&t.pending_buf[t.sym_buf+o++])<<8,s=t.pending_buf[t.sym_buf+o++],0===i?V(t,s,e):(r=B[s],V(t,r+x+1,e),n=E[r],0!==n&&(s-=T[r],j(t,s,n)),i--,r=H(i),V(t,r,a),n=U[r],0!==n&&(i-=C[r],j(t,i,n)))}while(o<t.sym_next);V(t,256,e)},J=(t,e)=>{const a=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.elems;let n,o,l,h=-1;for(t.heap_len=0,t.heap_max=573,n=0;n<r;n++)0!==a[2*n]?(t.heap[++t.heap_len]=h=n,t.depth[n]=0):a[2*n+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,a[2*l]=1,t.depth[l]=0,t.opt_len--,s&&(t.static_len-=i[2*l+1]);for(e.max_code=h,n=t.heap_len>>1;n>=1;n--)X(t,a,n);l=r;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],X(t,a,1),o=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=o,a[2*l]=a[2*n]+a[2*o],t.depth[l]=(t.depth[n]>=t.depth[o]?t.depth[n]:t.depth[o])+1,a[2*n+1]=a[2*o+1]=l,t.heap[1]=l++,X(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,d,f,_,c,u,w=0;for(_=0;_<=S;_++)t.bl_count[_]=0;for(a[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)d=t.heap[h],_=a[2*a[2*d+1]+1]+1,_>l&&(_=l,w++),a[2*d+1]=_,d>i||(t.bl_count[_]++,c=0,d>=o&&(c=n[d-o]),u=a[2*d],t.opt_len+=u*(_+c),r&&(t.static_len+=u*(s[2*d+1]+c)));if(0!==w){do{for(_=l-1;0===t.bl_count[_];)_--;t.bl_count[_]--,t.bl_count[_+1]+=2,t.bl_count[l]--,w-=2}while(w>0);for(_=l;0!==_;_--)for(d=t.bl_count[_];0!==d;)f=t.heap[--h],f>i||(a[2*f+1]!==_&&(t.opt_len+=(_-a[2*f+1])*a[2*f],a[2*f+1]=_),d--)}})(t,e),K(a,h,t.bl_count)},tt=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)s=n,n=e[2*(i+1)+1],++o<l&&s===n||(o<h?t.bl_tree[2*s]+=o:0!==s?(s!==r&&t.bl_tree[2*s]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4))},et=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),i=0;i<=a;i++)if(s=n,n=e[2*(i+1)+1],!(++o<l&&s===n)){if(o<h)do{V(t,s,t.bl_tree)}while(0!=--o);else 0!==s?(s!==r&&(V(t,s,t.bl_tree),o--),V(t,16,t.bl_tree),j(t,o-3,2)):o<=10?(V(t,17,t.bl_tree),j(t,o-3,3)):(V(t,18,t.bl_tree),j(t,o-11,7));o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4)}};let at=!1;const it=(t,e,a,i)=>{j(t,0+(i?1:0),3),q(t),$(t,a),$(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var st=(t,e,a,i)=>{let s,r,n=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<x;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),J(t,t.l_desc),J(t,t.d_desc),n=(t=>{let e;for(tt(t,t.dyn_ltree,t.l_desc.max_code),tt(t,t.dyn_dtree,t.d_desc.max_code),J(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*A[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=a+5,a+4<=s&&-1!==e?it(t,e,a,i):4===t.strategy||r===s?(j(t,2+(i?1:0),3),Q(t,I,O)):(j(t,4+(i?1:0),3),((t,e,a,i)=>{let s;for(j(t,e-257,5),j(t,a-1,5),j(t,i-4,4),s=0;s<i;s++)j(t,t.bl_tree[2*A[s]+1],3);et(t,t.dyn_ltree,e-1),et(t,t.dyn_dtree,a-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,n+1),Q(t,t.dyn_ltree,t.dyn_dtree)),Y(t),i&&q(t)},rt={_tr_init:t=>{at||((()=>{let t,e,a,i,s;const r=new Array(16);for(a=0,i=0;i<28;i++)for(T[i]=a,t=0;t<1<<E[i];t++)B[a++]=i;for(B[a-1]=i,s=0,i=0;i<16;i++)for(C[i]=s,t=0;t<1<<U[i];t++)F[s++]=i;for(s>>=7;i<R;i++)for(C[i]=s<<7,t=0;t<1<<U[i]-7;t++)F[256+s++]=i;for(e=0;e<=S;e++)r[e]=0;for(t=0;t<=143;)I[2*t+1]=8,t++,r[8]++;for(;t<=255;)I[2*t+1]=9,t++,r[9]++;for(;t<=279;)I[2*t+1]=7,t++,r[7]++;for(;t<=287;)I[2*t+1]=8,t++,r[8]++;for(K(I,287,r),t=0;t<R;t++)O[2*t+1]=5,O[2*t]=W(t,5);L=new Z(I,E,257,z,S),M=new Z(O,U,0,R,S),N=new Z(new Array(0),D,0,19,7)})(),at=!0),t.l_desc=new P(t.dyn_ltree,L),t.d_desc=new P(t.dyn_dtree,M),t.bl_desc=new P(t.bl_tree,N),t.bi_buf=0,t.bi_valid=0,Y(t)},_tr_stored_block:it,_tr_flush_block:st,_tr_tally:(t,e,a)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(B[a]+x+1)]++,t.dyn_dtree[2*H(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{j(t,2,3),V(t,256,I),(t=>{16===t.bi_valid?($(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var nt=(t,e,a,i)=>{let s=65535&t|0,r=t>>>16&65535|0,n=0;for(;0!==a;){n=a>2e3?2e3:a,a-=n;do{s=s+e[i++]|0,r=r+s|0}while(--n);s%=65521,r%=65521}return s|r<<16|0};const ot=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var lt=(t,e,a,i)=>{const s=ot,r=i+a;t^=-1;for(let a=i;a<r;a++)t=t>>>8^s[255&(t^e[a])];return-1^t},ht={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},dt={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:ft,_tr_stored_block:_t,_tr_flush_block:ct,_tr_tally:ut,_tr_align:wt}=rt,{Z_NO_FLUSH:gt,Z_PARTIAL_FLUSH:mt,Z_FULL_FLUSH:pt,Z_FINISH:bt,Z_BLOCK:yt,Z_OK:kt,Z_STREAM_END:vt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:zt,Z_BUF_ERROR:Rt,Z_DEFAULT_COMPRESSION:St,Z_FILTERED:Et,Z_HUFFMAN_ONLY:Ut,Z_RLE:Dt,Z_FIXED:At,Z_DEFAULT_STRATEGY:It,Z_UNKNOWN:Ot,Z_DEFLATED:Ft}=dt,Bt=258,Tt=262,Ct=42,Zt=113,Lt=666,Mt=(t,e)=>(t.msg=ht[e],e),Nt=t=>2*t-(t>4?9:0),Pt=t=>{let e=t.length;for(;--e>=0;)t[e]=0},Ht=t=>{let e,a,i,s=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=s?a-s:0}while(--e);e=s,i=e;do{a=t.prev[--i],t.prev[i]=a>=s?a-s:0}while(--e)};let $t=(t,e,a)=>(e<<t.hash_shift^a)&t.hash_mask;const jt=t=>{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},Vt=(t,e)=>{ct(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,jt(t.strm)},Wt=(t,e)=>{t.pending_buf[t.pending++]=e},Kt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Yt=(t,e,a,i)=>{let s=t.avail_in;return s>i&&(s=i),0===s?0:(t.avail_in-=s,e.set(t.input.subarray(t.next_in,t.next_in+s),a),1===t.state.wrap?t.adler=nt(t.adler,e,s,a):2===t.state.wrap&&(t.adler=lt(t.adler,e,s,a)),t.next_in+=s,t.total_in+=s,s)},qt=(t,e)=>{let a,i,s=t.max_chain_length,r=t.strstart,n=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-Tt?t.strstart-(t.w_size-Tt):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+Bt;let c=h[r+n-1],u=h[r+n];t.prev_length>=t.good_match&&(s>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+n]===u&&h[a+n-1]===c&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do{}while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=Bt-(_-r),r=_-Bt,i>n){if(t.match_start=e,n=i,i>=o)break;c=h[r+n-1],u=h[r+n]}}}while((e=f[e&d])>l&&0!=--s);return n<=t.lookahead?n:t.lookahead},Gt=t=>{const e=t.w_size;let a,i,s;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Tt)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),Ht(t),i+=e),0===t.strm.avail_in)break;if(a=Yt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=$t(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=$t(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<Tt&&0!==t.strm.avail_in)},Xt=(t,e)=>{let a,i,s,r=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,n=0,o=t.strm.avail_in;do{if(a=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s)break;if(s=t.strm.avail_out-s,i=t.strstart-t.block_start,a>i+t.strm.avail_in&&(a=i+t.strm.avail_in),a>s&&(a=s),a<r&&(0===a&&e!==bt||e===gt||a!==i+t.strm.avail_in))break;n=e===bt&&a===i+t.strm.avail_in?1:0,_t(t,0,0,n),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,jt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(Yt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===n);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),n?4:e!==gt&&e!==bt&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(Yt(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,r=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=r||(i||e===bt)&&e!==gt&&0===t.strm.avail_in&&i<=s)&&(a=i>s?s:i,n=e===bt&&0===t.strm.avail_in&&a===i?1:0,_t(t,t.block_start,a,n),t.block_start+=a,jt(t.strm)),n?3:1)},Qt=(t,e)=>{let a,i;for(;;){if(t.lookahead<Tt){if(Gt(t),t.lookahead<Tt&&e===gt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-Tt&&(t.match_length=qt(t,a)),t.match_length>=3)if(i=ut(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=$t(t,t.ins_h,t.window[t.strstart+1]);else i=ut(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(Vt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2},Jt=(t,e)=>{let a,i,s;for(;;){if(t.lookahead<Tt){if(Gt(t),t.lookahead<Tt&&e===gt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-Tt&&(t.match_length=qt(t,a),t.match_length<=5&&(t.strategy===Et||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){s=t.strstart+t.lookahead-3,i=ut(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=s&&(t.ins_h=$t(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(Vt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=ut(t,0,t.window[t.strstart-1]),i&&Vt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=ut(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2};function te(t,e,a,i,s){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=s}const ee=[new te(0,0,0,0,Xt),new te(4,4,8,4,Qt),new te(4,5,16,8,Qt),new te(4,6,32,32,Qt),new te(4,4,16,16,Jt),new te(8,16,32,32,Jt),new te(8,16,128,128,Jt),new te(8,32,128,256,Jt),new te(32,128,258,1024,Jt),new te(32,258,258,4096,Jt)];function ae(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ft,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Pt(this.dyn_ltree),Pt(this.dyn_dtree),Pt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Pt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Pt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ie=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Ct&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Zt&&e.status!==Lt?1:0},se=t=>{if(ie(t))return Mt(t,xt);t.total_in=t.total_out=0,t.data_type=Ot;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Ct:Zt,t.adler=2===e.wrap?0:1,e.last_flush=-2,ft(e),kt},re=t=>{const e=se(t);var a;return e===kt&&((a=t.state).window_size=2*a.w_size,Pt(a.head),a.max_lazy_match=ee[a.level].max_lazy,a.good_match=ee[a.level].good_length,a.nice_match=ee[a.level].nice_length,a.max_chain_length=ee[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},ne=(t,e,a,i,s,r)=>{if(!t)return xt;let n=1;if(e===St&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),s<1||s>9||a!==Ft||i<8||i>15||e<0||e>9||r<0||r>At||8===i&&1!==n)return Mt(t,xt);8===i&&(i=9);const o=new ae;return t.state=o,o.strm=t,o.status=Ct,o.wrap=n,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=s+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<s+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=e,o.strategy=r,o.method=a,re(t)};var oe={deflateInit:(t,e)=>ne(t,e,Ft,15,8,It),deflateInit2:ne,deflateReset:re,deflateResetKeep:se,deflateSetHeader:(t,e)=>ie(t)||2!==t.state.wrap?xt:(t.state.gzhead=e,kt),deflate:(t,e)=>{if(ie(t)||e>yt||e<0)return t?Mt(t,xt):xt;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===Lt&&e!==bt)return Mt(t,0===t.avail_out?Rt:xt);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(jt(t),0===t.avail_out)return a.last_flush=-1,kt}else if(0===t.avail_in&&Nt(e)<=Nt(i)&&e!==bt)return Mt(t,Rt);if(a.status===Lt&&0!==t.avail_in)return Mt(t,Rt);if(a.status===Ct&&0===a.wrap&&(a.status=Zt),a.status===Ct){let e=Ft+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=Ut||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,Kt(a,e),0!==a.strstart&&(Kt(a,t.adler>>>16),Kt(a,65535&t.adler)),t.adler=1,a.status=Zt,jt(t),0!==a.pending)return a.last_flush=-1,kt}if(57===a.status)if(t.adler=0,Wt(a,31),Wt(a,139),Wt(a,8),a.gzhead)Wt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Wt(a,255&a.gzhead.time),Wt(a,a.gzhead.time>>8&255),Wt(a,a.gzhead.time>>16&255),Wt(a,a.gzhead.time>>24&255),Wt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Wt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Wt(a,255&a.gzhead.extra.length),Wt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=lt(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Wt(a,0),Wt(a,0),Wt(a,0),Wt(a,0),Wt(a,0),Wt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Wt(a,3),a.status=Zt,jt(t),0!==a.pending)return a.last_flush=-1,kt;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let s=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=lt(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=s,jt(t),0!==a.pending)return a.last_flush=-1,kt;e=0,i-=s}let s=new Uint8Array(a.gzhead.extra);a.pending_buf.set(s.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=lt(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i)),jt(t),0!==a.pending)return a.last_flush=-1,kt;i=0}e=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Wt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i)),jt(t),0!==a.pending)return a.last_flush=-1,kt;i=0}e=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Wt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=lt(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(jt(t),0!==a.pending))return a.last_flush=-1,kt;Wt(a,255&t.adler),Wt(a,t.adler>>8&255),t.adler=0}if(a.status=Zt,jt(t),0!==a.pending)return a.last_flush=-1,kt}if(0!==t.avail_in||0!==a.lookahead||e!==gt&&a.status!==Lt){let i=0===a.level?Xt(a,e):a.strategy===Ut?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Gt(t),0===t.lookahead)){if(e===gt)return 1;break}if(t.match_length=0,a=ut(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(Vt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===Dt?((t,e)=>{let a,i,s,r;const n=t.window;for(;;){if(t.lookahead<=Bt){if(Gt(t),t.lookahead<=Bt&&e===gt)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(s=t.strstart-1,i=n[s],i===n[++s]&&i===n[++s]&&i===n[++s])){r=t.strstart+Bt;do{}while(i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&s<r);t.match_length=Bt-(r-s),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=ut(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=ut(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(Vt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===bt?(Vt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Vt(t,!1),0===t.strm.avail_out)?1:2})(a,e):ee[a.level].func(a,e);if(3!==i&&4!==i||(a.status=Lt),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),kt;if(2===i&&(e===mt?wt(a):e!==yt&&(_t(a,0,0,!1),e===pt&&(Pt(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),jt(t),0===t.avail_out))return a.last_flush=-1,kt}return e!==bt?kt:a.wrap<=0?vt:(2===a.wrap?(Wt(a,255&t.adler),Wt(a,t.adler>>8&255),Wt(a,t.adler>>16&255),Wt(a,t.adler>>24&255),Wt(a,255&t.total_in),Wt(a,t.total_in>>8&255),Wt(a,t.total_in>>16&255),Wt(a,t.total_in>>24&255)):(Kt(a,t.adler>>>16),Kt(a,65535&t.adler)),jt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?kt:vt)},deflateEnd:t=>{if(ie(t))return xt;const e=t.state.status;return t.state=null,e===Zt?Mt(t,zt):kt},deflateSetDictionary:(t,e)=>{let a=e.length;if(ie(t))return xt;const i=t.state,s=i.wrap;if(2===s||1===s&&i.status!==Ct||i.lookahead)return xt;if(1===s&&(t.adler=nt(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===s&&(Pt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const r=t.avail_in,n=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Gt(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=$t(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Gt(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=n,t.input=o,t.avail_in=r,i.wrap=s,kt},deflateInfo:"pako deflate (from Nodeca project)"};const le=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var he={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)le(a,e)&&(t[e]=a[e])}}return t},flattenChunks:t=>{let e=0;for(let a=0,i=t.length;a<i;a++)e+=t[a].length;const a=new Uint8Array(e);for(let e=0,i=0,s=t.length;e<s;e++){let s=t[e];a.set(s,i),i+=s.length}return a}};let de=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){de=!1}const fe=new Uint8Array(256);for(let t=0;t<256;t++)fe[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;fe[254]=fe[254]=1;var _e={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,s,r,n=t.length,o=0;for(s=0;s<n;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(e=new Uint8Array(o),r=0,s=0;r<o;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),a<128?e[r++]=a:a<2048?(e[r++]=192|a>>>6,e[r++]=128|63&a):a<65536?(e[r++]=224|a>>>12,e[r++]=128|a>>>6&63,e[r++]=128|63&a):(e[r++]=240|a>>>18,e[r++]=128|a>>>12&63,e[r++]=128|a>>>6&63,e[r++]=128|63&a);return e},buf2string:(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,s;const r=new Array(2*a);for(s=0,i=0;i<a;){let e=t[i++];if(e<128){r[s++]=e;continue}let n=fe[e];if(n>4)r[s++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<a;)e=e<<6|63&t[i++],n--;n>1?r[s++]=65533:e<65536?r[s++]=e:(e-=65536,r[s++]=55296|e>>10&1023,r[s++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&de)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a})(r,s)},utf8border:(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+fe[t[a]]>e?a:e}};var ce=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const ue=Object.prototype.toString,{Z_NO_FLUSH:we,Z_SYNC_FLUSH:ge,Z_FULL_FLUSH:me,Z_FINISH:pe,Z_OK:be,Z_STREAM_END:ye,Z_DEFAULT_COMPRESSION:ke,Z_DEFAULT_STRATEGY:ve,Z_DEFLATED:xe}=dt;function ze(t){this.options=he.assign({level:ke,method:xe,chunkSize:16384,windowBits:15,memLevel:8,strategy:ve},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ce,this.strm.avail_out=0;let a=oe.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==be)throw new Error(ht[a]);if(e.header&&oe.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?_e.string2buf(e.dictionary):"[object ArrayBuffer]"===ue.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=oe.deflateSetDictionary(this.strm,t),a!==be)throw new Error(ht[a]);this._dict_set=!0}}function Re(t,e){const a=new ze(e);if(a.push(t,!0),a.err)throw a.msg||ht[a.err];return a.result}ze.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let s,r;if(this.ended)return!1;for(r=e===~~e?e:!0===e?pe:we,"string"==typeof t?a.input=_e.string2buf(t):"[object ArrayBuffer]"===ue.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===ge||r===me)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(s=oe.deflate(a,r),s===ye)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),s=oe.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===be;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ze.prototype.onData=function(t){this.chunks.push(t)},ze.prototype.onEnd=function(t){t===be&&(this.result=he.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Se={Deflate:ze,deflate:Re,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Re(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Re(t,e)},constants:dt};const Ee=16209;var Ue=function(t,e){let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z,R;const S=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),s=t.next_out,R=t.output,r=s-(e-t.avail_out),n=s+(t.avail_out-257),o=S.dmax,l=S.wsize,h=S.whave,d=S.wnext,f=S.window,_=S.hold,c=S.bits,u=S.lencode,w=S.distcode,g=(1<<S.lenbits)-1,m=(1<<S.distbits)-1;t:do{c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=u[_&g];e:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,0===b)R[s++]=65535&p;else{if(!(16&b)){if(0==(64&b)){p=u[(65535&p)+(_&(1<<b)-1)];continue e}if(32&b){S.mode=16191;break t}t.msg="invalid literal/length code",S.mode=Ee;break t}y=65535&p,b&=15,b&&(c<b&&(_+=z[a++]<<c,c+=8),y+=_&(1<<b)-1,_>>>=b,c-=b),c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=w[_&m];a:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,!(16&b)){if(0==(64&b)){p=w[(65535&p)+(_&(1<<b)-1)];continue a}t.msg="invalid distance code",S.mode=Ee;break t}if(k=65535&p,b&=15,c<b&&(_+=z[a++]<<c,c+=8,c<b&&(_+=z[a++]<<c,c+=8)),k+=_&(1<<b)-1,k>o){t.msg="invalid distance too far back",S.mode=Ee;break t}if(_>>>=b,c-=b,b=s-r,k>b){if(b=k-b,b>h&&S.sane){t.msg="invalid distance too far back",S.mode=Ee;break t}if(v=0,x=f,0===d){if(v+=l-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}else if(d<b){if(v+=l+d-b,b-=d,b<y){y-=b;do{R[s++]=f[v++]}while(--b);if(v=0,d<y){b=d,y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}}else if(v+=d-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}for(;y>2;)R[s++]=x[v++],R[s++]=x[v++],R[s++]=x[v++],y-=3;y&&(R[s++]=x[v++],y>1&&(R[s++]=x[v++]))}else{v=s-k;do{R[s++]=R[v++],R[s++]=R[v++],R[s++]=R[v++],y-=3}while(y>2);y&&(R[s++]=R[v++],y>1&&(R[s++]=R[v++]))}break}}break}}while(a<i&&s<n);y=c>>3,a-=y,c-=y<<3,_&=(1<<c)-1,t.next_in=a,t.next_out=s,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=s<n?n-s+257:257-(s-n),S.hold=_,S.bits=c};const De=15,Ae=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ie=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Oe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Fe=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Be=(t,e,a,i,s,r,n,o)=>{const l=o.bits;let h,d,f,_,c,u,w=0,g=0,m=0,p=0,b=0,y=0,k=0,v=0,x=0,z=0,R=null;const S=new Uint16Array(16),E=new Uint16Array(16);let U,D,A,I=null;for(w=0;w<=De;w++)S[w]=0;for(g=0;g<i;g++)S[e[a+g]]++;for(b=l,p=De;p>=1&&0===S[p];p--);if(b>p&&(b=p),0===p)return s[r++]=20971520,s[r++]=20971520,o.bits=1,0;for(m=1;m<p&&0===S[m];m++);for(b<m&&(b=m),v=1,w=1;w<=De;w++)if(v<<=1,v-=S[w],v<0)return-1;if(v>0&&(0===t||1!==p))return-1;for(E[1]=0,w=1;w<De;w++)E[w+1]=E[w]+S[w];for(g=0;g<i;g++)0!==e[a+g]&&(n[E[e[a+g]]++]=g);if(0===t?(R=I=n,u=20):1===t?(R=Ae,I=Ie,u=257):(R=Oe,I=Fe,u=0),z=0,g=0,w=m,c=r,y=b,k=0,f=-1,x=1<<b,_=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){U=w-k,n[g]+1<u?(D=0,A=n[g]):n[g]>=u?(D=I[n[g]-u],A=R[n[g]-u]):(D=96,A=0),h=1<<w-k,d=1<<y,m=d;do{d-=h,s[c+(z>>k)+d]=U<<24|D<<16|A|0}while(0!==d);for(h=1<<w-1;z&h;)h>>=1;if(0!==h?(z&=h-1,z+=h):z=0,g++,0==--S[w]){if(w===p)break;w=e[a+n[g]]}if(w>b&&(z&_)!==f){for(0===k&&(k=b),c+=m,y=w-k,v=1<<y;y+k<p&&(v-=S[y+k],!(v<=0));)y++,v<<=1;if(x+=1<<y,1===t&&x>852||2===t&&x>592)return 1;f=z&_,s[f]=b<<24|y<<16|c-r|0}}return 0!==z&&(s[c+z]=w-k<<24|64<<16|0),o.bits=b,0};const{Z_FINISH:Te,Z_BLOCK:Ce,Z_TREES:Ze,Z_OK:Le,Z_STREAM_END:Me,Z_NEED_DICT:Ne,Z_STREAM_ERROR:Pe,Z_DATA_ERROR:He,Z_MEM_ERROR:$e,Z_BUF_ERROR:je,Z_DEFLATED:Ve}=dt,We=16180,Ke=16190,Ye=16191,qe=16192,Ge=16194,Xe=16199,Qe=16200,Je=16206,ta=16209,ea=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function aa(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ia=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<We||e.mode>16211?1:0},sa=t=>{if(ia(t))return Pe;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=We,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Le},ra=t=>{if(ia(t))return Pe;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,sa(t)},na=(t,e)=>{let a;if(ia(t))return Pe;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Pe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,ra(t))},oa=(t,e)=>{if(!t)return Pe;const a=new aa;t.state=a,a.strm=t,a.window=null,a.mode=We;const i=na(t,e);return i!==Le&&(t.state=null),i};let la,ha,da=!0;const fa=t=>{if(da){la=new Int32Array(512),ha=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Be(1,t.lens,0,288,la,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Be(2,t.lens,0,32,ha,0,t.work,{bits:5}),da=!1}t.lencode=la,t.lenbits=9,t.distcode=ha,t.distbits=5},_a=(t,e,a,i)=>{let s;const r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(e.subarray(a-i,a-i+s),r.wnext),(i-=s)?(r.window.set(e.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var ca={inflateReset:ra,inflateReset2:na,inflateResetKeep:sa,inflateInit:t=>oa(t,15),inflateInit2:oa,inflate:(t,e)=>{let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z=0;const R=new Uint8Array(4);let S,E;const U=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ia(t)||!t.output||!t.input&&0!==t.avail_in)return Pe;a=t.state,a.mode===Ye&&(a.mode=qe),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,f=o,_=l,x=Le;t:for(;;)switch(a.mode){case We:if(0===a.wrap){a.mode=qe;break}for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(2&a.wrap&&35615===h){0===a.wbits&&(a.wbits=15),a.check=0,R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0),h=0,d=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=ta;break}if((15&h)!==Ve){t.msg="unknown compression method",a.mode=ta;break}if(h>>>=4,d-=4,v=8+(15&h),0===a.wbits&&(a.wbits=v),v>15||v>a.wbits){t.msg="invalid window size",a.mode=ta;break}a.dmax=1<<a.wbits,a.flags=0,t.adler=a.check=1,a.mode=512&h?16189:Ye,h=0,d=0;break;case 16181:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.flags=h,(255&a.flags)!==Ve){t.msg="unknown compression method",a.mode=ta;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=ta;break}a.head&&(a.head.text=h>>8&1),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.time=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,R[2]=h>>>16&255,R[3]=h>>>24&255,a.check=lt(a.check,R,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=lt(a.check,R,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(v=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+c),v)),512&a.flags&&4&a.wrap&&(a.check=lt(a.check,i,c,r)),o-=c,r+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.name+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=lt(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.comment+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=lt(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=ta;break}h=0,d=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=Ye;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}t.adler=a.check=ea(h),h=0,d=0,a.mode=Ke;case Ke:if(0===a.havedict)return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Ne;t.adler=a.check=1,a.mode=Ye;case Ye:if(e===Ce||e===Ze)break t;case qe:if(a.last){h>>>=7&d,d-=7&d,a.mode=Je;break}for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}switch(a.last=1&h,h>>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(fa(a),a.mode=Xe,e===Ze){h>>>=2,d-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=ta}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=ta;break}if(a.length=65535&h,h=0,d=0,a.mode=Ge,e===Ze)break t;case Ge:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;s.set(i.subarray(r,r+c),n),o-=c,r+=c,l-=c,n+=c,a.length-=c;break}a.mode=Ye;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=ta;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.lens[U[a.have++]]=7&h,h>>>=3,d-=3}for(;a.have<19;)a.lens[U[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,S={bits:a.lenbits},x=Be(0,a.lens,0,19,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid code lengths set",a.mode=ta;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(p<16)h>>>=g,d-=g,a.lens[a.have++]=p;else{if(16===p){for(E=g+2;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h>>>=g,d-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=ta;break}v=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===p){for(E=g+3;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=3+(7&h),h>>>=3,d-=3}else{for(E=g+7;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=ta;break}for(;c--;)a.lens[a.have++]=v}}if(a.mode===ta)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=ta;break}if(a.lenbits=9,S={bits:a.lenbits},x=Be(1,a.lens,0,a.nlen,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid literal/lengths set",a.mode=ta;break}if(a.distbits=6,a.distcode=a.distdyn,S={bits:a.distbits},x=Be(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,S),a.distbits=S.bits,x){t.msg="invalid distances set",a.mode=ta;break}if(a.mode=Xe,e===Ze)break t;case Xe:a.mode=Qe;case Qe:if(o>=6&&l>=258){t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Ue(t,_),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===Ye&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(m&&0==(240&m)){for(b=g,y=m,k=p;z=a.lencode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,a.length=p,0===m){a.mode=16205;break}if(32&m){a.back=-1,a.mode=Ye;break}if(64&m){t.msg="invalid literal/length code",a.mode=ta;break}a.extra=15&m,a.mode=16201;case 16201:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<<a.distbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(0==(240&m)){for(b=g,y=m,k=p;z=a.distcode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,64&m){t.msg="invalid distance code",a.mode=ta;break}a.offset=p,a.extra=15&m,a.mode=16203;case 16203:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=ta;break}a.mode=16204;case 16204:if(0===l)break t;if(c=_-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=ta;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=s,u=n-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{s[n++]=w[u++]}while(--c);0===a.length&&(a.mode=Qe);break;case 16205:if(0===l)break t;s[n++]=a.length,l--,a.mode=Qe;break;case Je:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[r++]<<d,d+=8}if(_-=l,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?lt(a.check,s,_,n-_):nt(a.check,s,_,n-_)),_=l,4&a.wrap&&(a.flags?h:ea(h))!==a.check){t.msg="incorrect data check",a.mode=ta;break}h=0,d=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=ta;break}h=0,d=0}a.mode=16208;case 16208:x=Me;break t;case ta:x=He;break t;case 16210:return $e;default:return Pe}return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||_!==t.avail_out&&a.mode<ta&&(a.mode<Je||e!==Te))&&_a(t,t.output,t.next_out,_-t.avail_out),f-=t.avail_in,_-=t.avail_out,t.total_in+=f,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?lt(a.check,s,_,t.next_out-_):nt(a.check,s,_,t.next_out-_)),t.data_type=a.bits+(a.last?64:0)+(a.mode===Ye?128:0)+(a.mode===Xe||a.mode===Ge?256:0),(0===f&&0===_||e===Te)&&x===Le&&(x=je),x},inflateEnd:t=>{if(ia(t))return Pe;let e=t.state;return e.window&&(e.window=null),t.state=null,Le},inflateGetHeader:(t,e)=>{if(ia(t))return Pe;const a=t.state;return 0==(2&a.wrap)?Pe:(a.head=e,e.done=!1,Le)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,s,r;return ia(t)?Pe:(i=t.state,0!==i.wrap&&i.mode!==Ke?Pe:i.mode===Ke&&(s=1,s=nt(s,e,a,0),s!==i.check)?He:(r=_a(t,e,a,a),r?(i.mode=16210,$e):(i.havedict=1,Le)))},inflateInfo:"pako inflate (from Nodeca project)"};var ua=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const wa=Object.prototype.toString,{Z_NO_FLUSH:ga,Z_FINISH:ma,Z_OK:pa,Z_STREAM_END:ba,Z_NEED_DICT:ya,Z_STREAM_ERROR:ka,Z_DATA_ERROR:va,Z_MEM_ERROR:xa}=dt;function za(t){this.options=he.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ce,this.strm.avail_out=0;let a=ca.inflateInit2(this.strm,e.windowBits);if(a!==pa)throw new Error(ht[a]);if(this.header=new ua,ca.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=_e.string2buf(e.dictionary):"[object ArrayBuffer]"===wa.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=ca.inflateSetDictionary(this.strm,e.dictionary),a!==pa)))throw new Error(ht[a])}za.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let r,n,o;if(this.ended)return!1;for(n=e===~~e?e:!0===e?ma:ga,"[object ArrayBuffer]"===wa.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ca.inflate(a,n),r===ya&&s&&(r=ca.inflateSetDictionary(a,s),r===pa?r=ca.inflate(a,n):r===va&&(r=ya));a.avail_in>0&&r===ba&&a.state.wrap>0&&0!==t[a.next_in];)ca.inflateReset(a),r=ca.inflate(a,n);switch(r){case ka:case va:case ya:case xa:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===ba))if("string"===this.options.to){let t=_e.utf8border(a.output,a.next_out),e=a.next_out-t,s=_e.buf2string(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(s)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==pa||0!==o){if(r===ba)return r=ca.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},za.prototype.onData=function(t){this.chunks.push(t)},za.prototype.onEnd=function(t){t===pa&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=he.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const{Deflate:Ra,deflate:Sa,deflateRaw:Ea,gzip:Ua}=Se;var Da=Sa;const Aa={b:{u:DataView.prototype.getInt8,p:DataView.prototype.setInt8,bytes:1},B:{u:DataView.prototype.getUint8,p:DataView.prototype.setUint8,bytes:1},h:{u:DataView.prototype.getInt16,p:DataView.prototype.setInt16,bytes:2},H:{u:DataView.prototype.getUint16,p:DataView.prototype.setUint16,bytes:2},i:{u:DataView.prototype.getInt32,p:DataView.prototype.setInt32,bytes:4},I:{u:DataView.prototype.getUint32,p:DataView.prototype.setUint32,bytes:4},q:{u:DataView.prototype.getInt64,p:DataView.prototype.setInt64,bytes:8},Q:{u:DataView.prototype.getUint64,p:DataView.prototype.setUint64,bytes:8}},Ia=(t,...e)=>{let a=0;if(t.replace(/[<>]/,"").length!=e.length)throw"Pack format to Argument count mismatch";let i=[],s=!0;for(let i=0;i<t.length;i++)"<"==t[i]?s=!0:">"==t[i]?s=!1:(r(t[i],e[a]),a++);function r(t,e){if(!(t in Aa))throw"Unhandled character '"+t+"' in pack format";let a=Aa[t].bytes,r=new DataView(new ArrayBuffer(a));Aa[t].p.bind(r)(0,e,s);for(let t=0;t<a;t++)i.push(r.getUint8(t))}return i},Oa=(t,e)=>{let a=0,i=[],s=!0;for(let e of t)"<"==e?s=!0:">"==e?s=!1:r(e);function r(t){if(!(t in Aa))throw"Unhandled character '"+t+"' in unpack format";let r=Aa[t].bytes,n=new DataView(new ArrayBuffer(r));for(let t=0;t<r;t++)n.setUint8(t,255&e[a+t]);let o=Aa[t].u.bind(n);i.push(o(0,s)),a+=r}return i};class Fa extends EventTarget{constructor(t,e,a){super(),this.port=t,this.logger=e,this._parent=a,this.chipName=null,this._efuses=new Array(4).fill(0),this._flashsize=4194304,this.debug=!1,this.IS_STUB=!1,this.connected=!0,this.flashSize=null,this.state_DTR=!1}get _inputBuffer(){return this._parent?this._parent._inputBuffer:this.__inputBuffer}async initialize(){await this.hardReset(!0),this._parent||(this.__inputBuffer=[],this.readLoop()),await this.sync();let t=await this.readRegister(1073745920),e=w[t>>>0];if(void 0===e)throw new Error(`Unknown Chip: Hex: ${a(t>>>0,8).toLowerCase()} Number: ${t}`);this.chipName=e.name,this.chipFamily=e.family;let i=b(this.getChipFamily()).macFuse;for(let t=0;t<4;t++)this._efuses[t]=await this.readRegister(i+4*t);this.logger.log(`Chip type ${this.chipName}`)}async readLoop(){this.debug&&this.logger.debug("Starting read loop"),this._reader=this.port.readable.getReader();try{for(;;){const{value:t,done:e}=await this._reader.read();if(e){this._reader.releaseLock();break}t&&0!==t.length&&this._inputBuffer.push(...Array.from(t))}}catch(t){console.error("Read loop got disconnected")}this.connected=!1,this.dispatchEvent(new Event("disconnect")),this.logger.debug("Finished read loop")}sleep(t=100){return new Promise((e=>setTimeout(e,t)))}async setRTS(t){await this.port.setSignals({requestToSend:t}),await this.setDTR(this.state_DTR)}async setDTR(t){this.state_DTR=t,await this.port.setSignals({dataTerminalReady:t})}async hardReset(t=!1){this.logger.log("Try hard reset."),t?4097===this.port.getInfo().usbProductId?(await this.setDTR(!1),await this.setRTS(!1),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(100),await this.setRTS(!0),await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!1),await this.setRTS(!1)):(await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(50),await this.setDTR(!1)):(await this.setRTS(!0),await this.sleep(100),await this.setRTS(!1)),await new Promise((t=>setTimeout(t,1e3)))}macAddr(){let t,e=new Array(6).fill(0),a=this._efuses[0],i=this._efuses[1],s=this._efuses[2],r=this._efuses[3];if(this.chipFamily==o){if(0!=r)t=[r>>16&255,r>>8&255,255&r];else if(0==(i>>16&255))t=[24,254,52];else{if(1!=(i>>16&255))throw new Error("Couldnt determine OUI");t=[172,208,116]}e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=i>>8&255,e[4]=255&i,e[5]=a>>24&255}else if(this.chipFamily==l)e[0]=s>>8&255,e[1]=255&s,e[2]=i>>24&255,e[3]=i>>16&255,e[4]=i>>8&255,e[5]=255&i;else{if(this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u)throw new Error("Unknown chip family");e[0]=i>>8&255,e[1]=255&i,e[2]=a>>24&255,e[3]=a>>16&255,e[4]=a>>8&255,e[5]=255&a}return e}async readRegister(t){this.debug&&this.logger.debug("Reading from Register "+a(t,8));let e=Ia("<I",t);await this.sendCommand(10,e);let[i,s]=await this.getResponse(10);return i}async checkCommand(t,e,i=0,s=3e3){s=Math.min(s,12e5),await this.sendCommand(t,e,i);let[r,n]=await this.getResponse(t,s);if(null===n)throw new Error("Didn't get enough status bytes");let w=0;if(this.IS_STUB||this.chipFamily==o?w=2:[l,h,d,f,_,c,u].includes(this.chipFamily)?w=4:[2,4].includes(n.length)&&(w=n.length),n.length<w)throw new Error("Didn't get enough status bytes");let g=n.slice(-w,n.length);if(n=n.slice(0,-w),this.debug&&(this.logger.debug("status",g),this.logger.debug("value",r),this.logger.debug("data",n)),1==g[0])throw 5==g[1]?new Error("Invalid (unsupported) command "+a(t)):new Error("Command failure error code "+a(g[1]));return[r,n]}async sendCommand(t,e,a=0){let i=(t=>{let e=[192];for(let a of t)219==a?e=e.concat([219,221]):192==a?e=e.concat([219,220]):e.push(a);return e.push(192),e})([...Ia("<BBHI",0,t,e.length,a),...e]);this.debug&&this.logger.debug(`Writing ${i.length} byte${1==i.length?"":"s"}:`,i),await this.writeToStream(i)}async readPacket(t){let s=null,r=!1,n=[];for(;;){let o=Date.now();for(n=[];Date.now()-o<t;){if(this._inputBuffer.length>0){n.push(this._inputBuffer.shift());break}await i(10)}if(0==n.length){throw new y("Timed out waiting for packet "+(null===s?"header":"content"))}this.debug&&this.logger.debug("Read "+n.length+" bytes: "+e(n));for(let t of n)if(null===s){if(192!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new y("Invalid head of packet ("+a(t)+")");s=[]}else if(r)if(r=!1,220==t)s.push(192);else{if(221!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new y("Invalid SLIP escape (0xdb, "+a(t)+")");s.push(219)}else if(219==t)r=!0;else{if(192==t)return this.debug&&this.logger.debug("Received full packet: "+e(s)),s;s.push(t)}}throw new y("Invalid state")}async getResponse(t,e=3e3){for(let i=0;i<100;i++){const i=await this.readPacket(e);if(i.length<8)continue;const[s,r,n,o]=Oa("<BBHI",i.slice(0,8));if(1!=s)continue;const l=i.slice(8);if(null==t||r==t)return[o,l];if(0!=l[0]&&5==l[1])throw this._inputBuffer.length=0,new Error(`Invalid (unsupported) command ${a(t)}`)}throw"Response doesn't match request"}checksum(t,e=239){for(let a of t)e^=a;return e}async setBaudrate(t){if(this.chipFamily==o)throw new Error("Changing baud rate is not supported on the ESP8266");this.logger.log("Attempting to change baud rate to "+t+"...");try{let e=Ia("<II",t,this.IS_STUB?r:0);await this.checkCommand(15,e)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: No response from set baud rate command.`)}this._parent?await this._parent.reconfigurePort(t):await this.reconfigurePort(t)}async reconfigurePort(t){var e;try{await(null===(e=this._reader)||void 0===e?void 0:e.cancel()),await this.port.close(),await this.port.open({baudRate:t}),this.readLoop(),this.logger.log(`Changed baud rate to ${t}`)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: ${e}`)}}async sync(){for(let t=0;t<5;t++){if(this._inputBuffer.length=0,await this._sync())return await i(100),!0;await i(100)}throw new Error("Couldn't sync to ESP. Try resetting.")}async _sync(){await this.sendCommand(8,n);for(let t=0;t<8;t++)try{let[t,e]=await this.getResponse(8,100);if(e.length>1&&0==e[0]&&0==e[1])return!0}catch(t){}return!1}getFlashWriteSize(){return this.IS_STUB?16384:1024}async flashData(t,e,i=0,s=!1){if(t.byteLength>=8){var r=Array.from(new Uint8Array(t,0,4));let e=r[0],i=r[2],s=r[3];this.logger.log(`Image header, Magic=${a(e)}, FlashMode=${a(i)}, FlashSizeFreq=${a(s)}`)}let n,o=t.byteLength,l=0,h=g;s?(n=Da(new Uint8Array(t),{level:9}).buffer,l=n.byteLength,this.logger.log(`Writing data with filesize: ${o}. Compressed Size: ${l}`),h=await this.flashDeflBegin(o,l,i)):(this.logger.log(`Writing data with filesize: ${o}`),n=t,await this.flashBegin(o,i));let d=[],f=0,_=0,c=0,u=Date.now(),w=this.getFlashWriteSize(),m=s?l:o;for(;m-c>0;)this.debug&&this.logger.log(`Writing at ${a(i+f*w,8)} `),m-c>=w?d=Array.from(new Uint8Array(n,c,w)):(d=Array.from(new Uint8Array(n,c,m-c)),s||(d=d.concat(new Array(w-d.length).fill(255)))),s?await this.flashDeflBlock(d,f,h):await this.flashBlock(d,f),f+=1,_+=s?Math.round(d.length*o/l):d.length,c+=w,e(Math.min(_,o),o);this.logger.log("Took "+(Date.now()-u)+"ms to write "+m+" bytes"),this.IS_STUB&&(await this.flashBegin(0,0),s?await this.flashDeflFinish():await this.flashFinish())}async flashBlock(t,e,a=3e3){await this.checkCommand(3,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashDeflBlock(t,e,a=3e3){await this.checkCommand(17,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashBegin(t=0,e=0,i=!1){let s,r,n=this.getFlashWriteSize();!this.IS_STUB&&[l,h,d,f,_,c,u].includes(this.chipFamily)&&await this.checkCommand(13,new Array(8).fill(0));let w,m=Math.floor((t+n-1)/n);s=this.chipFamily==o?this.getEraseSize(e,t):t,w=this.IS_STUB?g:p(3e4,t);let b=Date.now();return r=Ia("<IIII",s,m,n,e),this.chipFamily!=l&&this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u||(r=r.concat(Ia("<I",i?1:0))),this.logger.log("Erase size "+s+", blocks "+m+", block size "+a(n,4)+", offset "+a(e,4)+", encrypted "+(i?"yes":"no")),await this.checkCommand(2,r,0,w),0==t||this.IS_STUB||this.logger.log("Took "+(Date.now()-b)+"ms to erase "+m+" bytes"),m}async flashDeflBegin(t=0,e=0,a=0,i=!1){let s,r=this.getFlashWriteSize(),n=Math.floor((e+r-1)/r),o=Math.floor((t+r-1)/r),l=0,h=0;return this.IS_STUB?(l=t,h=p(3e4,l)):(l=o*r,h=g),s=Ia("<IIII",l,n,r,a),await this.checkCommand(16,s,0,h),h}async flashFinish(){let t=Ia("<I",1);await this.checkCommand(4,t)}async flashDeflFinish(){let t=Ia("<I",1);await this.checkCommand(18,t)}getBootloaderOffset(){return b(this.getChipFamily()).flashOffs}async flashId(){return await this.runSpiFlashCommand(159,[],24)}getChipFamily(){return this._parent?this._parent.chipFamily:this.chipFamily}async writeRegister(t,e,a=4294967295,i=0,s=0){let r=Ia("<IIII",t,e,a,i);s>0&&r.concat(Ia("<IIII",b(this.getChipFamily()).uartDateReg,0,0,s)),await this.checkCommand(9,r)}async setDataLengths(t,e,a){if(-1!=t.mosiDlenOffs){let i=t.regBase+t.mosiDlenOffs,s=t.regBase+t.misoDlenOffs;e>0&&await this.writeRegister(i,e-1),a>0&&await this.writeRegister(s,a-1)}else{let i=t.regBase+t.usr1Offs,s=(0==a?0:a-1)<<8|(0==e?0:e-1)<<17;await this.writeRegister(i,s)}}async waitDone(t,e){for(let a=0;a<10;a++){if(0==(await this.readRegister(t)&e))return}throw Error("SPI command did not complete in time")}async runSpiFlashCommand(t,e,i=0){let s=b(this.getChipFamily()),r=s.regBase,n=r,o=r+s.usrOffs,l=r+s.usr2Offs,h=r+s.w0Offs,d=1<<18;if(i>32)throw new Error("Reading more than 32 bits back from a SPI flash operation is unsupported");if(e.length>64)throw new Error("Writing more than 64 bytes of data with one SPI command is unsupported");let f=8*e.length,_=await this.readRegister(o),c=await this.readRegister(l),u=1<<31;if(i>0&&(u|=268435456),f>0&&(u|=134217728),await this.setDataLengths(s,f,i),await this.writeRegister(o,u),await this.writeRegister(l,7<<28|t),0==f)await this.writeRegister(h,0);else{e.concat(new Array(e.length%4).fill(0));let t=Oa("I".repeat(Math.floor(e.length/4)),e),i=h;this.logger.debug(`Words Length: ${t.length}`);for(const e of t)this.logger.debug(`Writing word ${a(e)} to register offset ${a(i)}`),await this.writeRegister(i,e),i+=4}await this.writeRegister(n,d),await this.waitDone(n,d);let w=await this.readRegister(h);return await this.writeRegister(o,_),await this.writeRegister(l,c),w}async detectFlashSize(){this.logger.log("Detecting Flash Size");let t=await this.flashId(),e=255&t,i=t>>16&255;this.logger.log(`FlashId: ${a(t)}`),this.logger.log(`Flash Manufacturer: ${e.toString(16)}`),this.logger.log(`Flash Device: ${(t>>8&255).toString(16)}${i.toString(16)}`),this.flashSize=s[i],this.logger.log(`Auto-detected Flash size: ${this.flashSize}`)}getEraseSize(t,e){let a=4096,i=Math.floor((e+a-1)/a),s=16-Math.floor(t/a)%16;return i<s&&(s=i),i<2*s?Math.floor((i+1)/2*a):(i-s)*a}async memBegin(t,e,a,i){return await this.checkCommand(5,Ia("<IIII",t,e,a,i))}async memBlock(t,e){return await this.checkCommand(7,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t))}async memFinish(t=0){let e=this.IS_STUB?g:500,a=Ia("<II",0==t?1:0,t);return await this.checkCommand(6,a,0,e)}async runStub(){const t=await k(this.chipFamily);let e,a=2048;this.logger.log("Uploading stub...");for(let e of["text","data"])if(Object.keys(t).includes(e)){let i=t[e+"_start"],s=t[e].length,r=Math.floor((s+a-1)/a);await this.memBegin(s,r,a,i);for(let i of Array(r).keys()){let r=i*a,n=r+a;n>s&&(n=s),await this.memBlock(t[e].slice(r,n),i)}}this.logger.log("Running stub..."),await this.memFinish(t.entry);const i=await this.readPacket(500);if(e=String.fromCharCode(...i),"OHAI"!=e)throw new Error("Failed to start stub. Unexpected response: "+e);this.logger.log("Stub is now running...");const s=new Ba(this.port,this.logger,this);return await s.detectFlashSize(),s}async writeToStream(t){const e=this.port.writable.getWriter();await e.write(new Uint8Array(t));try{e.releaseLock()}catch(t){console.error("Ignoring release lock error",t)}}async disconnect(){this._parent?await this._parent.disconnect():(await this.port.writable.getWriter().close(),await new Promise((t=>{this._reader||t(void 0),this.addEventListener("disconnect",t,{once:!0}),this._reader.cancel()})),this.connected=!1)}}class Ba extends Fa{constructor(){super(...arguments),this.IS_STUB=!0}async memBegin(t,e,i,s){let r=await k(this.chipFamily),n=s,o=s+t;console.log(n,o),console.log(r.data_start,r.data.length,r.text_start,r.text.length);for(let[t,e]of[[r.data_start,r.data_start+r.data.length],[r.text_start,r.text_start+r.text.length]])if(n<e&&o>t)throw new Error("Software loader is resident at "+a(t,8)+"-"+a(e,8)+". Can't load binary at overlapping address range "+a(n,8)+"-"+a(o,8)+". Try changing the binary loading address.")}async eraseFlash(){await this.checkCommand(208,[],0,m)}}const Ta=async t=>{const e=await navigator.serial.requestPort();return t.log("Connecting..."),await e.open({baudRate:r}),t.log("Connected successfully."),new Fa(e,t)};export{l as CHIP_FAMILY_ESP32,f as CHIP_FAMILY_ESP32C2,_ as CHIP_FAMILY_ESP32C3,c as CHIP_FAMILY_ESP32C6,u as CHIP_FAMILY_ESP32H2,h as CHIP_FAMILY_ESP32S2,d as CHIP_FAMILY_ESP32S3,o as CHIP_FAMILY_ESP8266,Fa as ESPLoader,Ta as connect};
1
+ const t=t=>{let e=[];for(let a=0;a<t.length;a++){let i=t.charCodeAt(a);i<=255&&e.push(i)}return e},e=t=>"["+t.map((t=>a(t))).join(", ")+"]",a=(t,e=2)=>{let a=t.toString(16).toUpperCase();return a.startsWith("-")?"-0x"+a.substring(1).padStart(e,"0"):"0x"+a.padStart(e,"0")},i=t=>new Promise((e=>setTimeout(e,t))),s={18:"256KB",19:"512KB",20:"1MB",21:"2MB",22:"4MB",23:"8MB",24:"16MB",25:"32MB",26:"64MB"},r=115200,n=t(" UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"),o=33382,l=50,h=12882,d=12883,f=12994,_=12995,c=12998,u=12914,w=12928,g={4293968129:{name:"ESP8266",family:o},15736195:{name:"ESP32",family:l},1990:{name:"ESP32-S2",family:h},9:{name:"ESP32-S3",family:d},1867591791:{name:"ESP32-C2",family:f},2084675695:{name:"ESP32-C2",family:f},1763790959:{name:"ESP32-C3",family:_},456216687:{name:"ESP32-C3",family:_},1216438383:{name:"ESP32-C3",family:_},1130455151:{name:"ESP32-C3",family:_},3619110528:{name:"ESP32-H2",family:u},752910447:{name:"ESP32-C6",family:c},182303440:{name:"ESP32-P4",family:w},0:{name:"ESP32-P4",family:w}},m=3e3,p=6e5,b=(t,e)=>{let a=Math.floor(t*(e/486));return a<m?m:a},y=t=>{switch(t){case l:return{regBase:1072963584,baseFuse:1073061888,macFuse:1073061888,usrOffs:28,usr1Offs:32,usr2Offs:36,mosiDlenOffs:40,misoDlenOffs:44,w0Offs:128,uartDateReg:1610612856,flashOffs:4096};case h:return{regBase:1061167104,baseFuse:1061265408,macFuse:1061265476,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612856,flashOffs:4096};case d:return{regBase:1610620928,usrOffs:24,baseFuse:1610641408,macFuse:1610641476,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612864,flashOffs:0};case o:return{regBase:1610613248,usrOffs:28,baseFuse:1072693328,macFuse:1072693328,usr1Offs:32,usr2Offs:36,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:64,uartDateReg:1610612856,flashOffs:0};case f:case _:return{regBase:1610620928,baseFuse:1610647552,macFuse:1610647620,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case c:return{regBase:1610625024,baseFuse:1611335680,macFuse:1611335748,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case u:return{regBase:1610620928,baseFuse:1610719232,macFuse:1610719300,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1610612860,flashOffs:0};case w:return{regBase:1342754816,baseFuse:1343410176,macFuse:1343410244,usrOffs:24,usr1Offs:28,usr2Offs:32,mosiDlenOffs:36,misoDlenOffs:40,w0Offs:88,uartDateReg:1343004812,flashOffs:8192};default:return{regBase:-1,baseFuse:-1,macFuse:-1,usrOffs:-1,usr1Offs:-1,usr2Offs:-1,mosiDlenOffs:-1,misoDlenOffs:-1,w0Offs:-1,uartDateReg:-1,flashOffs:-1}}};class k extends Error{constructor(t){super(t),this.name="SlipReadError"}}const v=async e=>{let a;return e==l?a=await import("./esp32-BLbsWvxO.js"):e==h?a=await import("./esp32s2-CrsP1231.js"):e==d?a=await import("./esp32s3-CiJyd6Fk.js"):e==o?a=await import("./esp8266-CQFcqJ_a.js"):e==f?a=await import("./esp32c2-wLQhZItC.js"):e==_?a=await import("./esp32c3-DmSvHQKL.js"):e==c?a=await import("./esp32c6-ZuxjUVr4.js"):e==u?a=await import("./esp32h2-CZ4EIL3w.js"):e==w&&(a=await import("./esp32p4-BvuBbdjO.js")),{...a,text:t(atob(a.text)),data:t(atob(a.data))}};function x(t){let e=t.length;for(;--e>=0;)t[e]=0}const z=256,R=286,S=30,E=15,D=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),U=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),A=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I=new Array(576);x(I);const F=new Array(60);x(F);const B=new Array(512);x(B);const T=new Array(256);x(T);const C=new Array(29);x(C);const Z=new Array(S);function L(t,e,a,i,s){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=s,this.has_stree=t&&t.length}let M,N,P;function H(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}x(Z);const $=t=>t<256?B[t]:B[256+(t>>>7)],j=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},V=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,j(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},W=(t,e,a)=>{V(t,a[2*e],a[2*e+1])},K=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},Y=(t,e,a)=>{const i=new Array(16);let s,r,n=0;for(s=1;s<=E;s++)n=n+a[s-1]<<1,i[s]=n;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=K(i[e]++,e))}},q=t=>{let e;for(e=0;e<R;e++)t.dyn_ltree[2*e]=0;for(e=0;e<S;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},G=t=>{t.bi_valid>8?j(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},X=(t,e,a,i)=>{const s=2*e,r=2*a;return t[s]<t[r]||t[s]===t[r]&&i[e]<=i[a]},Q=(t,e,a)=>{const i=t.heap[a];let s=a<<1;for(;s<=t.heap_len&&(s<t.heap_len&&X(e,t.heap[s+1],t.heap[s],t.depth)&&s++,!X(e,i,t.heap[s],t.depth));)t.heap[a]=t.heap[s],a=s,s<<=1;t.heap[a]=i},J=(t,e,a)=>{let i,s,r,n,o=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+o++],i+=(255&t.pending_buf[t.sym_buf+o++])<<8,s=t.pending_buf[t.sym_buf+o++],0===i?W(t,s,e):(r=T[s],W(t,r+z+1,e),n=D[r],0!==n&&(s-=C[r],V(t,s,n)),i--,r=$(i),W(t,r,a),n=U[r],0!==n&&(i-=Z[r],V(t,i,n)))}while(o<t.sym_next);W(t,256,e)},tt=(t,e)=>{const a=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.elems;let n,o,l,h=-1;for(t.heap_len=0,t.heap_max=573,n=0;n<r;n++)0!==a[2*n]?(t.heap[++t.heap_len]=h=n,t.depth[n]=0):a[2*n+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,a[2*l]=1,t.depth[l]=0,t.opt_len--,s&&(t.static_len-=i[2*l+1]);for(e.max_code=h,n=t.heap_len>>1;n>=1;n--)Q(t,a,n);l=r;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Q(t,a,1),o=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=o,a[2*l]=a[2*n]+a[2*o],t.depth[l]=(t.depth[n]>=t.depth[o]?t.depth[n]:t.depth[o])+1,a[2*n+1]=a[2*o+1]=l,t.heap[1]=l++,Q(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,d,f,_,c,u,w=0;for(_=0;_<=E;_++)t.bl_count[_]=0;for(a[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)d=t.heap[h],_=a[2*a[2*d+1]+1]+1,_>l&&(_=l,w++),a[2*d+1]=_,d>i||(t.bl_count[_]++,c=0,d>=o&&(c=n[d-o]),u=a[2*d],t.opt_len+=u*(_+c),r&&(t.static_len+=u*(s[2*d+1]+c)));if(0!==w){do{for(_=l-1;0===t.bl_count[_];)_--;t.bl_count[_]--,t.bl_count[_+1]+=2,t.bl_count[l]--,w-=2}while(w>0);for(_=l;0!==_;_--)for(d=t.bl_count[_];0!==d;)f=t.heap[--h],f>i||(a[2*f+1]!==_&&(t.opt_len+=(_-a[2*f+1])*a[2*f],a[2*f+1]=_),d--)}})(t,e),Y(a,h,t.bl_count)},et=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)s=n,n=e[2*(i+1)+1],++o<l&&s===n||(o<h?t.bl_tree[2*s]+=o:0!==s?(s!==r&&t.bl_tree[2*s]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4))},at=(t,e,a)=>{let i,s,r=-1,n=e[1],o=0,l=7,h=4;for(0===n&&(l=138,h=3),i=0;i<=a;i++)if(s=n,n=e[2*(i+1)+1],!(++o<l&&s===n)){if(o<h)do{W(t,s,t.bl_tree)}while(0!=--o);else 0!==s?(s!==r&&(W(t,s,t.bl_tree),o--),W(t,16,t.bl_tree),V(t,o-3,2)):o<=10?(W(t,17,t.bl_tree),V(t,o-3,3)):(W(t,18,t.bl_tree),V(t,o-11,7));o=0,r=s,0===n?(l=138,h=3):s===n?(l=6,h=3):(l=7,h=4)}};let it=!1;const st=(t,e,a,i)=>{V(t,0+(i?1:0),3),G(t),j(t,a),j(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var rt=(t,e,a,i)=>{let s,r,n=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<z;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),tt(t,t.l_desc),tt(t,t.d_desc),n=(t=>{let e;for(et(t,t.dyn_ltree,t.l_desc.max_code),et(t,t.dyn_dtree,t.d_desc.max_code),tt(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*O[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=a+5,a+4<=s&&-1!==e?st(t,e,a,i):4===t.strategy||r===s?(V(t,2+(i?1:0),3),J(t,I,F)):(V(t,4+(i?1:0),3),((t,e,a,i)=>{let s;for(V(t,e-257,5),V(t,a-1,5),V(t,i-4,4),s=0;s<i;s++)V(t,t.bl_tree[2*O[s]+1],3);at(t,t.dyn_ltree,e-1),at(t,t.dyn_dtree,a-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,n+1),J(t,t.dyn_ltree,t.dyn_dtree)),q(t),i&&G(t)},nt={_tr_init:t=>{it||((()=>{let t,e,a,i,s;const r=new Array(16);for(a=0,i=0;i<28;i++)for(C[i]=a,t=0;t<1<<D[i];t++)T[a++]=i;for(T[a-1]=i,s=0,i=0;i<16;i++)for(Z[i]=s,t=0;t<1<<U[i];t++)B[s++]=i;for(s>>=7;i<S;i++)for(Z[i]=s<<7,t=0;t<1<<U[i]-7;t++)B[256+s++]=i;for(e=0;e<=E;e++)r[e]=0;for(t=0;t<=143;)I[2*t+1]=8,t++,r[8]++;for(;t<=255;)I[2*t+1]=9,t++,r[9]++;for(;t<=279;)I[2*t+1]=7,t++,r[7]++;for(;t<=287;)I[2*t+1]=8,t++,r[8]++;for(Y(I,287,r),t=0;t<S;t++)F[2*t+1]=5,F[2*t]=K(t,5);M=new L(I,D,257,R,E),N=new L(F,U,0,S,E),P=new L(new Array(0),A,0,19,7)})(),it=!0),t.l_desc=new H(t.dyn_ltree,M),t.d_desc=new H(t.dyn_dtree,N),t.bl_desc=new H(t.bl_tree,P),t.bi_buf=0,t.bi_valid=0,q(t)},_tr_stored_block:st,_tr_flush_block:rt,_tr_tally:(t,e,a)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(T[a]+z+1)]++,t.dyn_dtree[2*$(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{V(t,2,3),W(t,256,I),(t=>{16===t.bi_valid?(j(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var ot=(t,e,a,i)=>{let s=65535&t|0,r=t>>>16&65535|0,n=0;for(;0!==a;){n=a>2e3?2e3:a,a-=n;do{s=s+e[i++]|0,r=r+s|0}while(--n);s%=65521,r%=65521}return s|r<<16|0};const lt=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var ht=(t,e,a,i)=>{const s=lt,r=i+a;t^=-1;for(let a=i;a<r;a++)t=t>>>8^s[255&(t^e[a])];return-1^t},dt={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ft={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:_t,_tr_stored_block:ct,_tr_flush_block:ut,_tr_tally:wt,_tr_align:gt}=nt,{Z_NO_FLUSH:mt,Z_PARTIAL_FLUSH:pt,Z_FULL_FLUSH:bt,Z_FINISH:yt,Z_BLOCK:kt,Z_OK:vt,Z_STREAM_END:xt,Z_STREAM_ERROR:zt,Z_DATA_ERROR:Rt,Z_BUF_ERROR:St,Z_DEFAULT_COMPRESSION:Et,Z_FILTERED:Dt,Z_HUFFMAN_ONLY:Ut,Z_RLE:At,Z_FIXED:Ot,Z_DEFAULT_STRATEGY:It,Z_UNKNOWN:Ft,Z_DEFLATED:Bt}=ft,Tt=258,Ct=262,Zt=42,Lt=113,Mt=666,Nt=(t,e)=>(t.msg=dt[e],e),Pt=t=>2*t-(t>4?9:0),Ht=t=>{let e=t.length;for(;--e>=0;)t[e]=0},$t=t=>{let e,a,i,s=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=s?a-s:0}while(--e);e=s,i=e;do{a=t.prev[--i],t.prev[i]=a>=s?a-s:0}while(--e)};let jt=(t,e,a)=>(e<<t.hash_shift^a)&t.hash_mask;const Vt=t=>{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},Wt=(t,e)=>{ut(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Vt(t.strm)},Kt=(t,e)=>{t.pending_buf[t.pending++]=e},Yt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},qt=(t,e,a,i)=>{let s=t.avail_in;return s>i&&(s=i),0===s?0:(t.avail_in-=s,e.set(t.input.subarray(t.next_in,t.next_in+s),a),1===t.state.wrap?t.adler=ot(t.adler,e,s,a):2===t.state.wrap&&(t.adler=ht(t.adler,e,s,a)),t.next_in+=s,t.total_in+=s,s)},Gt=(t,e)=>{let a,i,s=t.max_chain_length,r=t.strstart,n=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-Ct?t.strstart-(t.w_size-Ct):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+Tt;let c=h[r+n-1],u=h[r+n];t.prev_length>=t.good_match&&(s>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+n]===u&&h[a+n-1]===c&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do{}while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=Tt-(_-r),r=_-Tt,i>n){if(t.match_start=e,n=i,i>=o)break;c=h[r+n-1],u=h[r+n]}}}while((e=f[e&d])>l&&0!=--s);return n<=t.lookahead?n:t.lookahead},Xt=t=>{const e=t.w_size;let a,i,s;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Ct)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),$t(t),i+=e),0===t.strm.avail_in)break;if(a=qt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=jt(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=jt(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<Ct&&0!==t.strm.avail_in)},Qt=(t,e)=>{let a,i,s,r=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,n=0,o=t.strm.avail_in;do{if(a=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s)break;if(s=t.strm.avail_out-s,i=t.strstart-t.block_start,a>i+t.strm.avail_in&&(a=i+t.strm.avail_in),a>s&&(a=s),a<r&&(0===a&&e!==yt||e===mt||a!==i+t.strm.avail_in))break;n=e===yt&&a===i+t.strm.avail_in?1:0,ct(t,0,0,n),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,Vt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(qt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===n);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),n?4:e!==mt&&e!==yt&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(qt(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,r=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=r||(i||e===yt)&&e!==mt&&0===t.strm.avail_in&&i<=s)&&(a=i>s?s:i,n=e===yt&&0===t.strm.avail_in&&a===i?1:0,ct(t,t.block_start,a,n),t.block_start+=a,Vt(t.strm)),n?3:1)},Jt=(t,e)=>{let a,i;for(;;){if(t.lookahead<Ct){if(Xt(t),t.lookahead<Ct&&e===mt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-Ct&&(t.match_length=Gt(t,a)),t.match_length>=3)if(i=wt(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=jt(t,t.ins_h,t.window[t.strstart+1]);else i=wt(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(Wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2},te=(t,e)=>{let a,i,s;for(;;){if(t.lookahead<Ct){if(Xt(t),t.lookahead<Ct&&e===mt)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-Ct&&(t.match_length=Gt(t,a),t.match_length<=5&&(t.strategy===Dt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){s=t.strstart+t.lookahead-3,i=wt(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=s&&(t.ins_h=jt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(Wt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=wt(t,0,t.window[t.strstart-1]),i&&Wt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=wt(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2};function ee(t,e,a,i,s){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=s}const ae=[new ee(0,0,0,0,Qt),new ee(4,4,8,4,Jt),new ee(4,5,16,8,Jt),new ee(4,6,32,32,Jt),new ee(4,4,16,16,te),new ee(8,16,32,32,te),new ee(8,16,128,128,te),new ee(8,32,128,256,te),new ee(32,128,258,1024,te),new ee(32,258,258,4096,te)];function ie(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Bt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ht(this.dyn_ltree),Ht(this.dyn_dtree),Ht(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ht(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ht(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const se=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==Zt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Lt&&e.status!==Mt?1:0},re=t=>{if(se(t))return Nt(t,zt);t.total_in=t.total_out=0,t.data_type=Ft;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Zt:Lt,t.adler=2===e.wrap?0:1,e.last_flush=-2,_t(e),vt},ne=t=>{const e=re(t);var a;return e===vt&&((a=t.state).window_size=2*a.w_size,Ht(a.head),a.max_lazy_match=ae[a.level].max_lazy,a.good_match=ae[a.level].good_length,a.nice_match=ae[a.level].nice_length,a.max_chain_length=ae[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},oe=(t,e,a,i,s,r)=>{if(!t)return zt;let n=1;if(e===Et&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),s<1||s>9||a!==Bt||i<8||i>15||e<0||e>9||r<0||r>Ot||8===i&&1!==n)return Nt(t,zt);8===i&&(i=9);const o=new ie;return t.state=o,o.strm=t,o.status=Zt,o.wrap=n,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=s+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<s+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=e,o.strategy=r,o.method=a,ne(t)};var le={deflateInit:(t,e)=>oe(t,e,Bt,15,8,It),deflateInit2:oe,deflateReset:ne,deflateResetKeep:re,deflateSetHeader:(t,e)=>se(t)||2!==t.state.wrap?zt:(t.state.gzhead=e,vt),deflate:(t,e)=>{if(se(t)||e>kt||e<0)return t?Nt(t,zt):zt;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===Mt&&e!==yt)return Nt(t,0===t.avail_out?St:zt);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(Vt(t),0===t.avail_out)return a.last_flush=-1,vt}else if(0===t.avail_in&&Pt(e)<=Pt(i)&&e!==yt)return Nt(t,St);if(a.status===Mt&&0!==t.avail_in)return Nt(t,St);if(a.status===Zt&&0===a.wrap&&(a.status=Lt),a.status===Zt){let e=Bt+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=Ut||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,Yt(a,e),0!==a.strstart&&(Yt(a,t.adler>>>16),Yt(a,65535&t.adler)),t.adler=1,a.status=Lt,Vt(t),0!==a.pending)return a.last_flush=-1,vt}if(57===a.status)if(t.adler=0,Kt(a,31),Kt(a,139),Kt(a,8),a.gzhead)Kt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Kt(a,255&a.gzhead.time),Kt(a,a.gzhead.time>>8&255),Kt(a,a.gzhead.time>>16&255),Kt(a,a.gzhead.time>>24&255),Kt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Kt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Kt(a,255&a.gzhead.extra.length),Kt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=ht(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Kt(a,0),Kt(a,0),Kt(a,0),Kt(a,0),Kt(a,0),Kt(a,9===a.level?2:a.strategy>=Ut||a.level<2?4:0),Kt(a,3),a.status=Lt,Vt(t),0!==a.pending)return a.last_flush=-1,vt;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let s=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=ht(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=s,Vt(t),0!==a.pending)return a.last_flush=-1,vt;e=0,i-=s}let s=new Uint8Array(a.gzhead.extra);a.pending_buf.set(s.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=ht(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i)),Vt(t),0!==a.pending)return a.last_flush=-1,vt;i=0}e=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,Kt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i)),Vt(t),0!==a.pending)return a.last_flush=-1,vt;i=0}e=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,Kt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>i&&(t.adler=ht(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(Vt(t),0!==a.pending))return a.last_flush=-1,vt;Kt(a,255&t.adler),Kt(a,t.adler>>8&255),t.adler=0}if(a.status=Lt,Vt(t),0!==a.pending)return a.last_flush=-1,vt}if(0!==t.avail_in||0!==a.lookahead||e!==mt&&a.status!==Mt){let i=0===a.level?Qt(a,e):a.strategy===Ut?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Xt(t),0===t.lookahead)){if(e===mt)return 1;break}if(t.match_length=0,a=wt(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(Wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===At?((t,e)=>{let a,i,s,r;const n=t.window;for(;;){if(t.lookahead<=Tt){if(Xt(t),t.lookahead<=Tt&&e===mt)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(s=t.strstart-1,i=n[s],i===n[++s]&&i===n[++s]&&i===n[++s])){r=t.strstart+Tt;do{}while(i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&s<r);t.match_length=Tt-(r-s),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=wt(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=wt(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(Wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===yt?(Wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(Wt(t,!1),0===t.strm.avail_out)?1:2})(a,e):ae[a.level].func(a,e);if(3!==i&&4!==i||(a.status=Mt),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),vt;if(2===i&&(e===pt?gt(a):e!==kt&&(ct(a,0,0,!1),e===bt&&(Ht(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),Vt(t),0===t.avail_out))return a.last_flush=-1,vt}return e!==yt?vt:a.wrap<=0?xt:(2===a.wrap?(Kt(a,255&t.adler),Kt(a,t.adler>>8&255),Kt(a,t.adler>>16&255),Kt(a,t.adler>>24&255),Kt(a,255&t.total_in),Kt(a,t.total_in>>8&255),Kt(a,t.total_in>>16&255),Kt(a,t.total_in>>24&255)):(Yt(a,t.adler>>>16),Yt(a,65535&t.adler)),Vt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?vt:xt)},deflateEnd:t=>{if(se(t))return zt;const e=t.state.status;return t.state=null,e===Lt?Nt(t,Rt):vt},deflateSetDictionary:(t,e)=>{let a=e.length;if(se(t))return zt;const i=t.state,s=i.wrap;if(2===s||1===s&&i.status!==Zt||i.lookahead)return zt;if(1===s&&(t.adler=ot(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===s&&(Ht(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const r=t.avail_in,n=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Xt(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=jt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Xt(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=n,t.input=o,t.avail_in=r,i.wrap=s,vt},deflateInfo:"pako deflate (from Nodeca project)"};const he=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var de={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)he(a,e)&&(t[e]=a[e])}}return t},flattenChunks:t=>{let e=0;for(let a=0,i=t.length;a<i;a++)e+=t[a].length;const a=new Uint8Array(e);for(let e=0,i=0,s=t.length;e<s;e++){let s=t[e];a.set(s,i),i+=s.length}return a}};let fe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){fe=!1}const _e=new Uint8Array(256);for(let t=0;t<256;t++)_e[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;_e[254]=_e[254]=1;var ce={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,s,r,n=t.length,o=0;for(s=0;s<n;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),o+=a<128?1:a<2048?2:a<65536?3:4;for(e=new Uint8Array(o),r=0,s=0;r<o;s++)a=t.charCodeAt(s),55296==(64512&a)&&s+1<n&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),s++)),a<128?e[r++]=a:a<2048?(e[r++]=192|a>>>6,e[r++]=128|63&a):a<65536?(e[r++]=224|a>>>12,e[r++]=128|a>>>6&63,e[r++]=128|63&a):(e[r++]=240|a>>>18,e[r++]=128|a>>>12&63,e[r++]=128|a>>>6&63,e[r++]=128|63&a);return e},buf2string:(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,s;const r=new Array(2*a);for(s=0,i=0;i<a;){let e=t[i++];if(e<128){r[s++]=e;continue}let n=_e[e];if(n>4)r[s++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<a;)e=e<<6|63&t[i++],n--;n>1?r[s++]=65533:e<65536?r[s++]=e:(e-=65536,r[s++]=55296|e>>10&1023,r[s++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&fe)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a})(r,s)},utf8border:(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+_e[t[a]]>e?a:e}};var ue=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const we=Object.prototype.toString,{Z_NO_FLUSH:ge,Z_SYNC_FLUSH:me,Z_FULL_FLUSH:pe,Z_FINISH:be,Z_OK:ye,Z_STREAM_END:ke,Z_DEFAULT_COMPRESSION:ve,Z_DEFAULT_STRATEGY:xe,Z_DEFLATED:ze}=ft;function Re(t){this.options=de.assign({level:ve,method:ze,chunkSize:16384,windowBits:15,memLevel:8,strategy:xe},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ue,this.strm.avail_out=0;let a=le.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==ye)throw new Error(dt[a]);if(e.header&&le.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?ce.string2buf(e.dictionary):"[object ArrayBuffer]"===we.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=le.deflateSetDictionary(this.strm,t),a!==ye)throw new Error(dt[a]);this._dict_set=!0}}function Se(t,e){const a=new Re(e);if(a.push(t,!0),a.err)throw a.msg||dt[a.err];return a.result}Re.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let s,r;if(this.ended)return!1;for(r=e===~~e?e:!0===e?be:ge,"string"==typeof t?a.input=ce.string2buf(t):"[object ArrayBuffer]"===we.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(r===me||r===pe)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(s=le.deflate(a,r),s===ke)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),s=le.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===ye;if(0!==a.avail_out){if(r>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},Re.prototype.onData=function(t){this.chunks.push(t)},Re.prototype.onEnd=function(t){t===ye&&(this.result=de.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Ee={Deflate:Re,deflate:Se,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Se(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Se(t,e)},constants:ft};const De=16209;var Ue=function(t,e){let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z,R;const S=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),s=t.next_out,R=t.output,r=s-(e-t.avail_out),n=s+(t.avail_out-257),o=S.dmax,l=S.wsize,h=S.whave,d=S.wnext,f=S.window,_=S.hold,c=S.bits,u=S.lencode,w=S.distcode,g=(1<<S.lenbits)-1,m=(1<<S.distbits)-1;t:do{c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=u[_&g];e:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,0===b)R[s++]=65535&p;else{if(!(16&b)){if(0==(64&b)){p=u[(65535&p)+(_&(1<<b)-1)];continue e}if(32&b){S.mode=16191;break t}t.msg="invalid literal/length code",S.mode=De;break t}y=65535&p,b&=15,b&&(c<b&&(_+=z[a++]<<c,c+=8),y+=_&(1<<b)-1,_>>>=b,c-=b),c<15&&(_+=z[a++]<<c,c+=8,_+=z[a++]<<c,c+=8),p=w[_&m];a:for(;;){if(b=p>>>24,_>>>=b,c-=b,b=p>>>16&255,!(16&b)){if(0==(64&b)){p=w[(65535&p)+(_&(1<<b)-1)];continue a}t.msg="invalid distance code",S.mode=De;break t}if(k=65535&p,b&=15,c<b&&(_+=z[a++]<<c,c+=8,c<b&&(_+=z[a++]<<c,c+=8)),k+=_&(1<<b)-1,k>o){t.msg="invalid distance too far back",S.mode=De;break t}if(_>>>=b,c-=b,b=s-r,k>b){if(b=k-b,b>h&&S.sane){t.msg="invalid distance too far back",S.mode=De;break t}if(v=0,x=f,0===d){if(v+=l-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}else if(d<b){if(v+=l+d-b,b-=d,b<y){y-=b;do{R[s++]=f[v++]}while(--b);if(v=0,d<y){b=d,y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}}}else if(v+=d-b,b<y){y-=b;do{R[s++]=f[v++]}while(--b);v=s-k,x=R}for(;y>2;)R[s++]=x[v++],R[s++]=x[v++],R[s++]=x[v++],y-=3;y&&(R[s++]=x[v++],y>1&&(R[s++]=x[v++]))}else{v=s-k;do{R[s++]=R[v++],R[s++]=R[v++],R[s++]=R[v++],y-=3}while(y>2);y&&(R[s++]=R[v++],y>1&&(R[s++]=R[v++]))}break}}break}}while(a<i&&s<n);y=c>>3,a-=y,c-=y<<3,_&=(1<<c)-1,t.next_in=a,t.next_out=s,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=s<n?n-s+257:257-(s-n),S.hold=_,S.bits=c};const Ae=15,Oe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ie=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Fe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Be=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Te=(t,e,a,i,s,r,n,o)=>{const l=o.bits;let h,d,f,_,c,u,w=0,g=0,m=0,p=0,b=0,y=0,k=0,v=0,x=0,z=0,R=null;const S=new Uint16Array(16),E=new Uint16Array(16);let D,U,A,O=null;for(w=0;w<=Ae;w++)S[w]=0;for(g=0;g<i;g++)S[e[a+g]]++;for(b=l,p=Ae;p>=1&&0===S[p];p--);if(b>p&&(b=p),0===p)return s[r++]=20971520,s[r++]=20971520,o.bits=1,0;for(m=1;m<p&&0===S[m];m++);for(b<m&&(b=m),v=1,w=1;w<=Ae;w++)if(v<<=1,v-=S[w],v<0)return-1;if(v>0&&(0===t||1!==p))return-1;for(E[1]=0,w=1;w<Ae;w++)E[w+1]=E[w]+S[w];for(g=0;g<i;g++)0!==e[a+g]&&(n[E[e[a+g]]++]=g);if(0===t?(R=O=n,u=20):1===t?(R=Oe,O=Ie,u=257):(R=Fe,O=Be,u=0),z=0,g=0,w=m,c=r,y=b,k=0,f=-1,x=1<<b,_=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){D=w-k,n[g]+1<u?(U=0,A=n[g]):n[g]>=u?(U=O[n[g]-u],A=R[n[g]-u]):(U=96,A=0),h=1<<w-k,d=1<<y,m=d;do{d-=h,s[c+(z>>k)+d]=D<<24|U<<16|A|0}while(0!==d);for(h=1<<w-1;z&h;)h>>=1;if(0!==h?(z&=h-1,z+=h):z=0,g++,0==--S[w]){if(w===p)break;w=e[a+n[g]]}if(w>b&&(z&_)!==f){for(0===k&&(k=b),c+=m,y=w-k,v=1<<y;y+k<p&&(v-=S[y+k],!(v<=0));)y++,v<<=1;if(x+=1<<y,1===t&&x>852||2===t&&x>592)return 1;f=z&_,s[f]=b<<24|y<<16|c-r|0}}return 0!==z&&(s[c+z]=w-k<<24|64<<16|0),o.bits=b,0};const{Z_FINISH:Ce,Z_BLOCK:Ze,Z_TREES:Le,Z_OK:Me,Z_STREAM_END:Ne,Z_NEED_DICT:Pe,Z_STREAM_ERROR:He,Z_DATA_ERROR:$e,Z_MEM_ERROR:je,Z_BUF_ERROR:Ve,Z_DEFLATED:We}=ft,Ke=16180,Ye=16190,qe=16191,Ge=16192,Xe=16194,Qe=16199,Je=16200,ta=16206,ea=16209,aa=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function ia(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const sa=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<Ke||e.mode>16211?1:0},ra=t=>{if(sa(t))return He;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Ke,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Me},na=t=>{if(sa(t))return He;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,ra(t)},oa=(t,e)=>{let a;if(sa(t))return He;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?He:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,na(t))},la=(t,e)=>{if(!t)return He;const a=new ia;t.state=a,a.strm=t,a.window=null,a.mode=Ke;const i=oa(t,e);return i!==Me&&(t.state=null),i};let ha,da,fa=!0;const _a=t=>{if(fa){ha=new Int32Array(512),da=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Te(1,t.lens,0,288,ha,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Te(2,t.lens,0,32,da,0,t.work,{bits:5}),fa=!1}t.lencode=ha,t.lenbits=9,t.distcode=da,t.distbits=5},ca=(t,e,a,i)=>{let s;const r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(e.subarray(a-i,a-i+s),r.wnext),(i-=s)?(r.window.set(e.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var ua={inflateReset:na,inflateReset2:oa,inflateResetKeep:ra,inflateInit:t=>la(t,15),inflateInit2:la,inflate:(t,e)=>{let a,i,s,r,n,o,l,h,d,f,_,c,u,w,g,m,p,b,y,k,v,x,z=0;const R=new Uint8Array(4);let S,E;const D=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(sa(t)||!t.output||!t.input&&0!==t.avail_in)return He;a=t.state,a.mode===qe&&(a.mode=Ge),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,f=o,_=l,x=Me;t:for(;;)switch(a.mode){case Ke:if(0===a.wrap){a.mode=Ge;break}for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(2&a.wrap&&35615===h){0===a.wbits&&(a.wbits=15),a.check=0,R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0),h=0,d=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=ea;break}if((15&h)!==We){t.msg="unknown compression method",a.mode=ea;break}if(h>>>=4,d-=4,v=8+(15&h),0===a.wbits&&(a.wbits=v),v>15||v>a.wbits){t.msg="invalid window size",a.mode=ea;break}a.dmax=1<<a.wbits,a.flags=0,t.adler=a.check=1,a.mode=512&h?16189:qe,h=0,d=0;break;case 16181:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.flags=h,(255&a.flags)!==We){t.msg="unknown compression method",a.mode=ea;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=ea;break}a.head&&(a.head.text=h>>8&1),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.time=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,R[2]=h>>>16&255,R[3]=h>>>24&255,a.check=ht(a.check,R,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&4&a.wrap&&(R[0]=255&h,R[1]=h>>>8&255,a.check=ht(a.check,R,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(v=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+c),v)),512&a.flags&&4&a.wrap&&(a.check=ht(a.check,i,c,r)),o-=c,r+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.name+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=ht(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break t;c=0;do{v=i[r+c++],a.head&&v&&a.length<65536&&(a.head.comment+=String.fromCharCode(v))}while(v&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=ht(a.check,i,c,r)),o-=c,r+=c,v)break t}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=ea;break}h=0,d=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=qe;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}t.adler=a.check=aa(h),h=0,d=0,a.mode=Ye;case Ye:if(0===a.havedict)return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Pe;t.adler=a.check=1,a.mode=qe;case qe:if(e===Ze||e===Le)break t;case Ge:if(a.last){h>>>=7&d,d-=7&d,a.mode=ta;break}for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}switch(a.last=1&h,h>>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(_a(a),a.mode=Qe,e===Le){h>>>=2,d-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=ea}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=ea;break}if(a.length=65535&h,h=0,d=0,a.mode=Xe,e===Le)break t;case Xe:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;s.set(i.subarray(r,r+c),n),o-=c,r+=c,l-=c,n+=c,a.length-=c;break}a.mode=qe;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=ea;break}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.lens[D[a.have++]]=7&h,h>>>=3,d-=3}for(;a.have<19;)a.lens[D[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,S={bits:a.lenbits},x=Te(0,a.lens,0,19,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid code lengths set",a.mode=ea;break}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(p<16)h>>>=g,d-=g,a.lens[a.have++]=p;else{if(16===p){for(E=g+2;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h>>>=g,d-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=ea;break}v=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===p){for(E=g+3;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=3+(7&h),h>>>=3,d-=3}else{for(E=g+7;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=g,d-=g,v=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=ea;break}for(;c--;)a.lens[a.have++]=v}}if(a.mode===ea)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=ea;break}if(a.lenbits=9,S={bits:a.lenbits},x=Te(1,a.lens,0,a.nlen,a.lencode,0,a.work,S),a.lenbits=S.bits,x){t.msg="invalid literal/lengths set",a.mode=ea;break}if(a.distbits=6,a.distcode=a.distdyn,S={bits:a.distbits},x=Te(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,S),a.distbits=S.bits,x){t.msg="invalid distances set",a.mode=ea;break}if(a.mode=Qe,e===Le)break t;case Qe:a.mode=Je;case Je:if(o>=6&&l>=258){t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,Ue(t,_),n=t.next_out,s=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===qe&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<<a.lenbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(m&&0==(240&m)){for(b=g,y=m,k=p;z=a.lencode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,a.length=p,0===m){a.mode=16205;break}if(32&m){a.back=-1,a.mode=qe;break}if(64&m){t.msg="invalid literal/length code",a.mode=ea;break}a.extra=15&m,a.mode=16201;case 16201:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<<a.distbits)-1],g=z>>>24,m=z>>>16&255,p=65535&z,!(g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(0==(240&m)){for(b=g,y=m,k=p;z=a.distcode[k+((h&(1<<b+y)-1)>>b)],g=z>>>24,m=z>>>16&255,p=65535&z,!(b+g<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=b,d-=b,a.back+=b}if(h>>>=g,d-=g,a.back+=g,64&m){t.msg="invalid distance code",a.mode=ea;break}a.offset=p,a.extra=15&m,a.mode=16203;case 16203:if(a.extra){for(E=a.extra;d<E;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=ea;break}a.mode=16204;case 16204:if(0===l)break t;if(c=_-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=ea;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=s,u=n-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{s[n++]=w[u++]}while(--c);0===a.length&&(a.mode=Je);break;case 16205:if(0===l)break t;s[n++]=a.length,l--,a.mode=Je;break;case ta:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[r++]<<d,d+=8}if(_-=l,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?ht(a.check,s,_,n-_):ot(a.check,s,_,n-_)),_=l,4&a.wrap&&(a.flags?h:aa(h))!==a.check){t.msg="incorrect data check",a.mode=ea;break}h=0,d=0}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(4&a.wrap&&h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=ea;break}h=0,d=0}a.mode=16208;case 16208:x=Ne;break t;case ea:x=$e;break t;case 16210:return je;default:return He}return t.next_out=n,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||_!==t.avail_out&&a.mode<ea&&(a.mode<ta||e!==Ce))&&ca(t,t.output,t.next_out,_-t.avail_out),f-=t.avail_in,_-=t.avail_out,t.total_in+=f,t.total_out+=_,a.total+=_,4&a.wrap&&_&&(t.adler=a.check=a.flags?ht(a.check,s,_,t.next_out-_):ot(a.check,s,_,t.next_out-_)),t.data_type=a.bits+(a.last?64:0)+(a.mode===qe?128:0)+(a.mode===Qe||a.mode===Xe?256:0),(0===f&&0===_||e===Ce)&&x===Me&&(x=Ve),x},inflateEnd:t=>{if(sa(t))return He;let e=t.state;return e.window&&(e.window=null),t.state=null,Me},inflateGetHeader:(t,e)=>{if(sa(t))return He;const a=t.state;return 0==(2&a.wrap)?He:(a.head=e,e.done=!1,Me)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,s,r;return sa(t)?He:(i=t.state,0!==i.wrap&&i.mode!==Ye?He:i.mode===Ye&&(s=1,s=ot(s,e,a,0),s!==i.check)?$e:(r=ca(t,e,a,a),r?(i.mode=16210,je):(i.havedict=1,Me)))},inflateInfo:"pako inflate (from Nodeca project)"};var wa=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ga=Object.prototype.toString,{Z_NO_FLUSH:ma,Z_FINISH:pa,Z_OK:ba,Z_STREAM_END:ya,Z_NEED_DICT:ka,Z_STREAM_ERROR:va,Z_DATA_ERROR:xa,Z_MEM_ERROR:za}=ft;function Ra(t){this.options=de.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ue,this.strm.avail_out=0;let a=ua.inflateInit2(this.strm,e.windowBits);if(a!==ba)throw new Error(dt[a]);if(this.header=new wa,ua.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=ce.string2buf(e.dictionary):"[object ArrayBuffer]"===ga.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=ua.inflateSetDictionary(this.strm,e.dictionary),a!==ba)))throw new Error(dt[a])}Ra.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let r,n,o;if(this.ended)return!1;for(n=e===~~e?e:!0===e?pa:ma,"[object ArrayBuffer]"===ga.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),r=ua.inflate(a,n),r===ka&&s&&(r=ua.inflateSetDictionary(a,s),r===ba?r=ua.inflate(a,n):r===xa&&(r=ka));a.avail_in>0&&r===ya&&a.state.wrap>0&&0!==t[a.next_in];)ua.inflateReset(a),r=ua.inflate(a,n);switch(r){case va:case xa:case ka:case za:return this.onEnd(r),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||r===ya))if("string"===this.options.to){let t=ce.utf8border(a.output,a.next_out),e=a.next_out-t,s=ce.buf2string(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(s)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==ba||0!==o){if(r===ya)return r=ua.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Ra.prototype.onData=function(t){this.chunks.push(t)},Ra.prototype.onEnd=function(t){t===ba&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=de.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const{Deflate:Sa,deflate:Ea,deflateRaw:Da,gzip:Ua}=Ee;var Aa=Ea;const Oa={b:{u:DataView.prototype.getInt8,p:DataView.prototype.setInt8,bytes:1},B:{u:DataView.prototype.getUint8,p:DataView.prototype.setUint8,bytes:1},h:{u:DataView.prototype.getInt16,p:DataView.prototype.setInt16,bytes:2},H:{u:DataView.prototype.getUint16,p:DataView.prototype.setUint16,bytes:2},i:{u:DataView.prototype.getInt32,p:DataView.prototype.setInt32,bytes:4},I:{u:DataView.prototype.getUint32,p:DataView.prototype.setUint32,bytes:4},q:{u:DataView.prototype.getInt64,p:DataView.prototype.setInt64,bytes:8},Q:{u:DataView.prototype.getUint64,p:DataView.prototype.setUint64,bytes:8}},Ia=(t,...e)=>{let a=0;if(t.replace(/[<>]/,"").length!=e.length)throw"Pack format to Argument count mismatch";let i=[],s=!0;for(let i=0;i<t.length;i++)"<"==t[i]?s=!0:">"==t[i]?s=!1:(r(t[i],e[a]),a++);function r(t,e){if(!(t in Oa))throw"Unhandled character '"+t+"' in pack format";let a=Oa[t].bytes,r=new DataView(new ArrayBuffer(a));Oa[t].p.bind(r)(0,e,s);for(let t=0;t<a;t++)i.push(r.getUint8(t))}return i},Fa=(t,e)=>{let a=0,i=[],s=!0;for(let e of t)"<"==e?s=!0:">"==e?s=!1:r(e);function r(t){if(!(t in Oa))throw"Unhandled character '"+t+"' in unpack format";let r=Oa[t].bytes,n=new DataView(new ArrayBuffer(r));for(let t=0;t<r;t++)n.setUint8(t,255&e[a+t]);let o=Oa[t].u.bind(n);i.push(o(0,s)),a+=r}return i};class Ba extends EventTarget{constructor(t,e,a){super(),this.port=t,this.logger=e,this._parent=a,this.chipName=null,this._efuses=new Array(4).fill(0),this._flashsize=4194304,this.debug=!1,this.IS_STUB=!1,this.connected=!0,this.flashSize=null,this.state_DTR=!1}get _inputBuffer(){return this._parent?this._parent._inputBuffer:this.__inputBuffer}async initialize(){await this.hardReset(!0),this._parent||(this.__inputBuffer=[],this.readLoop()),await this.sync();let t=await this.readRegister(1073745920),e=g[t>>>0];if(void 0===e)throw new Error(`Unknown Chip: Hex: ${a(t>>>0,8).toLowerCase()} Number: ${t}`);this.chipName=e.name,this.chipFamily=e.family;let i=y(this.getChipFamily()).macFuse;for(let t=0;t<4;t++)this._efuses[t]=await this.readRegister(i+4*t);this.logger.log(`Chip type ${this.chipName}`)}async readLoop(){this.debug&&this.logger.debug("Starting read loop"),this._reader=this.port.readable.getReader();try{for(;;){const{value:t,done:e}=await this._reader.read();if(e){this._reader.releaseLock();break}t&&0!==t.length&&this._inputBuffer.push(...Array.from(t))}}catch(t){console.error("Read loop got disconnected")}this.connected=!1,this.dispatchEvent(new Event("disconnect")),this.logger.debug("Finished read loop")}sleep(t=100){return new Promise((e=>setTimeout(e,t)))}async setRTS(t){await this.port.setSignals({requestToSend:t}),await this.setDTR(this.state_DTR)}async setDTR(t){this.state_DTR=t,await this.port.setSignals({dataTerminalReady:t})}async hardReset(t=!1){this.logger.log("Try hard reset."),t?4097===this.port.getInfo().usbProductId?(await this.setDTR(!1),await this.setRTS(!1),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(100),await this.setRTS(!0),await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!1),await this.setRTS(!1)):(await this.setDTR(!1),await this.setRTS(!0),await this.sleep(100),await this.setDTR(!0),await this.setRTS(!1),await this.sleep(50),await this.setDTR(!1)):(await this.setRTS(!0),await this.sleep(100),await this.setRTS(!1)),await new Promise((t=>setTimeout(t,1e3)))}macAddr(){let t,e=new Array(6).fill(0),a=this._efuses[0],i=this._efuses[1],s=this._efuses[2],r=this._efuses[3];if(this.chipFamily==o){if(0!=r)t=[r>>16&255,r>>8&255,255&r];else if(0==(i>>16&255))t=[24,254,52];else{if(1!=(i>>16&255))throw new Error("Couldnt determine OUI");t=[172,208,116]}e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=i>>8&255,e[4]=255&i,e[5]=a>>24&255}else if(this.chipFamily==l)e[0]=s>>8&255,e[1]=255&s,e[2]=i>>24&255,e[3]=i>>16&255,e[4]=i>>8&255,e[5]=255&i;else{if(this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u&&this.chipFamily!=w)throw new Error("Unknown chip family");e[0]=i>>8&255,e[1]=255&i,e[2]=a>>24&255,e[3]=a>>16&255,e[4]=a>>8&255,e[5]=255&a}return e}async readRegister(t){this.debug&&this.logger.debug("Reading from Register "+a(t,8));let e=Ia("<I",t);await this.sendCommand(10,e);let[i,s]=await this.getResponse(10);return i}async checkCommand(t,e,i=0,s=3e3){s=Math.min(s,12e5),await this.sendCommand(t,e,i);let[r,n]=await this.getResponse(t,s);if(null===n)throw new Error("Didn't get enough status bytes");let g=0;if(this.IS_STUB||this.chipFamily==o?g=2:[l,h,d,f,_,c,u,w].includes(this.chipFamily)?g=4:[2,4].includes(n.length)&&(g=n.length),n.length<g)throw new Error("Didn't get enough status bytes");let m=n.slice(-g,n.length);if(n=n.slice(0,-g),this.debug&&(this.logger.debug("status",m),this.logger.debug("value",r),this.logger.debug("data",n)),1==m[0])throw 5==m[1]?new Error("Invalid (unsupported) command "+a(t)):new Error("Command failure error code "+a(m[1]));return[r,n]}async sendCommand(t,e,a=0){let i=(t=>{let e=[192];for(let a of t)219==a?e=e.concat([219,221]):192==a?e=e.concat([219,220]):e.push(a);return e.push(192),e})([...Ia("<BBHI",0,t,e.length,a),...e]);this.debug&&this.logger.debug(`Writing ${i.length} byte${1==i.length?"":"s"}:`,i),await this.writeToStream(i)}async readPacket(t){let s=null,r=!1,n=[];for(;;){let o=Date.now();for(n=[];Date.now()-o<t;){if(this._inputBuffer.length>0){n.push(this._inputBuffer.shift());break}await i(10)}if(0==n.length){throw new k("Timed out waiting for packet "+(null===s?"header":"content"))}this.debug&&this.logger.debug("Read "+n.length+" bytes: "+e(n));for(let t of n)if(null===s){if(192!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new k("Invalid head of packet ("+a(t)+")");s=[]}else if(r)if(r=!1,220==t)s.push(192);else{if(221!=t)throw this.debug&&(this.logger.debug("Read invalid data: "+e(n)),this.logger.debug("Remaining data in serial buffer: "+e(this._inputBuffer))),new k("Invalid SLIP escape (0xdb, "+a(t)+")");s.push(219)}else if(219==t)r=!0;else{if(192==t)return this.debug&&this.logger.debug("Received full packet: "+e(s)),s;s.push(t)}}throw new k("Invalid state")}async getResponse(t,e=3e3){for(let i=0;i<100;i++){const i=await this.readPacket(e);if(i.length<8)continue;const[s,r,n,o]=Fa("<BBHI",i.slice(0,8));if(1!=s)continue;const l=i.slice(8);if(null==t||r==t)return[o,l];if(0!=l[0]&&5==l[1])throw this._inputBuffer.length=0,new Error(`Invalid (unsupported) command ${a(t)}`)}throw"Response doesn't match request"}checksum(t,e=239){for(let a of t)e^=a;return e}async setBaudrate(t){if(this.chipFamily==o)throw new Error("Changing baud rate is not supported on the ESP8266");this.logger.log("Attempting to change baud rate to "+t+"...");try{let e=Ia("<II",t,this.IS_STUB?r:0);await this.checkCommand(15,e)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: No response from set baud rate command.`)}this._parent?await this._parent.reconfigurePort(t):await this.reconfigurePort(t)}async reconfigurePort(t){var e;try{await(null===(e=this._reader)||void 0===e?void 0:e.cancel()),await this.port.close(),await this.port.open({baudRate:t}),this.readLoop(),this.logger.log(`Changed baud rate to ${t}`)}catch(e){throw console.error(e),new Error(`Unable to change the baud rate to ${t}: ${e}`)}}async sync(){for(let t=0;t<5;t++){if(this._inputBuffer.length=0,await this._sync())return await i(100),!0;await i(100)}throw new Error("Couldn't sync to ESP. Try resetting.")}async _sync(){await this.sendCommand(8,n);for(let t=0;t<8;t++)try{let[t,e]=await this.getResponse(8,100);if(e.length>1&&0==e[0]&&0==e[1])return!0}catch(t){}return!1}getFlashWriteSize(){return this.IS_STUB?16384:1024}async flashData(t,e,i=0,s=!1){if(t.byteLength>=8){var r=Array.from(new Uint8Array(t,0,4));let e=r[0],i=r[2],s=r[3];this.logger.log(`Image header, Magic=${a(e)}, FlashMode=${a(i)}, FlashSizeFreq=${a(s)}`)}let n,o=t.byteLength,l=0,h=m;s?(n=Aa(new Uint8Array(t),{level:9}).buffer,l=n.byteLength,this.logger.log(`Writing data with filesize: ${o}. Compressed Size: ${l}`),h=await this.flashDeflBegin(o,l,i)):(this.logger.log(`Writing data with filesize: ${o}`),n=t,await this.flashBegin(o,i));let d=[],f=0,_=0,c=0,u=Date.now(),w=this.getFlashWriteSize(),g=s?l:o;for(;g-c>0;)this.debug&&this.logger.log(`Writing at ${a(i+f*w,8)} `),g-c>=w?d=Array.from(new Uint8Array(n,c,w)):(d=Array.from(new Uint8Array(n,c,g-c)),s||(d=d.concat(new Array(w-d.length).fill(255)))),s?await this.flashDeflBlock(d,f,h):await this.flashBlock(d,f),f+=1,_+=s?Math.round(d.length*o/l):d.length,c+=w,e(Math.min(_,o),o);this.logger.log("Took "+(Date.now()-u)+"ms to write "+g+" bytes"),this.IS_STUB&&(await this.flashBegin(0,0),s?await this.flashDeflFinish():await this.flashFinish())}async flashBlock(t,e,a=3e3){await this.checkCommand(3,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashDeflBlock(t,e,a=3e3){await this.checkCommand(17,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t),a)}async flashBegin(t=0,e=0,i=!1){let s,r,n=this.getFlashWriteSize();!this.IS_STUB&&[l,h,d,f,_,c,u,w].includes(this.chipFamily)&&await this.checkCommand(13,new Array(8).fill(0));let g,p=Math.floor((t+n-1)/n);s=this.chipFamily==o?this.getEraseSize(e,t):t,g=this.IS_STUB?m:b(3e4,t);let y=Date.now();return r=Ia("<IIII",s,p,n,e),this.chipFamily!=l&&this.chipFamily!=h&&this.chipFamily!=d&&this.chipFamily!=f&&this.chipFamily!=_&&this.chipFamily!=c&&this.chipFamily!=u&&this.chipFamily!=w||(r=r.concat(Ia("<I",i?1:0))),this.logger.log("Erase size "+s+", blocks "+p+", block size "+a(n,4)+", offset "+a(e,4)+", encrypted "+(i?"yes":"no")),await this.checkCommand(2,r,0,g),0==t||this.IS_STUB||this.logger.log("Took "+(Date.now()-y)+"ms to erase "+p+" bytes"),p}async flashDeflBegin(t=0,e=0,a=0,i=!1){let s,r=this.getFlashWriteSize(),n=Math.floor((e+r-1)/r),o=Math.floor((t+r-1)/r),l=0,h=0;return this.IS_STUB?(l=t,h=b(3e4,l)):(l=o*r,h=m),s=Ia("<IIII",l,n,r,a),await this.checkCommand(16,s,0,h),h}async flashFinish(){let t=Ia("<I",1);await this.checkCommand(4,t)}async flashDeflFinish(){let t=Ia("<I",1);await this.checkCommand(18,t)}getBootloaderOffset(){return y(this.getChipFamily()).flashOffs}async flashId(){return await this.runSpiFlashCommand(159,[],24)}getChipFamily(){return this._parent?this._parent.chipFamily:this.chipFamily}async writeRegister(t,e,a=4294967295,i=0,s=0){let r=Ia("<IIII",t,e,a,i);s>0&&r.concat(Ia("<IIII",y(this.getChipFamily()).uartDateReg,0,0,s)),await this.checkCommand(9,r)}async setDataLengths(t,e,a){if(-1!=t.mosiDlenOffs){let i=t.regBase+t.mosiDlenOffs,s=t.regBase+t.misoDlenOffs;e>0&&await this.writeRegister(i,e-1),a>0&&await this.writeRegister(s,a-1)}else{let i=t.regBase+t.usr1Offs,s=(0==a?0:a-1)<<8|(0==e?0:e-1)<<17;await this.writeRegister(i,s)}}async waitDone(t,e){for(let a=0;a<10;a++){if(0==(await this.readRegister(t)&e))return}throw Error("SPI command did not complete in time")}async runSpiFlashCommand(t,e,i=0){let s=y(this.getChipFamily()),r=s.regBase,n=r,o=r+s.usrOffs,l=r+s.usr2Offs,h=r+s.w0Offs,d=1<<18;if(i>32)throw new Error("Reading more than 32 bits back from a SPI flash operation is unsupported");if(e.length>64)throw new Error("Writing more than 64 bytes of data with one SPI command is unsupported");let f=8*e.length,_=await this.readRegister(o),c=await this.readRegister(l),u=1<<31;if(i>0&&(u|=268435456),f>0&&(u|=134217728),await this.setDataLengths(s,f,i),await this.writeRegister(o,u),await this.writeRegister(l,7<<28|t),0==f)await this.writeRegister(h,0);else{e.concat(new Array(e.length%4).fill(0));let t=Fa("I".repeat(Math.floor(e.length/4)),e),i=h;this.logger.debug(`Words Length: ${t.length}`);for(const e of t)this.logger.debug(`Writing word ${a(e)} to register offset ${a(i)}`),await this.writeRegister(i,e),i+=4}await this.writeRegister(n,d),await this.waitDone(n,d);let w=await this.readRegister(h);return await this.writeRegister(o,_),await this.writeRegister(l,c),w}async detectFlashSize(){this.logger.log("Detecting Flash Size");let t=await this.flashId(),e=255&t,i=t>>16&255;this.logger.log(`FlashId: ${a(t)}`),this.logger.log(`Flash Manufacturer: ${e.toString(16)}`),this.logger.log(`Flash Device: ${(t>>8&255).toString(16)}${i.toString(16)}`),this.flashSize=s[i],this.logger.log(`Auto-detected Flash size: ${this.flashSize}`)}getEraseSize(t,e){let a=4096,i=Math.floor((e+a-1)/a),s=16-Math.floor(t/a)%16;return i<s&&(s=i),i<2*s?Math.floor((i+1)/2*a):(i-s)*a}async memBegin(t,e,a,i){return await this.checkCommand(5,Ia("<IIII",t,e,a,i))}async memBlock(t,e){return await this.checkCommand(7,Ia("<IIII",t.length,e,0,0).concat(t),this.checksum(t))}async memFinish(t=0){let e=this.IS_STUB?m:500,a=Ia("<II",0==t?1:0,t);return await this.checkCommand(6,a,0,e)}async runStub(){const t=await v(this.chipFamily);let e,a=2048;this.logger.log("Uploading stub...");for(let e of["text","data"])if(Object.keys(t).includes(e)){let i=t[e+"_start"],s=t[e].length,r=Math.floor((s+a-1)/a);await this.memBegin(s,r,a,i);for(let i of Array(r).keys()){let r=i*a,n=r+a;n>s&&(n=s),await this.memBlock(t[e].slice(r,n),i)}}this.logger.log("Running stub..."),await this.memFinish(t.entry);const i=await this.readPacket(500);if(e=String.fromCharCode(...i),"OHAI"!=e)throw new Error("Failed to start stub. Unexpected response: "+e);this.logger.log("Stub is now running...");const s=new Ta(this.port,this.logger,this);return await s.detectFlashSize(),s}async writeToStream(t){const e=this.port.writable.getWriter();await e.write(new Uint8Array(t));try{e.releaseLock()}catch(t){console.error("Ignoring release lock error",t)}}async disconnect(){this._parent?await this._parent.disconnect():(await this.port.writable.getWriter().close(),await new Promise((t=>{this._reader||t(void 0),this.addEventListener("disconnect",t,{once:!0}),this._reader.cancel()})),this.connected=!1)}}class Ta extends Ba{constructor(){super(...arguments),this.IS_STUB=!0}async memBegin(t,e,i,s){let r=await v(this.chipFamily),n=s,o=s+t;console.log(n,o),console.log(r.data_start,r.data.length,r.text_start,r.text.length);for(let[t,e]of[[r.data_start,r.data_start+r.data.length],[r.text_start,r.text_start+r.text.length]])if(n<e&&o>t)throw new Error("Software loader is resident at "+a(t,8)+"-"+a(e,8)+". Can't load binary at overlapping address range "+a(n,8)+"-"+a(o,8)+". Try changing the binary loading address.")}async eraseFlash(){await this.checkCommand(208,[],0,p)}}const Ca=async t=>{const e=await navigator.serial.requestPort();return t.log("Connecting..."),await e.open({baudRate:r}),t.log("Connected successfully."),new Ba(e,t)};export{l as CHIP_FAMILY_ESP32,f as CHIP_FAMILY_ESP32C2,_ as CHIP_FAMILY_ESP32C3,c as CHIP_FAMILY_ESP32C6,u as CHIP_FAMILY_ESP32H2,w as CHIP_FAMILY_ESP32P4,h as CHIP_FAMILY_ESP32S2,d as CHIP_FAMILY_ESP32S3,o as CHIP_FAMILY_ESP8266,Ba as ESPLoader,Ca as connect};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tasmota-webserial-esptool",
3
- "version": "6.1.3",
3
+ "version": "6.2.0",
4
4
  "description": "Flash ESP devices using WebSerial",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -23,14 +23,14 @@
23
23
  "@rollup/plugin-typescript": "^11.1.6",
24
24
  "@types/pako": "^2.0.3",
25
25
  "@types/w3c-web-serial": "^1.0.6",
26
- "prettier": "^3.2.4",
26
+ "prettier": "^3.3.2",
27
27
  "rollup": "^4.9.6",
28
28
  "serve": "^14.2.1",
29
- "typescript": "^5.3.3"
29
+ "typescript": "^5.5.3"
30
30
  },
31
31
  "dependencies": {
32
- "@types/node": "^20.11.10",
32
+ "@types/node": "^20.14.10",
33
33
  "pako": "^2.1.0",
34
- "tslib": "^2.6.2"
34
+ "tslib": "^2.6.3"
35
35
  }
36
36
  }
package/src/const.ts CHANGED
@@ -150,6 +150,18 @@ export const ESP32H2_SPI_W0_OFFS = 0x58;
150
150
  export const ESP32H2_UART_DATE_REG_ADDR = 0x6000007c;
151
151
  export const ESP32H2_BOOTLOADER_FLASH_OFFSET = 0x0;
152
152
 
153
+ export const ESP32P4_SPI_REG_BASE = 0x5008d000;
154
+ export const ESP32P4_BASEFUSEADDR = 0x5012d000;
155
+ export const ESP32P4_MACFUSEADDR = 0x5012d000 + 0x044;
156
+ export const ESP32P4_SPI_USR_OFFS = 0x18;
157
+ export const ESP32P4_SPI_USR1_OFFS = 0x1c;
158
+ export const ESP32P4_SPI_USR2_OFFS = 0x20;
159
+ export const ESP32P4_SPI_MOSI_DLEN_OFFS = 0x24;
160
+ export const ESP32P4_SPI_MISO_DLEN_OFFS = 0x28;
161
+ export const ESP32P4_SPI_W0_OFFS = 0x58;
162
+ export const ESP32P4_UART_DATE_REG_ADDR = 0x500ca000 + 0x8c;
163
+ export const ESP32P4_BOOTLOADER_FLASH_OFFSET = 0x2000;
164
+
153
165
  export interface SpiFlashAddresses {
154
166
  regBase: number;
155
167
  baseFuse: number;
@@ -177,6 +189,7 @@ export const CHIP_FAMILY_ESP32C2 = 0x32c2;
177
189
  export const CHIP_FAMILY_ESP32C3 = 0x32c3;
178
190
  export const CHIP_FAMILY_ESP32C6 = 0x32c6;
179
191
  export const CHIP_FAMILY_ESP32H2 = 0x3272;
192
+ export const CHIP_FAMILY_ESP32P4 = 0x3280;
180
193
  export type ChipFamily =
181
194
  | typeof CHIP_FAMILY_ESP8266
182
195
  | typeof CHIP_FAMILY_ESP32
@@ -185,7 +198,8 @@ export type ChipFamily =
185
198
  | typeof CHIP_FAMILY_ESP32C2
186
199
  | typeof CHIP_FAMILY_ESP32C3
187
200
  | typeof CHIP_FAMILY_ESP32C6
188
- | typeof CHIP_FAMILY_ESP32H2;
201
+ | typeof CHIP_FAMILY_ESP32H2
202
+ | typeof CHIP_FAMILY_ESP32P4;
189
203
 
190
204
  interface ChipInfo {
191
205
  [magicValue: number]: {
@@ -207,6 +221,8 @@ export const CHIP_DETECT_MAGIC_VALUES: ChipInfo = {
207
221
  0x4361606f: { name: "ESP32-C3", family: CHIP_FAMILY_ESP32C3 },
208
222
  0xd7b73e80: { name: "ESP32-H2", family: CHIP_FAMILY_ESP32H2 },
209
223
  0x2ce0806f: { name: "ESP32-C6", family: CHIP_FAMILY_ESP32C6 },
224
+ 0x0addbad0: { name: "ESP32-P4", family: CHIP_FAMILY_ESP32P4 },
225
+ 0x0: { name: "ESP32-P4", family: CHIP_FAMILY_ESP32P4 },
210
226
  };
211
227
 
212
228
  // Commands supported by ESP8266 ROM bootloader
@@ -373,6 +389,20 @@ export const getSpiFlashAddresses = (
373
389
  uartDateReg: ESP32H2_UART_DATE_REG_ADDR,
374
390
  flashOffs: ESP32H2_BOOTLOADER_FLASH_OFFSET,
375
391
  };
392
+ case CHIP_FAMILY_ESP32P4:
393
+ return {
394
+ regBase: ESP32P4_SPI_REG_BASE,
395
+ baseFuse: ESP32P4_BASEFUSEADDR,
396
+ macFuse: ESP32P4_MACFUSEADDR,
397
+ usrOffs: ESP32P4_SPI_USR_OFFS,
398
+ usr1Offs: ESP32P4_SPI_USR1_OFFS,
399
+ usr2Offs: ESP32P4_SPI_USR2_OFFS,
400
+ mosiDlenOffs: ESP32P4_SPI_MOSI_DLEN_OFFS,
401
+ misoDlenOffs: ESP32P4_SPI_MISO_DLEN_OFFS,
402
+ w0Offs: ESP32P4_SPI_W0_OFFS,
403
+ uartDateReg: ESP32P4_UART_DATE_REG_ADDR,
404
+ flashOffs: ESP32P4_BOOTLOADER_FLASH_OFFSET,
405
+ };
376
406
  default:
377
407
  return {
378
408
  regBase: -1,
package/src/esp_loader.ts CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  CHIP_FAMILY_ESP32C3,
7
7
  CHIP_FAMILY_ESP32C6,
8
8
  CHIP_FAMILY_ESP32H2,
9
+ CHIP_FAMILY_ESP32P4,
9
10
  CHIP_FAMILY_ESP8266,
10
11
  MAX_TIMEOUT,
11
12
  Logger,
@@ -248,7 +249,8 @@ export class ESPLoader extends EventTarget {
248
249
  this.chipFamily == CHIP_FAMILY_ESP32C2 ||
249
250
  this.chipFamily == CHIP_FAMILY_ESP32C3 ||
250
251
  this.chipFamily == CHIP_FAMILY_ESP32C6 ||
251
- this.chipFamily == CHIP_FAMILY_ESP32H2
252
+ this.chipFamily == CHIP_FAMILY_ESP32H2 ||
253
+ this.chipFamily == CHIP_FAMILY_ESP32P4
252
254
  ) {
253
255
  macAddr[0] = (mac1 >> 8) & 0xff;
254
256
  macAddr[1] = mac1 & 0xff;
@@ -305,6 +307,7 @@ export class ESPLoader extends EventTarget {
305
307
  CHIP_FAMILY_ESP32C3,
306
308
  CHIP_FAMILY_ESP32C6,
307
309
  CHIP_FAMILY_ESP32H2,
310
+ CHIP_FAMILY_ESP32P4,
308
311
  ].includes(this.chipFamily)
309
312
  ) {
310
313
  statusLen = 4;
@@ -739,6 +742,7 @@ export class ESPLoader extends EventTarget {
739
742
  CHIP_FAMILY_ESP32C3,
740
743
  CHIP_FAMILY_ESP32C6,
741
744
  CHIP_FAMILY_ESP32H2,
745
+ CHIP_FAMILY_ESP32P4,
742
746
  ].includes(this.chipFamily)
743
747
  ) {
744
748
  await this.checkCommand(ESP_SPI_ATTACH, new Array(8).fill(0));
@@ -766,7 +770,8 @@ export class ESPLoader extends EventTarget {
766
770
  this.chipFamily == CHIP_FAMILY_ESP32C2 ||
767
771
  this.chipFamily == CHIP_FAMILY_ESP32C3 ||
768
772
  this.chipFamily == CHIP_FAMILY_ESP32C6 ||
769
- this.chipFamily == CHIP_FAMILY_ESP32H2
773
+ this.chipFamily == CHIP_FAMILY_ESP32H2 ||
774
+ this.chipFamily == CHIP_FAMILY_ESP32P4
770
775
  ) {
771
776
  buffer = buffer.concat(pack("<I", encrypted ? 1 : 0));
772
777
  }
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ export {
13
13
  CHIP_FAMILY_ESP32C3,
14
14
  CHIP_FAMILY_ESP32C6,
15
15
  CHIP_FAMILY_ESP32H2,
16
+ CHIP_FAMILY_ESP32P4,
16
17
  } from "./const";
17
18
 
18
19
  export const connect = async (logger: Logger) => {
@@ -0,0 +1,8 @@
1
+ {
2
+ "entry": 1341195918,
3
+ "text": "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",
4
+ "text_start": 1341194240,
5
+ "data": "EAD1TwYK8U9WCvFPrgrxT4QL8U/wC/FPngvxT9QI8U9AC/FPgAvxT8IK8U+ECPFP9grxT4QI8U/gCfFPJgrxT1YK8U+uCvFP8gnxTzgJ8U9oCfFP7gnxT0AO8U9WCvFPCA3xTwAO8U/EB/FPJA7xT8QH8U/EB/FPxAfxT8QH8U/EB/FPxAfxT8QH8U/EB/FPpAzxT8QH8U8mDfFPAA7xTw==",
6
+ "data_start": 1341533100,
7
+ "bss_start": 1341456384
8
+ }
@@ -7,7 +7,8 @@ import {
7
7
  CHIP_FAMILY_ESP32C2,
8
8
  CHIP_FAMILY_ESP32C3,
9
9
  CHIP_FAMILY_ESP32C6,
10
- CHIP_FAMILY_ESP32H2
10
+ CHIP_FAMILY_ESP32H2,
11
+ CHIP_FAMILY_ESP32P4
11
12
  } from "../const";
12
13
  import { toByteArray } from "../util";
13
14
 
@@ -46,6 +47,8 @@ export const getStubCode = async (chipFamily: ChipFamily): Promise<Stub> => {
46
47
  stubcode = await import("./esp32c6.json");
47
48
  } else if (chipFamily == CHIP_FAMILY_ESP32H2) {
48
49
  stubcode = await import("./esp32h2.json");
50
+ } else if (chipFamily == CHIP_FAMILY_ESP32P4) {
51
+ stubcode = await import("./esp32p4.json");
49
52
  }
50
53
 
51
54
  // Base64 decode the text and data