smol-string 0.1.0-beta → 0.2.0-beta

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.
package/dist/common.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- export declare function copyToWasmBuffer(str: string, exports: {
2
- allocUint8: (size: number) => number;
3
- memory: any;
4
- }): {
5
- ptr: number;
6
- length: number;
7
- };
8
- export declare function Uint16ArraytoString(buf: Uint16Array): string;
9
- export declare function extractFooter(memory: WebAssembly.Memory, ptrToFooter: number): {
10
- start: number;
11
- end: number;
12
- capacity: number;
13
- };
1
+ export declare function copyToWasmBuffer(str: string, exports: {
2
+ allocUint8: (size: number) => number;
3
+ memory: any;
4
+ }): {
5
+ ptr: number;
6
+ length: number;
7
+ };
8
+ export declare function Uint16ArraytoString(buf: Uint16Array): string;
9
+ export declare function extractFooter(memory: WebAssembly.Memory, ptrToFooter: number): {
10
+ start: number;
11
+ end: number;
12
+ capacity: number;
13
+ };
@@ -1,2 +1,2 @@
1
- export declare function compress(data: string): Promise<string>;
2
- export declare function decompress(data: string): Promise<string>;
1
+ export declare function compress(data: string): Promise<string>;
2
+ export declare function decompress(data: string): Promise<string>;
@@ -1,46 +1,46 @@
1
- const d = "KGFzeW5jKCk9PntmdW5jdGlvbiBHKEksZyl7Y29uc3QgQT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSSksQz1nLmFsbG9jVWludDgoQS5sZW5ndGgpO3JldHVybiBuZXcgVWludDhBcnJheShnLm1lbW9yeS5idWZmZXIsQyxBLmxlbmd0aCkuc2V0KEEpLHtwdHI6QyxsZW5ndGg6QS5sZW5ndGh9fWZ1bmN0aW9uIHcoSSl7Y29uc3QgZz1uZXcgQXJyYXkoSS5sZW5ndGgpO2ZvcihsZXQgQT0wO0E8SS5sZW5ndGg7QSsrKWdbQV09U3RyaW5nLmZyb21DaGFyQ29kZShJW0FdKTtyZXR1cm4gZy5qb2luKCIiKX1mdW5jdGlvbiB0KEksZyl7Y29uc3QgQT1uZXcgVWludDMyQXJyYXkoSS5idWZmZXIuc2xpY2UoZyxnKzgpKSxDPUEuYXQoMCksUT1BLmF0KDEpO3JldHVybntzdGFydDpnLUMsZW5kOmcsY2FwYWNpdHk6UX19dmFyIHM9YXN5bmMoST17fSxnKT0+e2xldCBBO2lmKGcuc3RhcnRzV2l0aCgiZGF0YToiKSl7Y29uc3QgQz1nLnJlcGxhY2UoL15kYXRhOi4qP2Jhc2U2NCwvLCIiKTtsZXQgUTtpZih0eXBlb2YgQnVmZmVyPT0iZnVuY3Rpb24iJiZ0eXBlb2YgQnVmZmVyLmZyb209PSJmdW5jdGlvbiIpUT1CdWZmZXIuZnJvbShDLCJiYXNlNjQiKTtlbHNlIGlmKHR5cGVvZiBhdG9iPT0iZnVuY3Rpb24iKXtjb25zdCBFPWF0b2IoQyk7UT1uZXcgVWludDhBcnJheShFLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxFLmxlbmd0aDtpKyspUVtpXT1FLmNoYXJDb2RlQXQoaSl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO0E9YXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoUSxJKX1lbHNle2NvbnN0IEM9YXdhaXQgZmV0Y2goZyksUT1DLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKXx8IiI7aWYoImluc3RhbnRpYXRlU3RyZWFtaW5nImluIFdlYkFzc2VtYmx5JiZRLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL3dhc20iKSlBPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEMsSSk7ZWxzZXtjb25zdCBFPWF3YWl0IEMuYXJyYXlCdWZmZXIoKTtBPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEUsSSl9fXJldHVybiBBLmluc3RhbmNlfSxrPUk9PnMoSSwiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCxBR0Z6YlFFQUFBQUJWZzFnQkg5L2YzOEJmMkFGZjM5L2YzOEFZQVovZjM5L2YzOEJmMkFCZndGL1lBTi9mMzhBWUFKL2Z3QmdBWDhBWUFSL2YzOS9BR0FDZjM4QmZtQUNmMzhCZjJBRGYzOS9BWDlnQW41K0FYNWdCSDkvZm40QUF4OGVBd1FEQkFVRUJnVUhDQUFKQ1FjSkJnUUpDUW9IQlFRQUFnRUxEQW9LQkFVQmNBRUVCQVVEQVFBUkJnNENmd0ZCZ0lEQUFBdC9BRUVBQ3dkRUJnWnRaVzF2Y25rQ0FBcGhiR3h2WTFWcGJuUTRBQUFMWVd4c2IyTlZhVzUwTVRZQUFnUm1jbVZsQUFRSVkyOXRjSEpsYzNNQUN3cGtaV052YlhCeVpYTnpBQkVKQ1FFQVFRRUxBeGNZR1FycU54NWVBUUYvSTRDQWdJQUFRUkJySWdFa2dJQ0FnQUFnQVNPQmdJQ0FBRUdZZ01DQUFHb3BBd0EzQXdBZ0FVRUlhaUFCSUFBUWdZQ0FnQUFDUUNBQkx3RU1EUUFnQVNnQ0NDRUFJQUZCRUdva2dJQ0FnQUFnQUE4TEEzOEFEQUFMQzNFQ0FYOEJmaU9BZ0lDQUFFRVFheUlESklDQWdJQUFRb0NBZ0lBUUlRUUNRRUVCUlEwQUFrQWdBZzBBUXYvLy8vOFBJUVFNQVFzZ0FTZ0NBQ0FDUVFCQkFDQUJLQUlFS0FJQUVZQ0FnSUFBQUNJQ1JhMUNJSVlnQXEyRUlRUUxJQUFnQkRjQ0FDQURRUkJxSklDQWdJQUFDMTRCQVg4amdJQ0FnQUJCRUdzaUFTU0FnSUNBQUNBQkk0R0FnSUFBUVppQXdJQUFhaWtEQURjREFDQUJRUWhxSUFFZ0FCQ0RnSUNBQUFKQUlBRXZBUXdOQUNBQktBSUlJUUFnQVVFUWFpU0FnSUNBQUNBQUR3c0Rmd0FNQUFzTGh3RUNBWDhCZmlPQWdJQ0FBRUVRYXlJREpJQ0FnSUFBSUFNZ0FrRUFTRG9BREFKQUFrQWdBa0YvU2cwQVFvQ0FnSUFRSVFRTUFRc0NRQ0FDUVFGMElnSU5BRUwrLy8vL0R5RUVEQUVMSUFFb0FnQWdBa0VCUVFBZ0FTZ0NCQ2dDQUJHQWdJQ0FBQUFpQWtXdFFpQ0dJQUt0aENFRUN5QUFJQVEzQWdBZ0EwRVFhaVNBZ0lDQUFBc1pBQ09CZ0lDQUFFR1lnTUNBQUdvZ0FDQUJFSVdBZ0lBQUN6Z0JBWDhDUUNBQ1FRQWdBaHNpQTBVTkFDQUFLQUlBSUFGQnF0V3ExWG9nQWhzZ0EwRUFRUUFnQUNnQ0JDZ0NDQkdCZ0lDQUFBQUxDdzhBSUFBZ0FFRU1haENIZ0lDQUFBdHdBUU4vQWtBZ0FDZ0NBQ0lDUlEwQUFrQWdBa0YwYWlJRFFRaHFLQUlBSWdKQkNtd2dBa0VQYWtGOGNXcEJBMnBCZkhFaUFrRUFJQUliSWdSRkRRQWdBU2dDQUNBRFFRUWdBaHNnQkVFQ1FRQWdBU2dDQkNnQ0NCR0JnSUNBQUFBTElBQkJBRFlDQ0NBQVFRQTJBZ0FMQzlnQ0F3Ui9BWDRFZnlPQWdJQ0FBRUVRYXlJRUpJQ0FnSUFBSTRHQWdJQUFJUVVnQVNnQ0FDRUdBa0FDUUNBQktBSUVEUUFnQlVHQWdNQ0FBR29oQnd3QkN5QUNJQU1RaVlDQWdBQWhDQUpBQWtBZ0JnMEFRUUFoQlVGL0lRa01BUXNnQmtGOGFpZ0NBQ0lGUVg5cUlRa0xJQVpCZUdvaENpQUpJQWluY1NFQklBaENPWWluSVFzRFFDT0JnSUNBQUVHQWdNQ0FBR29oQnlBR0lBRnFMQUFBSWd4RkRRRWdCVVVOQVFKQUlBeEJmMG9OQUNBTElBeEIvd0J4UncwQUlBSWdBeUFLS0FJQUlBRkJBM1JxSWd3b0FnQWdEQ2dDQkJDS2dJQ0FBRUVCY1VVTkFDQUVRUUU2QUF3Z0JDQUJOZ0lJSUFSQkNHb2hCd3dDQ3lBRlFYOXFJUVVnQVVFQmFpQUpjU0VCREFBTEN3SkFBa0FnQnkwQUJBMEFRUUFoQVVFQUlRVU1BUXNnQmtGMGFpZ0NBQ0FIS0FJQVFRRjBhaThCQUNFQlFZQ0FCQ0VGQ3lBQUlBVWdBWEkyQVFBZ0JFRVFhaVNBZ0lDQUFBdWhDd0lCZnd0K0k0Q0FnSUFBUWNBQWF5SUNKSUNBZ0lBQUlBR3RJUU1DUUFKQUlBRkJJRXNOQUFKQUlBRkJFVThOQUFKQUlBRkJDRWtOQUNBQUtRQUFRcytBd2Z5eXg5cndtbjk4SWdSQ0o0a2dBU0FBYWtGNGFpa0FBQ0lGZkNBRFFnR0dRcytBd2Z5eXg5cndtbjk4SWdaK0lnTWdBeUFGUWh1SklBWitJQVI4aFNBR2ZpSUVRaStJaFNBRWhTQUdmaUlFUWkrSUlBU0ZJQVorSVFZTUF3c0NRQ0FCUVFSSkRRQWdBRFVBQUVJRGhpQURmQ0FCSUFCcVFYeHFOUUFBSWdTRklBTkNBWVpDejREQi9MTEgydkNhZjN3aUJuNGlCVUl2aUNBRWhTQUZoU0FHZmlJRVFpK0lJQVNGSUFaK0lRWU1Bd3NDUUNBQkRRQkN6NERCL0xMSDJ2Q2FmeUVHREFNTElBRWdBR3BCZjJvdEFBQkJBblFnQVdxdFFxZmlyTDdKaS9MU1EzNGdBQ0FCUVFGMmFqRUFBRUlJaGlBQU1RQUFoRUxQZ01IOHNzZmE4SnAvZm9VaUJrSXZpQ0FHaFVMUGdNSDhzc2ZhOEpwL2ZpRUdEQUlMSUFBcEFBZ2lCRUxQZ01IOHNzZmE4SnAvZkVJdWlTQUFLUUFBUXZQazQvVDd6YTNKdEg5K0lnVjhJQUVnQUdvaUFFRjRhaWtBQUNBRFFnR0dRcytBd2Z5eXg5cndtbjk4SWdaK0lnTjhJZ2NnQnlBRFFpS0pJQVVnQkh4Q0ZZbDhJQUJCY0dvcEFBQkN6NERCL0xMSDJ2Q2FmMzU4aFNBR2ZpSUVRaStJaFNBRWhTQUdmaUlFUWkrSUlBU0ZJQVorSVFZTUFRc0NRQ0FCUWNFQVNRMEFJQUVnQUdvaUFVRllhaWtBQUNFSElBRkJTR29wQUFBaEJpQUJRWEJxS1FBQUlRZ2dBaUFCUVVCcUlBTWdBVUZRYWlrQUFDQURmQ0FCUVdocUtRQUFFSnFBZ0lBQUlna1FtNENBZ0FBZ0Fpa0RDQ0VFSUFJcEF3QWhCU0FDUVJCcUlBRkJZR29nQmlBSWZDSUdRdlBrNC9UN3phM0p0SDk4SUFjUW00Q0FnQUJDQUNBRFFuOThRa0NEZlNFS0lBQXBBQUFnQjBMejVPUDArODJ0eWJSL2Zud2hDQ0FDS1FNWUlRTWdBaWtERUNFSEEwQWdBQ2tBTUNFTElBQXBBQ2doRENBQ1FTQnFJQUFnQkVMejVPUDArODJ0eWJSL2ZpQUdJQVY4SUFoOElBQXBBQWg4UWh1SlF2UGs0L1Q3emEzSnRIOStJQU9GSWcwZ0Izd1FtNENBZ0FBZ0RDQUZmQ0VNSUFZZ0JId2hCaUFDS1FNb0lRUWdBaWtESUNFRklBSkJNR29nQUVFZ2FpQUpJQWQ4UWgrSlF2UGs0L1Q3emEzSnRIOStJZ2dnQTN3Z0FDa0FFQ0FNSUFZZ0MzeENGb2xDOCtUajlQdk5yY20wZjM1OElnWjhFSnVBZ0lBQUlBQkJ3QUJxSVFBZ0Fpa0RPQ0VESUFJcEF6QWhCeUFOSVFrZ0NrTEFBSHdpQ2tJQVVnMEFDeUFHUWkrSUlBYUZRdlBrNC9UN3phM0p0SDkrSUExOElBVWdCeENhZ0lDQUFId2dCQ0FERUpxQWdJQUFJQWg4RUpxQWdJQUFJUVlNQVFzZ0FTQUFhaUlCUVhCcUtRQUFJQU5DQVlaQ3o0REIvTExIMnZDYWYzd2lCSDRpQlNBQlFXQnFLUUFBSWdOOElBQXBBQmhDQ1g0aUJ5QUFLUUFRUXMrQXdmeXl4OXJ3bW45K2ZDSUlJQUZCYUdvcEFBQWlCbndpQ1NBQUtRQUlJZ3A4SUFrZ0FVRjRhaWtBQUNJTmZDQUlRaGFKSUFaOElnaDhJQWNnRFNBQUtRQUFRcytBd2Z5eXg5cndtbjkrZkNJSklBT0ZmRUlCZkNJRElBVjhJQWxDRllrZ0NrSWlpU0FHZkVJSmZud2dBM3dnQkg0aUJrSTRoaUFHUW9EK0E0TkNLSWFFSUFaQ2dJRDhCNE5DR0lZZ0JrS0FnSUQ0RDROQ0NJYUVoQ0FHUWdpSVFvQ0FnUGdQZ3lBR1FoaUlRb0NBL0FlRGhDQUdRaWlJUW9EK0E0TWdCa0k0aUlTRWhId2dCSDRpQmtJNGhpQUdRb0QrQTROQ0tJYUVJQVpDZ0lEOEI0TkNHSVlnQmtLQWdJRDRENE5DQ0lhRWhDQUdRZ2lJUW9DQWdQZ1BneUFHUWhpSVFvQ0EvQWVEaENBR1FpaUlRb0QrQTRNZ0JrSTRpSVNFaEh3Z0JINGlCa0k0aGlBR1FvRCtBNE5DS0lhRUlBWkNnSUQ4QjROQ0dJWWdCa0tBZ0lENEQ0TkNDSWFFaENBR1FnaUlRb0NBZ1BnUGd5QUdRaGlJUW9DQS9BZURoQ0FHUWlpSVFvRCtBNE1nQmtJNGlJU0VoSHdnQkg1OElnWkNMNGdnQm9VZ0JINGdDSHdoQmdzZ0FrSEFBR29rZ0lDQWdBQWdCZ3RZQVFKL1FRQWhCQUpBSUFFZ0EwY05BQUpBSUFBZ0FrY05BRUVCRHdzRFFDQUJSU0VFSUFGRkRRRWdBVUYvYWlFQklBSXRBQUFoQXlBQUxRQUFJUVVnQUVFQmFpRUFJQUpCQVdvaEFpQUZJQU5HRFFBTEN5QUVDNWtLQlFGL0FYNEhmd0YrQTM4amdJQ0FnQUJCa0FGcklnSWtnSUNBZ0FBQ1FBSkFBa0FnQVEwQUk0R0FnSUFBUVppQXdJQUFhaWtEQUNFRFFhclZxdFY2SVFSQkFDRUZRUUFoQmd3QkMwRUFJUWNnQWtFWWFrRUlha0VBTmdJQUlBSkNBRGNER0NBQ0k0R0FnSUFBUVppQXdJQUFhaWtEQUNJRE53SWtJQUpCK0FCcVFRaHFRUUEyQWdBZ0FrSUFOd040SUFGQi8vOERJQUZCLy84RFNSdEI1QUJzUWRBQWJpRUlJQUpCSkdvaENRSkFBa0JCQUEwQVFYd2hCa0lCUVNBZ0NHZHJyVUwvL3dPRGhxY2lDRUVJSUFoQkNFc2JJZ2hCQVhRZ0NFRVBha0Y4Y1NJS0lBaEJBM1JxSWdWcVFRTnFRWHh4SWdSRkRRRWdBNmNnQkVFQ1FRQWdBMElnaUtjb0FnQVJnSUNBZ0FBQUlnWU5BUXNnQWtINEFHb2dDUkNIZ0lDQUFDQUNRUmhxRUlhQWdJQUFEQUlMSUFZZ0NEWUNDQ0FHSUFZZ0NtbzJBZ1FnQmlBR0lBVnFOZ0lBSUFJZ0JrRU1haUlHTmdKNFFRQWhCeUFHUVFBZ0NCQ2NnSUNBQUJvZ0FrSDRBR3BCQ0dvaUJpQUlRZEFBYkVIa0FHNGlDRFlDQUNBQ1FSaHFRUWhxSWdvb0FnQWhCU0FLSUFnMkFnQWdCaUFGTmdJQUlBSkJBRFlDSENBQ0tRTVlJUXNnQWlBQ0tRTjROd01ZSUFJZ0N6Y0RlQ0FDUWZnQWFpQUpFSWVBZ0lBQUlBSWdBemNDaEFFZ0FrRUFOZ0tBQVNBQ1FxclZxdFVLTndKNEFrQWdBa0g0QUdvZ0FSQ01nSUNBQUVILy93TnhSUTBBSUFKQkdHb1Fob0NBZ0FBTUFnc2dBaWtDaEFFaEF5QUNLQUtBQVNFRklBSW9BbndoRENBQ0tBSjRJUVJCZ0FJaERVRUFJUWNEUUNBQUlBZHFJUWhCQWlFR0FrQUNRQUpBQTBBQ1FBSkFJQWNnQm1vaUNTQUJUdzBBSUFKQkxHb2dBa0VZYWlBSUlBWVFpSUNBZ0FBZ0FpMEFMZzBCSUFvaEJ5QUdRUUpHRFFNTUJRc0NRQ0FIUVFGcUlBRkpEUUFnQ0MwQUFDRUdEQVFMSUFKQk1HcEJFR29nQWtFWWFrRVFhaWdDQURZQ0FDQUNRVEJxUVFocUlBSkJHR3BCQ0dvcEF3QTNBd0FnQWlBQ0tRTVlOd013SUFKQnhBQnFJQUpCTUdvZ0NDQUdFSWlBZ0lBQUFrQUNRQUpBSUFJdEFFWU5BQ0FHUVFKSERRRWdDQzBBQUNFR0RBSUxJQUl2QVVRaEJnd0ZDeUFDUWNnQWFrRVFhaUFDUVJocVFSQnFLQUlBTmdJQUlBSkJ5QUJxUVFocUlBSkJHR3BCQ0dvcEF3QTNBd0FnQWlBQ0tRTVlOd05JSUFKQjRBQnFJQUpCeUFCcUlBZ2dCa0YvYWhDSWdJQ0FBQ0FDTHdGZ0lRWUxJQVFnREVFQmRHb2dCanNCQUNBTVFRRnFJUXdnQ1NBQWFrRi9haTBBQUNFR0RBTUxJQVpCQVdvaEJpQUNMd0VzSVFvTUFBc0xJQWd0QUFBaEJ3d0JDeUFFSUF4QkFYUnFJQVk3QVFBZ0RFRUJhaUVHSUFKQkdHb1Fob0NBZ0FBTUFnc2dCQ0FNUVFGMGFpQUhPd0VBSUF4QkFXb2hEaUFKUVg5cUlRY0NRQ0FOUWYvL0EzRkIvdjhEUncwQUFrQWdBaWdDR0NJR1JRMEFJQVpCQUNBR1FYeHFLQUlBSWdnUW5JQ0FnQUFhSUFKQkFEWUNIQ0FDSUFpdFF0QUFma0xrQUlBK0FpQUxJQVFnRGtFQmRHcEIvdjhET3dFQUlBeEJBbW9oREVHQUFpRU5EQUVMSUFKQkdHb2dDQ0FHSUEwUWpZQ0FnQUFnRFVFQmFpRU5JQTRoREF3QUN3c2dBaUFETndJUUlBSWdCRFlDQkNBQ0lBWTJBZ2dnQWlBRk5nSU1JQVloQVFKQUlBVWdCa0VFYWlJSVR3MEFRUUFoQnlBQ1FRUnFJQVVnQ0JDT2dJQ0FBQkNNZ0lDQUFFSC8vd054RFFFZ0FpZ0NCQ0VFSUFJb0FnZ2hBUXNnQkNBQlFRRjBhaUlCSUFaQkFYUWlCenNCQUNBQlFRSnFJQVpCRDNZN0FRQWdBVUVFYWlBRlFRRjBPd0VBSUFGQkJtb2dCVUVQZGpzQkFDQUVJQWRxSVFjTElBSkJrQUZxSklDQWdJQUFJQWNMa3dJQkJuOGpnSUNBZ0FCQkVHc2lBaVNBZ0lDQUFFRUFJUU1DUUNBQUtBSUlJZ1FnQVU4TkFDQUFLQUlBSVFVQ1FDQUVSUTBBSUFJZ0FVRUFTRG9BQ0NBQlFYOU1EUUFnQUNnQ0RDQUZJQVJCQVhSQkFTQUJRUUYwUVFBZ0FFRVFhaWdDQUNnQ0JCR0NnSUNBQUFCQkFYRkZEUUFnQUNBQk5nSUlRUUFoQXd3QkN5QUNJQUFwQWd3M0F3QWdBa0VJYWlBQ0lBRVFnNENBZ0FBZ0FpOEJEQ0lERFFBZ0FpZ0NDQ0FBS0FJQUlBQW9BZ1JCQVhRUW5ZQ0FnQUFoQmtFQUlRTUNRQ0FFUVFGMFFRQWdCQnNpQjBVTkFDQUFLQUlNSUFWQkFpQUVHeUFIUVFGQkFDQUFRUkJxS0FJQUtBSUlFWUdBZ0lBQUFBc2dBQ0FCTmdJSUlBQWdCallDQUFzZ0FrRVFhaVNBZ0lDQUFDQURDNWdEQXdKL0FYNEdmeU9BZ0lDQUFFRVFheUlFSklDQWdJQUFBa0FnQUNnQ0JFVU5BQ0FBS0FJQUlRVWdBU0FDRUltQWdJQUFJUVlDUUFKQUlBVU5BRUVBSVFkQmZ5RUlEQUVMSUFWQmZHb29BZ0FpQjBGL2FpRUlDeUFGUVhocUlRa2dDQ0FHcDNFaENpQUdRam1JcHlFTEEwQWdCU0FLYWl3QUFDSU1SUTBCSUFkRkRRRUNRQ0FNUVg5S0RRQWdDeUFNUWY4QWNVY05BQ0FCSUFJZ0NTZ0NBQ0FLUVFOMGFpSU1LQUlBSUF3b0FnUVFpb0NBZ0FCQkFYRkZEUUFnQkVFQk9nQU1EQUlMSUFkQmYyb2hCeUFLUVFGcUlBaHhJUW9NQUFzTElBRWdBaENKZ0lDQUFDRUdRWDhoREFKQUlBQW9BZ0FpQjBVTkFDQUhRWHhxS0FJQVFYOXFJUXdMSUF3Z0JxZHhJUW9DUUFOQUlBY2dDbW9pQlN3QUFFRi9TZzBCSUFwQkFXb2dESEVoQ2d3QUN3c2dBQ0FBS0FJSVFYOXFOZ0lJSUFVZ0JrSTVpS2RCZ0FGeU9nQUFJQUFvQWdCQmVHb29BZ0FnQ2tFRGRHb2lCeUFDTmdJRUlBY2dBVFlDQUNBQUtBSUFRWFJxS0FJQUlBcEJBWFJxSUFNN0FRQWdBQ0FBS0FJRVFRRnFOZ0lFSUFSQkVHb2tnSUNBZ0FBTEpRRUJmd05BUVg4Z0FFRUJkaUFBYWtFSWFpSUNJQUlnQUVrYklnQWdBVWtOQUFzZ0FBcy9BUUYvSTRDQWdJQUFRUkJySWdFa2dJQ0FnQUFnQVNBQUtRSU1Od01JSUFGQkNHb2dBQ2dDQUNBQUtBSUlFSkNBZ0lBQUlBRkJFR29rZ0lDQWdBQUxOd0VCZndKQUlBSkJBM1JCQUNBQ0d5SURSUTBBSUFBb0FnQWdBVUVFSUFJYklBTkJBa0VBSUFBb0FnUW9BZ2dSZ1lDQWdBQUFDd3ZiQndNQmZ3RitDWDhqZ0lDQWdBQkJ3QUJySWdJa2dJQ0FnQUFqZ1lDQWdBQkJtSURBZ0FCcUtRTUFJUU1DUUFKQUFrQUNRQ0FCRFFCQnF0V3ExWG9oQkVFQUlRVkJBQ0VHREFFTElBSkJBRFlDSUNBQ1FxclZxdFVLTndJWUlBSWdBemNDSkNBQ1FRQkIvLzhERUk2QWdJQUFJZ2RCLy8vLy93RkxPZ0FzSUFkQmdJQ0FnQUpQRFFFQ1FBSkFJQWRCQTNRaUNBMEFRWHdoQ0F3QkN5QURweUFJUVFKQkFDQURRaUNJcHlnQ0FCR0FnSUNBQUFBaUNFVU5BZ3NnQWlBSE5nSWdJQUlnQ0RZQ0dFRUFJUWNDUUFOQUlBZEIrUDhmUmcwQklBZ2dCMnBDQURjQ0FDQUhRUWhxSVFjTUFBc0xJQUpCLy84RE5nSWNJQUlnQXpjQ09FRUFJUWNnQWtFQU5nSTBJQUpDcXRXcTFRbzNBaXdnQWtFc2FpQUJRUmhzRUpLQWdJQUFRZi8vQTNFTkFTQUNLUUk0SVFNZ0FpZ0NOQ0VGSUFJb0Fpd2lCQ0FDS0FJd0lnWnFJQUF0QUFBNkFBQWdDQ0FBTHdFQVFRTjBhaUlKUVFFMkFnUWdDU0FFTmdJQUlBWkJBV29oQ2tFQklRbEJnQUloQ3dOQUlBb2hCZ0pBQWtBQ1FBSkFJQWtnQVU4TkFBSkFJQUFnQ1VFQmRHb3ZBUUFpQ2tIKy93TkhEUUFnQ1VFQmFpSUpJQUZQRFFGQkFDRUhBa0FEUUNBSFFmai9IMFlOQVNBSUlBZHFRZ0EzQWdBZ0IwRUlhaUVIREFBTEN3SkFJQUFnQ1VFQmRHb3ZBUUFpQjBHQUFra05BQ0FDUWYvL0F6WUNIQXdJQ3lBRUlBWnFJQWM2QUFBZ0JrRUJhaUVLUVlBQ0lRc01CQXNnQ2tHQUFra05BUUpBSUFnZ0NrRURkR29pQ2lnQ0FDSU1EUUFnQkNBR2FpQUVJQWRxSWdvZ0JpQUhheUlNRUoyQWdJQUFHaUFFSUF3Z0Jtb2lER29nQ2kwQUFEb0FBQ0FNUVFGcUlRb01Bd3NnQkNBR2FpQU1JQW9vQWdRaUNoQ2RnSUNBQUJvZ0NpQUdhaUVLREFJTElBSkIvLzhETmdJY0lBSkJHR29RajRDQWdBQU1CQXNnQkNBR2FpQUtPZ0FBSUFaQkFXb2hDZ3NnQ0NBTFFmLy9BM0ZCQTNScUlnd2dCaUFIYTBFQmFqWUNCQ0FNSUFRZ0IybzJBZ0FnQzBFQmFpRUxDeUFKUVFGcUlRa2dCaUVIREFBTEN5QUNJQU0zQWhBZ0FpQUVOZ0lFSUFJZ0JqWUNDQ0FDSUFVMkFnd0NRQUpBSUFVZ0JrRUlhaUlJU1EwQUlBWWhCd3dCQzBFQUlRY2dBa0VFYWlBRklBZ1Fqb0NBZ0FBUWtvQ0FnQUJCLy84RGNRMENJQUlvQWdRaEJDQUNLQUlNSVFVZ0FpZ0NDQ0VIQ3lBRUlBZHFJZ2NnQmpvQUFDQUhRUWRxSUFWQkdIWTZBQUFnQjBFR2FpQUZRUkIyT2dBQUlBZEJCV29nQlVFSWRqb0FBQ0FIUVFScUlBVTZBQUFnQjBFRGFpQUdRUmgyT2dBQUlBZEJBbW9nQmtFUWRqb0FBQ0FIUVFGcUlBWkJDSFk2QUFBZ0JDQUdhaUVIREFFTElBSkJHR29RajRDQWdBQkJBQ0VIQ3lBQ1FjQUFhaVNBZ0lDQUFDQUhDOW9CQVFWL0k0Q0FnSUFBUVNCcklnSWtnSUNBZ0FCQkFDRURBa0FnQUNnQ0NDSUVJQUZQRFFBZ0FDZ0NBQ0VGQWtBQ1FDQUVSUTBBUVFBTkFDQUFLQUlNSUFVZ0JFRUFJQUZCQUNBQVFSQnFLQUlBS0FJRUVZS0FnSUFBQUVFQmNVVU5BQ0FBSUFFMkFnZ01BUXNnQWlBQVFReHFJZ1lwQWdBM0F4QWdBa0VZYWlBQ1FSQnFJQUVRZ1lDQWdBQWdBaThCSENJRERRRWdBaWdDR0NBQUtBSUFJQUFvQWdRUW5ZQ0FnQUFoQXlBR0lBVWdCQkNGZ0lDQUFDQUFJQUUyQWdnZ0FDQUROZ0lBQzBFQUlRTUxJQUpCSUdva2dJQ0FnQUFnQXd2U0FnTUdmd0YrQjM4amdJQ0FnQUJCRUdzaUF5U0FnSUNBQUNBQUtBSUVJUVFnQUNnQ0FDRUZRUUFoQmlBQ1FmOEJjU0VIQTM4Q1FBSkFBa0FnQmlBRVJ3MEFRWDhoQ0F3QkN3SkFJQVVnQmtFRWRHb2lBa0VJYWlrREFDSUpRZ0JURFFBZ0Fpa0RBSHNnQ1h0OHB5QUJTUTBDQ3lBR1FRZDBJZ2hCZ0FGcUlRb0RRQ0FJSUFwUERRSWdDQ0FBS1FJQUlnbENHWWluUVlCL2NTSUNJQWdnQWtzYklnc2dDR3NoRENBSnAwRUlJQWxDSUlpbkd5RU5JQWhCRUhSb0lRNUJBQ0VDQWtBRFFBSkFJQXdnQWtjTkFDQUxJUThNQWd0Qi93RWdDQ0FDYWlJUFFRZHhJaEJCQjNOMlFRRWdFSFJ4SUEwZ0QwRURkbW90QUFCeFJRMEJJQUpCQVdvaUFpQUJTUTBBSUE0Z0Iwa05BQXNnQXlBSk53TUlJQU5CQ0dvZ0NDQUJRUUFRbElDQWdBQU1BZ3NnRDBFQmFpRUlEQUFMQ3lBRFFSQnFKSUNBZ0lBQUlBZ1BDeUFHUVFGcUlRWU1BQXNMVkFFQmZ5QURRUUZ4SVFRQ1FBTkFJQUpGRFFFZ0FDZ0NBRUVJSUFBb0FnUWJJQUZCQTNacUlnTWdBeTBBQUVGK0lBRkJCM0VpQTNkeElBUWdBM1J5T2dBQUlBRkJBV29oQVNBQ1FYOXFJUUlNQUFzTEM5c0JBUU4vSTRDQWdJQUFRUkJySWdJa2dJQ0FnQUFDUUNBQVFZQVFUdzBBSTRHQWdJQUFRYWlBd0lBQWFpQUFJQUZCZ0JBZ0FVR0FFRWtiSUFCckVKYUFnSUFBQ3dKQUlBRkJnQkJORFFBQ1FDT0JnSUNBQUVHZ2dNQ0FBR29vQWdRTkFDT0JnSUNBQUVHZ2dNQ0FBR29pQTBHQUlEWUNCQ0FESUFGQmYyb2lBVUVRZENJRU5nSUFJQVJCQUVHQWdBUVFuSUNBZ0FBYUN5QUNJNEdBZ0lBQVFhQ0F3SUFBYWlrREFEY0RDQ0FDUVFocUlBQkJnQkFnQUVHQUVFc2JJZ0JCZ0hCcUlBRWdBR3NRbG9DQWdBQUxJQUpCRUdva2dJQ0FnQUFMT3dFQmZ5T0FnSUNBQUVFUWF5SURKSUNBZ0lBQUlBTWdBQ2tDQURjRENDQURRUWhxSUFFZ0FrRUJFSlNBZ0lBQUlBTkJFR29rZ0lDQWdBQUx2UUVCQkg5QkFDRUVBa0FnQVVHQmdIeFBEUUFDUUNPQmdJQ0FBRUdvZ01DQUFHb2dBVUgvL3dOcVFSQjJJZ0VnQWhDVGdJQ0FBQ0lFUVg5SERRQUNRQ09CZ0lDQUFFR2dnTUNBQUdvZ0FTQUNFSk9BZ0lBQUlnUkJmMFlOQUNBRVFZQVFhaUVFREFFTFFRQWhCRUVCSUFKMElnVS9BQ0lHUVJCMElnSnFRWDlxUVFBZ0JXdHhJZ1VnQW10QkVIWWlCeUFCYWtBQVFRRklEUUVnQnlBR2FpRUVJQVVnQWtZTkFDQUdJQVFRbFlDQWdBQUxJQVJCRUhRaEJBc2dCQXRQQVFGL0FrQWdBa0gvL3dOcUlnWkJnSUI4Y1NBRVR5SUNSUTBBSUFSQi8vOERha0VRZGlJRUlBWkJFSFlpQmtZTkFDQUVJQUZCLy84RGFrRVFkaUlCYWlBQklBWnFFSldBZ0lBQUN5QUNDeUVBSUFGQi8vOERha0VRZGlJQklBRWdBa0gvL3dOcVFSQjJhaENWZ0lDQUFBcytBQ0FCSUFDRlF1bmE0Tm1Pd2Zydm5YOStJZ0JDTDRnZ0FZVWdBSVZDNmRyZzJZN0IrdStkZjM0aUFVSXZpQ0FCaFVMcDJ1RFpqc0g2NzUxL2ZndENBUUorSUFBZ0FTa0FBQ0FDZkNJQ0lBRXBBQWg4SUFFcEFCQjhJZ1FnQVNrQUdDSUZmRGNEQUNBQUlBUkNGSWtnQW53Z0JTQUNJQU44ZkVJcmlYdzNBd2dMTEFFQmZ3SkFJQUpGRFFBZ0FDRURBMEFnQXlBQk9nQUFJQU5CQVdvaEF5QUNRWDlxSWdJTkFBc0xJQUFMUWdFQmZ3SkFJQUpGRFFBZ0FrRi9haUVDSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FDUlEwQklBSkJmMm9oQWlBQlFRRnFJUUVnQTBFQmFpRUREQUFMQ3lBQUN3dEJBZ0JCZ0lEQUFBc0lBQUFBQUFBQUFBQUFRWWlBd0FBTEtBRUFBQUFDQUFBQUF3QUFBQUFBQUFBQUFBQUFDQUFRQUtxcXFxb0FBQUFBTUFBUUFCQUFBQUE9Iik7Y29uc3QgZT1hd2FpdCBrKCksQj1lLmV4cG9ydHM7ZnVuY3Rpb24gaChJKXtjb25zdHtwdHI6ZyxsZW5ndGg6QX09RyhJLEIpLEM9Qi5jb21wcmVzcyhnLEEpO0IuZnJlZShnLEEpO2NvbnN0e3N0YXJ0OlEsZW5kOkUsY2FwYWNpdHk6aX09dChCLm1lbW9yeSxDKSxhPW5ldyBVaW50MTZBcnJheShCLm1lbW9yeS5idWZmZXIuc2xpY2UoUSxFKSksRD13KGEpO3JldHVybiBCLmZyZWUoUSxpKSxEfWZ1bmN0aW9uIG4oSSl7Y29uc3QgZz1CLmFsbG9jVWludDE2KEkubGVuZ3RoKSxBPW5ldyBVaW50MTZBcnJheShCLm1lbW9yeS5idWZmZXIsZyxJLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxJLmxlbmd0aDtvKyspQVtvXT1JLmNoYXJDb2RlQXQobyk7Y29uc3QgQz1CLmRlY29tcHJlc3MoZyxJLmxlbmd0aCk7Qi5mcmVlKGcsMipJLmxlbmd0aCk7Y29uc3R7c3RhcnQ6USxlbmQ6RSxjYXBhY2l0eTppfT10KEIubWVtb3J5LEMpLGE9bmV3IFVpbnQ4QXJyYXkoQi5tZW1vcnkuYnVmZmVyLnNsaWNlKFEsRSkpLEQ9bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGEpO3JldHVybiBCLmZyZWUoUSxpKSxEfXNlbGYub25tZXNzYWdlPWZ1bmN0aW9uKEkpe2NvbnN0e2NvbW1hbmQ6ZyxpZDpBLGRhdGE6Q309SS5kYXRhO3N3aXRjaChnKXtjYXNlImRlY29tcHJlc3MiOntzZWxmLnBvc3RNZXNzYWdlKHtpZDpBLGRhdGE6bihDKX0pO2JyZWFrfWNhc2UiY29tcHJlc3MiOntzZWxmLnBvc3RNZXNzYWdlKHtpZDpBLGRhdGE6aChDKX0pO2JyZWFrfX19fSkoKTs=", l = typeof window < "u" && window.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);" + atob(d)], { type: "text/javascript;charset=utf-8" });
2
- function Z(Q) {
3
- let U;
4
- try {
5
- if (U = l && (window.URL || window.webkitURL).createObjectURL(l), !U)
6
- throw "";
7
- const F = new Worker(U, {
8
- type: "module",
9
- name: Q?.name
10
- });
11
- return F.addEventListener("error", () => {
12
- (window.URL || window.webkitURL).revokeObjectURL(U);
13
- }), F;
14
- } catch {
15
- return new Worker(
16
- "data:application/javascript;base64," + d,
17
- {
18
- type: "module",
19
- name: Q?.name
20
- }
21
- );
22
- }
23
- }
24
- const R = new Z();
25
- let J = 0;
26
- const B = {};
27
- R.onmessage = function(Q) {
28
- const U = Q.data.id;
29
- B[U](Q.data.data), delete B[U];
30
- };
31
- async function W(Q) {
32
- const U = J++;
33
- return new Promise((F) => {
34
- B[U] = F, R.postMessage({ command: "compress", id: U, data: Q });
35
- });
36
- }
37
- async function V(Q) {
38
- const U = J++;
39
- return new Promise((F) => {
40
- B[U] = F, R.postMessage({ command: "decompress", id: U, data: Q });
41
- });
42
- }
43
- export {
44
- W as compress,
45
- V as decompress
46
- };
1
+ const l = "KGFzeW5jKCk9PntmdW5jdGlvbiBGKEEsQil7Y29uc3QgST1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoQSksZz1CLmFsbG9jVWludDgoSS5sZW5ndGgpO3JldHVybiBuZXcgVWludDhBcnJheShCLm1lbW9yeS5idWZmZXIsZyxJLmxlbmd0aCkuc2V0KEkpLHtwdHI6ZyxsZW5ndGg6SS5sZW5ndGh9fWZ1bmN0aW9uIG4oQSl7Y29uc3QgQj1uZXcgQXJyYXkoQS5sZW5ndGgpO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKUJbSV09U3RyaW5nLmZyb21DaGFyQ29kZShBW0ldKTtyZXR1cm4gQi5qb2luKCIiKX1mdW5jdGlvbiB3KEEsQil7Y29uc3QgST1uZXcgVWludDMyQXJyYXkoQS5idWZmZXIuc2xpY2UoQixCKzgpKSxnPUkuYXQoMCksUT1JLmF0KDEpO3JldHVybntzdGFydDpCLWcsZW5kOkIsY2FwYWNpdHk6UX19dmFyIGU9YXN5bmMoQT17fSxCKT0+e2xldCBJO2lmKEIuc3RhcnRzV2l0aCgiZGF0YToiKSl7Y29uc3QgZz1CLnJlcGxhY2UoL15kYXRhOi4qP2Jhc2U2NCwvLCIiKTtsZXQgUTtpZih0eXBlb2YgQnVmZmVyPT0iZnVuY3Rpb24iJiZ0eXBlb2YgQnVmZmVyLmZyb209PSJmdW5jdGlvbiIpUT1CdWZmZXIuZnJvbShnLCJiYXNlNjQiKTtlbHNlIGlmKHR5cGVvZiBhdG9iPT0iZnVuY3Rpb24iKXtjb25zdCBFPWF0b2IoZyk7UT1uZXcgVWludDhBcnJheShFLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxFLmxlbmd0aDtpKyspUVtpXT1FLmNoYXJDb2RlQXQoaSl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO0k9YXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoUSxBKX1lbHNle2NvbnN0IGc9YXdhaXQgZmV0Y2goQiksUT1nLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKXx8IiI7aWYoImluc3RhbnRpYXRlU3RyZWFtaW5nImluIFdlYkFzc2VtYmx5JiZRLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL3dhc20iKSlJPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSk7ZWxzZXtjb25zdCBFPWF3YWl0IGcuYXJyYXlCdWZmZXIoKTtJPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEUsQSl9fXJldHVybiBJLmluc3RhbmNlfSxHPUE9PmUoQSwiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCxBR0Z6YlFFQUFBQUJWZzFnQkg5L2YzOEJmMkFGZjM5L2YzOEFZQU4vZjM4QVlBSi9md0JnQW45L0FYOWdCbjkvZjM5L2Z3Ri9ZQVIvZjM5L0FHQUJmd0YvWUFGL0FHQURmMzkvQVg5Z0FuOS9BWDVnQW41K0FYNWdCSDkvZm40QUF5SWhCd0lIQXdnREJnb0FBd1FFQkFJR0JBZ0FBQUlDQkFrR0F3SUFCUUVMREFNSkJBVUJjQUVFQkFVREFRQVJCZ2tCZndGQmdJREFBQXNIUkFZR2JXVnRiM0o1QWdBS1lXeHNiMk5WYVc1ME9BQUFDMkZzYkc5alZXbHVkREUyQUFJRVpuSmxaUUFEQ0dOdmJYQnlaWE56QUFvS1pHVmpiMjF3Y21WemN3QVJDUWtCQUVFQkN3TWFHeHdLbWtRaFBBRUJmeU1BUVJCcklnRWtBQ0FCUVppQXdBQXBBd0EzQXdBZ0FVRUlhaUFCSUFBUUFTQUJMd0VNUlFSQUlBRW9BZ2dnQVVFUWFpUUFEd3NBQzBZQkFYOGpBRUVRYXlJREpBQWdBQ0FDQkg0Z0FTZ0NBQ0FDUVFCQkFDQUJLQUlFS0FJQUVRQUFJZ0d0SUFGRnJVSWdob1FGUXYvLy8vOFBDemNDQUNBRFFSQnFKQUFMWXdJQ2Z3RitJd0JCRUdzaUFTUUFJQUVnQUVFQVNDSUNPZ0FNQWtBZ0FnMEFBa0FnQUVFQmRDSUFSUVJBUVg0aEFBd0JDMEdZZ01BQUtRTUFJZ09uSUFCQkFVRUFJQU5DSUlpbktBSUFFUUFBSWdCRkRRRUxJQUZCRUdva0FDQUFEd3NBQ3k0QUlBRUVRRUdZZ01BQUtBSUFJQUJCcXRXcTFYb2dBUnNnQVVFQVFRQkJuSURBQUNnQ0FDZ0NDQkVCQUFzTEN3QWdBQ0FBUVF4cUVBVUxWQUVDZnlBQUtBSUFJZ0lFUUNBQ1FReHJJZ05CQ0dvb0FnQkJEV3hCRDJwQmZIRWlBZ1JBSUFFb0FnQWdBMEVFSUFJYklBSkJBa0VBSUFFb0FnUW9BZ2dSQVFBTElBQkJBRFlDQ0NBQVFRQTJBZ0FMQzdrQ0FnaC9BbjRqQUVFUWF5SUVKQUFnQVNnQ0FDRUZBa0FnQVNnQ0JFVUVRRUdBZ01BQUlRWU1BUXNnQlVFSWF5RUpJQUlnQXhBSElneW5JQVVFZnlBRlFRUnJLQUlBSWdoQkFXc0ZRWDhMSWdweElRRWdERUk1aUtjaEN3TkFRWUNBd0FBaEJpQUJJQVZxTEFBQUlnZEZEUUVnQ0VVTkFRSkFJQWRCQUU0TkFDQUxJQWRCL3dCeFJ3MEFJQUlnQXlBSktBSUFJQUZCQTNScUlnY29BZ0FnQnlnQ0JCQUlRUUZ4UlEwQUlBUkJBVG9BRENBRUlBRTJBZ2dnQkVFSWFpRUdEQUlMSUFoQkFXc2hDQ0FCUVFGcUlBcHhJUUVNQUFzQUN5QUdMUUFFQkg0Z0JDQUZRUXhyS0FJQUlBWW9BZ0JCQW5ScUlnRkJBbW90QUFCQkQzRTZBQUlnQkNBQkx3RUFPd0VBUW9DQWdJQVFJUTBnQkRNQkFDQUVNUUFDUWhDR2hBVkNBQXNoRENBQUlBd2dEWVEzQWdBZ0JFRVFhaVFBQytJS0FndCtBWDhqQUVGQWFpSU5KQUFnQWEwaEF3SitJQUZCSUUwRVFDQUJRUkZKQkVBZ0FVRUlUd1JBSUFOQ0FZWkNzZisrZzgyNHBZL2xBSDBpQWlBQUlBRnFRUWhyS1FBQUlnVWdBQ2tBQUVLeC83NkR6YmlsaitVQWZTSUVRaWVKZkg0aEF5QUNJQUlnQXlBRElBVkNHNGtnQW40Z0JIeUZJQUorSWdSQ0w0aUZJQVNGZmlJRFFpK0lJQU9GZmd3REN5QUJRUVJQQkVBZ0EwSUJoa0t4Lzc2RHpiaWxqK1VBZlNJQ0lBQWdBV3BCQkdzMUFBQWlCQ0FBTlFBQVFnT0dJQU44aFg0aEF5QUNJQU5DTDRnZ0JJVWdBNFVnQW40aUEwSXZpQ0FEaFg0TUF3dEN6NERCL0xMSDJ2Q2FmeUFCUlEwQ0dpQUFJQUZxUVFGckxRQUFRUUowSUFGcXJVS240cXkreVl2eTBrTitJQUF4QUFBZ0FDQUJRUUYyYWpFQUFFSUlob1JDejREQi9MTEgydkNhZjM2RklnSkNMNGdnQW9WQ3o0REIvTExIMnZDYWYzNE1BZ3NnQTBJQmhrS3gvNzZEemJpbGorVUFmU0lDSUFBZ0FXb2lBVUVJYXlrQUFINGlCQ0FBS1FBQVF2UGs0L1Q3emEzSnRIOStJZ1lnQUNrQUNDSUZRckgvdm9QTnVLV1A1UUI5UWk2SmZId2hBeUFDSUFJZ0F5QURJQVJDSW9rZ0JTQUdmRUlWaVh3Z0FVRVFheWtBQUVMUGdNSDhzc2ZhOEpwL2ZueUZJQUorSWdSQ0w0aUZJQVNGZmlJRFFpK0lJQU9GZmd3QkN5QUJRY0VBVHdSQUlBQWdBV29pQVVFb2F5a0FBQ0VISUFGQk9Hc3BBQUFoQkNBQlFSQnJLUUFBSVFnZ0RTQUJRVUJxSUFNZ0FVRXdheWtBQUNBRGZDQUJRUmhyS1FBQUVCMGlBaEFlSUEwcEF3Z2hCU0FOS1FNQUlRWWdEVUVRYWlBQlFTQnJJQVFnQ0h3aUJFS05tNXlMaExMU3Rzc0FmU0FIRUI1Q0FDQURRZ0Y5UWtDRGZTRUtJQUFwQUFBZ0IwTHo1T1AwKzgydHliUi9mbndoQ1NBTktRTVlJUWNnRFNrREVDRUlBMEFnQUNrQU1DRU1JQUFwQUNnaEN5QU5RU0JxSUFBZ0JVTHo1T1AwKzgydHliUi9maUFBS1FBSUlBUWdCbndnQ1h4OFFodUpRdlBrNC9UN3phM0p0SDkrSUFlRklnTWdDSHdRSGlBR0lBdDhJUXNnQkNBRmZDRUVJQTBwQXlnaEJTQU5LUU1nSVFZZ0RVRXdhaUFBUVNCcUlBSWdDSHhDSDRsQzgrVGo5UHZOcmNtMGYzNGlDU0FIZkNBTElBUWdESHhDRm9sQzgrVGo5UHZOcmNtMGYzNThJZ1FnQUNrQUVId1FIaUFBUVVCcklRQWdEU2tET0NFSElBMHBBekFoQ0NBRElRSWdDa0pBZlNJS1FnQlNEUUFMSUFZZ0NCQWRJQVJDTDRnZ0JJVkM4K1RqOVB2TnJjbTBmMzRnQW54OElBVWdCeEFkSUFsOEVCME1BUXNnQTBJQmhrS3gvNzZEemJpbGorVUFmU0lESUFBZ0FXb2lBVUVRYXlrQUFINGhCQ0FBS1FBWVFnbCtJZ1lnQUNrQUVFTFBnTUg4c3NmYThKcC9mbndpQnlBQlFSaHJLUUFBSWdKOElRVWdCaUFCUVNCcktRQUFJZ2dnQVVFSWF5a0FBQ0lKSUFBcEFBQkN6NERCL0xMSDJ2Q2FmMzU4SWdxRmZFSUJmQ0VHSUFkQ0Zva2dBbndpQnlBRklBbDhmQ0FFSUFaOElBWWdBQ2tBQ0NJSlFpS0pJQUo4UWdsK0lBcENGWWw4ZkNBRGZpSUNRamlHSUFKQ2dQNERnMElvaG9RZ0FrS0FnUHdIZzBJWWhpQUNRb0NBZ1BnUGcwSUlob1NFSUFKQ0NJaENnSUNBK0ErRElBSkNHSWhDZ0lEOEI0T0VJQUpDS0loQ2dQNERneUFDUWppSWhJU0VmQ0FEZmlJQ1FqaUdJQUpDZ1A0RGcwSW9ob1FnQWtLQWdQd0hnMElZaGlBQ1FvQ0FnUGdQZzBJSWhvU0VJQUpDQ0loQ2dJQ0ErQStESUFKQ0dJaENnSUQ4QjRPRUlBSkNLSWhDZ1A0RGd5QUNRamlJaElTRWZDQURmaUVDSUFRZ0NId2dCU0FKZkNBQ1FqaUdJQUpDZ1A0RGcwSW9ob1FnQWtLQWdQd0hnMElZaGlBQ1FvQ0FnUGdQZzBJSWhvU0VJQUpDQ0loQ2dJQ0ErQStESUFKQ0dJaENnSUQ4QjRPRUlBSkNLSWhDZ1A0RGd5QUNRamlJaElTRWZDQURmbndpQWlBQ1FpK0loU0FEZmlBSGZBc2dEVUZBYXlRQUM1WUJBUVYvQWtBZ0FTQURSdzBBSUFGQkFuWkJBV29oQlNBQ0lRTWdBQ0VFQTBBZ0JVRUJheUlGQkVBZ0F5Z0FBQ0FFS0FBQUlBTkJCR29oQXlBRVFRUnFJUVJHRFFFTUFnc0xJQUZCQTNFaEF5QUFJQUZCZkhFaUFHb2hCQ0FBSUFKcUlRVURRQ0FEUlNJQUlRZ2dBQTBCSUFOQkFXc2hBeUFGTFFBQUlBUXRBQUFnQkVFQmFpRUVJQVZCQVdvaEJVWU5BQXNMSUFnTG53SUJBMzhDUUNBQUxRQWNJZ0pCRkU4TkFDQUFLQUlZUVlBQ2FrRi9JQUowUVg5elNRMEFJQUFnQWtFQmFpSUNPZ0FjQ3lBQUFuOGdBa0gvQVhGQndBQWdBQzBBSFNJRGF5SUVRZjhCY1UwRVFDQUFLQUlBSUFBb0FnUkJBM1JxUVFocklnUWdCQ2tEQUNBQnJVTC8veitEUVFBZ0FpQURhbXRCUDNHdGhvUTNBd0FnQUMwQUhDQUFMUUFkYWd3QkN5QURRY0FBUndSQUlBQW9BZ0FnQUNnQ0JFRURkR3BCQ0dzaUF5QURLUU1BSUFGQi8vOC9jU0FDSUFScmRxMkVOd01BSUFBdEFCd2hBZ3NnQUNBQUtBSUVJZ05CQVdvMkFnUWdBQ2dDQUNBRFFRTjBhaUFCclVMLy96K0RJQVFnQW10QlAzR3RoamNEQUNBQUxRQWNJQVJyQ3pvQUhTQUFJQUFvQWhSQkFXbzJBaFFnQUNBQUtBSVlRUUZxTmdJWUMrMFJBdzkvQlgwQmZpTUFRYUFHYXlJQ0pBQUNmd0pBQWtBZ0FVVUVRQ0FDUVFrN0FZUUdJQUpDQURjQy9BVWdBa0VBTmdMd0JTQUNRcXJWcXRVS053TG9CU0FDUVppQXdBQXBBd0EzQXZRRklBSkI2QVZxUVFFUUMwSC8vd054RFFFZ0FpZ0M2QVVnQWlnQzdBVWlBRUVEZEdwQ0FEY0RBQ0FDUVRCcUlBSkI4QVZxS1FJQU53TUFJQUpCT0dvZ0FrSDRCV29wQWdBM0F3QWdBa0ZBYXlBQ1FZQUdhaWtDQURjREFDQUNJQUJCQVdvMkF1d0ZJQUlnQWlrQzZBVTNBeWdNQWdzZ0FrSFFBR3BCQURZQ0FDQUNRZ0EzQTBnZ0FrR1lnTUFBS1FNQUloWTNBbFFnQWtIVUFHb2hEQU5BSUFSQmdBUkhCRUFnQWtIY0FHb2dCR3BCQWpzQkFDQUVRUUpxSVFRTUFRc0xJQUlnRmpjQzlBVWdBa0VBTmdMd0JTQUNRcXJWcXRVS053TG9CUUpBSUFKQjZBVnFRUlFDZndKQUFrQWdBYk5EQUFDQVA1SWlFcndpQkVHQWdJQUVTQVJBUXdBQXdIOURBQUNBL3lBRVFmLy8vLzhIY1NJREd5RVJJQVJCQUVnTkFpQURSUTBDSUJKREFBQUFUSlM4SVFSQjZINGhBd3dCQ3lBU0lSRWdCRUgvLy8vN0Iwc05BVUdCZnlFRFF3QUFBQUFoRVNBRVFZQ0FnUHdEUmcwQkN5QUVRWTMycXdKcUlnUkIvLy8vQTNGQjg0blUrUU5xdmtNQUFJQy9raUlSSUJGREFBQUFQNVNVSVJJZ0VTQVJRd0FBQUVDU2xTSVVJQlNVSWhVZ0ZaUWhFeUFSSUJFZ0VwTzhRWUJnY2I0aUVaTWdFcE1nRkNBU0lCVWdFMFB1NlpFK2xFT3FxaW8va3BRZ0V5QVRReWFlZUQ2VVF4UE96RDZTbEpLU2xKSWhFaUFSUXdDd3VEK1VJQkpEQUxDNFA1UWdFaUFSa2tQVW1qaTVsSktTSUFNZ0JFRVhkbXF5a2lFUkN5QVJRd0FBZ0U5ZElCRkRBQUFBQUdCeEJFQWdFYWtNQVF0QkFBc2lBeUFEUVJSUEd5QUJiRUZBYTBFR2RrRUJhaEFNUWYvL0EzRU5BQ0FDS0FMd0JTRURJQUlwQXZRRklSWWdBaWdDNkFVaUJDQUNLQUxzQlNJSlFRTjBha0lBTndNQUlBSkJDVHNCK0FRZ0FrSUFOd0x3QkNBQ0lCWTNBdWdFSUFJZ0F6WUM1QVFnQWlBRU5nTGNCQ0FDUVFBN0Fmd0VJQUpCQURvQS9nUWdBaUFKUVFGcU5nTGdCQ0FCUVFGcUlROGdBRUVCYXlFUVFZQUNJUWxCQWlFRUEwQWdBQ0FLYWlFRkFuOENRQUpBQWtBQ1FDQUNRZHdFYWdKL0EwQWdCQ0FLYWlJTklBRlBEUUlnQWtHQUJXb2dBa0hJQUdvZ0JTQUVFQVlDUUNBQ0xRQ0VCVVVFUUNBRVFRSkhEUUVnQlMwQUFBd0RDeUFDSUFJdEFJSUZPZ0QrQkNBQ0lBSXZBWUFGT3dIOEJDQUVRUUZxSVFRTUFRc0xJQUl2QWZ3RUlBSXRBUDRFUVJCMGNnc1FDU0FDUWR3QWFpQUZMUUFBUVFGMGFpSUdMd0VBSVFNZ0JpQURJQVJCQVd0Qi8vOERjU0lHSUFNZ0Jrc2JPd0VBSUFsQi8vOC9jVUgvL3o5R0JFQWdBaWdDU0NJRFJRMEVJQU1nQTBFRWF5Z0NBQ0lERUI4Z0FrRUFOZ0pNSUFJZ0E2MUMwQUIrUXVRQWdENENVQXdFQ3lBQ1FjZ0FhaUFGSUFRUURTQUNLQUpRRFFJZ0FpZ0NTQ0lHQkg4Z0JrRUVhelVDQUVMUUFINGlGaUFXUXVRQWduMUM1QUI4UXRBQWdLY0ZRUUVMSVFNZ0FrSHdCV29pRGtFQU5nSUFJQUpDQURjRDZBVkJDRUlCUVNBZ0EyZHJyWWFuSWdNZ0EwRUlUUnNpQjBFUGFpRUlBa0FDUUNBSUlBZEJBM1JxSWdzZ0IwRUNkR3BCZkhFaUEwVUVRRUY4SVFNTUFRc2dBaWtDVkNJV3B5QURRUUpCQUNBV1FpQ0lweWdDQUJFQUFDSURSUTBCQ3lBRElBYzJBZ2dnQXlBRElBaEJmSEZxTmdJRUlBTWdBeUFMUVh4eGFqWUNBQ0FDSUFOQkRHb2lBellDNkFVZ0F5QUhFQjhnQWlBSHJVTFFBSDVDNUFDQVBnTHdCU0FDS0FKTUlndEZEUUlnQmdSL0lBWkJCR3NvQWdBRlFRQUxJUU1nQmtFTWF5SUlLQUlBSVFjZ0NFRUVhaWdDQUNFSUEwQWdBMFVOQXlBR0xBQUFRUUJJQkVBZ0FrSG9CV29nQ0NnQ0FDQUlRUVJxS0FJQUlBY3ZBUUFnQjBFQ2FpMEFBRUVRZEhJUURpQUNLQUxzQlNBTFJnMEVDeUFEUVFGcklRTWdCa0VCYWlFR0lBaEJDR29oQ0NBSFFRUnFJUWNNQUFzQUN5QUNRZWdGYWlBTUVBVU1CZ3NnQWtIY0JHb0NmeUFCSUFwQkFXcE5CRUFnQlMwQUFBd0JDeUFDUWJnRmFpQUNRZGdBYWlnQ0FEWUNBQ0FDUWJBRmFpQUNRZEFBYWlrREFEY0RBQ0FDSUFJcEEwZzNBNmdGSUFKQndBVnFJQUpCcUFWcUlBVWdCQkFHSUFKQjNBUnFBbjhDUUNBQ0xRREVCVVVFUUNBRVFRSkhEUUVnQlMwQUFBd0NDeUFDTHdIQUJTQUNMUURDQlVFUWRISU1BZ3NnQWtIWUJXb2dBa0hZQUdvb0FnQTJBZ0FnQWtIUUJXb2dBa0hRQUdvcEF3QTNBd0FnQWlBQ0tRTklOd1BJQlNBQ1FlQUZhaUFDUWNnRmFpQUZJQVJCQVdzUUJpQUNMd0hnQlNBQ0xRRGlCVUVRZEhJTEVBa2dCQ0FGYWtFQmF5MEFBQXNRQ1NBQ1FjZ0FhaEFFSUFKQlFHc2dBa0gwQkdvcEFnQTNBd0FnQWtFNGFpQUNRZXdFYWlrQ0FEY0RBQ0FDUVRCcUlBSkI1QVJxS1FJQU53TUFJQUlnQWlrQzNBUTNBeWdNQndzZ0FrSFFBR29pQXlnQ0FDRUdJQU1nRGlnQ0FEWUNBQ0FPSUFZMkFnQWdBa0VBTmdKTUlBSXBBMGdoRmlBQ0lBSXBBK2dGTndOSUlBSWdGamNENkFVZ0FrSG9CV29nREJBRkN5QUNRY2dBYWlBRklBUWdDUkFPSUFsQkFXb01BUXRCQUNFREEwQWdBMEdBQkVjRVFDQUNRZHdBYWlBRGFrRUNPd0VBSUFOQkFtb2hBd3dCQ3dzZ0FrSGNCR3BCLy84L0VBa2dBa0VBTmdMMEJDQUNRUWs2QVBnRVFZQUNDeUVKSUE4Z0Ntc2dCR3NpQXlBQ1Fkd0FhaUFOSUJCcUlnWXRBQUJCQVhScUx3RUFJZ1FnQXlBRVNSc2hBeUFOUVFGcklRcEJBaUVFQTBBZ0F5QUVheUlGUVFWSkRRRWdBa0dZQldvZ0FrSFlBR29vQWdBMkFnQWdBa0dRQldvZ0FrSFFBR29wQXdBM0F3QWdBaUFDS1FOSU53T0lCU0FDUWFBRmFpQUNRWWdGYWlBR0lBVkJBWFlnQkdvaUJSQUdJQVVnQkNBQ0xRQ2tCU0lIR3lFRUlBTWdCU0FIR3lFRERBQUxBQXNBQ3lBQ1FjZ0FhaEFFQzBGL0RBRUxJQUpCSUdvZ0FrRkFheWtEQURjREFDQUNRUmhxSUFKQk9Hb3BBd0EzQXdBZ0FrRVFhaUFDUVRCcUtRTUFOd01BSUFJZ0Fpa0RLRGNEQ0VGL0lBSkJDR29nQWlnQ0RDSURRUUpxRUF0Qi8vOERjUTBBR2lBQ0tBSUlJZ0FnQWlnQ0RFRURkR29pQ1NBQ05RSWNJQUd0UWlDR2hEY0RBQ0FKUVFocUlBTkJBM1JCQ0dvaUFhMGdBalVDRUVJamhvUTNBd0FnQUNBQmFnc2dBa0dnQm1va0FBc2VBUUYvSUFBb0FnZ2lBaUFCU1FSL0lBQWdBaUFCRUE4UURBVkJBQXNMckFJQ0JuOEJmaU1BUVJCcklnUWtBQUpBSUFBb0FnZ2lBeUFCVHcwQUlBQW9BZ0FoQlFKQUlBTkZEUUFnQkNBQlFmLy8vLzhCU3pvQUNDQUJRWUNBZ0lBQ1R3MEFJQUFvQWd3Z0JTQURRUU4wUVFNZ0FVRURkRUVBSUFCQkVHb29BZ0FvQWdRUkJRQkJBWEZGRFFBZ0FDQUJOZ0lJREFFTElBQXBBZ3doQ0NBRUlBRkIvLy8vL3dGTE9nQU1Ba0FnQVVHQWdJQ0FBazhOQUFKQUlBRkJBM1FpQWtVRVFFRjRJUUlNQVFzZ0NLY2dBa0VEUVFBZ0NFSWdpS2NvQWdBUkFBQWlBa1VOQVFzZ0FpQUFLQUlBSUFBb0FnUkJBM1FRSUNFR1FRQWhBaUFEUVFOMFFRQWdBeHNpQndSQUlBQW9BZ3dnQlVFSUlBTWJJQWRCQTBFQUlBQkJFR29vQWdBb0FnZ1JBUUFMSUFBZ0FUWUNDQ0FBSUFZMkFnQU1BUXRCQVNFQ0N5QUVRUkJxSkFBZ0FndmVBUUlJZndGK0l3QkJFR3NpQkNRQUFrQWdBQ2dDQkVVRVFFR0FnTUFBSVFVTUFRc2dBQ2dDQUNJR1FRaHJJUWdnQVNBQ0VBY2lDNmNnQmdSL0lBWkJCR3NvQWdBaUIwRUJhd1ZCZndzaUNYRWhBQ0FMUWptSXB5RUtBMEJCZ0lEQUFDRUZJQUFnQm1vc0FBQWlBMFVOQVNBSFJRMEJBa0FnQTBFQVRnMEFJQW9nQTBIL0FIRkhEUUFnQVNBQ0lBZ29BZ0FnQUVFRGRHb2lBeWdDQUNBREtBSUVFQWhCQVhGRkRRQWdCRUVCT2dBTUlBUkJDR29oQlF3Q0N5QUhRUUZySVFjZ0FFRUJhaUFKY1NFQURBQUxBQXNnQlMwQUJCb2dCRUVRYWlRQUM4Z0JBZ1IvQVg0Z0FDQUJJQUlRRFVGL0lRVWdBU0FDRUFjaUNLY2dBQ2dDQUNJR0JFQWdCa0VFYXlnQ0FFRUJheUVGQ3lBRmNTRUVBMEFnQkNBR2FpSUhMQUFBUVFCSUJFQWdCRUVCYWlBRmNTRUVEQUVMQ3lBQUlBQW9BZ2hCQVdzMkFnZ2dCeUFJUWptSXAwR0FBWEk2QUFBZ0FDZ0NBRUVJYXlnQ0FDQUVRUU4wYWlJRklBSTJBZ1FnQlNBQk5nSUFJQUFvQWdCQkRHc29BZ0FnQkVFQ2RHb2lBU0FET3dFQUlBRkJBbW9nQTBILy96OXhRUkIyT2dBQUlBQWdBQ2dDQkVFQmFqWUNCQXNsQVFGL0EwQWdBVUYvSUFCQkFYWWdBR3BCQ0dvaUFpQUFJQUpMR3lJQVN3MEFDeUFBQzFzQkJIOGpBRUVRYXlJQkpBQWdBU0FBS1FJTU53TUlJQUFvQWdBaEFpQUFLQUlJSWdCQkEzUkJBQ0FBR3lJREJFQWdBVUVJYWlJRUtBSUFJQUpCQkNBQUd5QURRUUpCQUNBRUtBSUVLQUlJRVFFQUN5QUJRUkJxSkFBTDhRb0NDMzhCZmlNQVFkQUFheUlFSkFBZ0JFRUFOZ0pFSUFSQ3F0V3ExUW8zQWp3Z0JFR1lnTUFBS1FNQUlnODNBa2dDZndKQUFuOUJxdFdxMVhvZ0FrVU5BQm9nQWlFTFFhclZxdFY2SUFSQnlBQnFJZ0ZCcXRXcTFYcEJBQ0FDRUJKQkFYRU5BQm9nQkVFb2FpQUJJQUlRRXlBRUx3RXdEUUVnQkNnQ0xDRUxJQVFvQWlnTElRZEJDU0VJQTBBQ1FBSkFBa0FDUUNBQ0lBbEhCRUFnQ0VIL0FYRWlBVUVVU1EwQkRBUUxJQVFnRHpjRElBSkFJQVJCSUdvZ0J5QUxJQUlRRWtFQmNRUkFJQWNoQ0F3QkN5QUVRVHhxSUFSQklHb2dBaEFUSUFRdkFVUU5CaUFFS0FJOElnZ2dCeUFFS0FKQUlnSkJBblFRSUJvZ0JDQVBOd01vSUFSQktHb2dCeUFMRUJRTElBSkZCRUJCQUNFRlFhclZxdFY2SVFaQkFDRUpEQUlMSUFSQkFEWUNNQ0FFUXFyVnF0VUtOd0lvSUFRZ0R6Y0NOQ0FFUVFCQi8vOC9FQThpQUVILy8vLy9BVXM2QUR3Z0FFR0FnSUNBQWs4TkFnSkFJQUJCQTNRaUFVVUVRRUY4SVFjTUFRc2dENmNnQVVFQ1FRQWdEMElnaUtjb0FnQVJBQUFpQjBVTkF3c2dCQ0FBTmdJd0lBUWdCellDS0VFQUlRRURRQ0FCUWZqLy93TkhCRUFnQVNBSGFrSUFOd0lBSUFGQkNHb2hBUXdCQ3dzZ0JFSC8vejgyQWl3Z0JDQVBOd0pJUVFBaEFTQUVRUUEyQWtRZ0JFS3ExYXJWQ2pjQ1BDQUVRVHhxSUFOQkFuUVFGVUgvL3dOeERRSWdCQ2tDU0NFUElBUW9Ba1FoQ1NBRUtBSThJZ1lnQkNnQ1FDSUFhaUFJTFFBQU9nQUFJQWNnQ0M4QkFDQUlRUUpxTFFBQVFSQjBja0VEZEdvaUEwRUJOZ0lFSUFNZ0JqWUNBQ0FBUVFGcUlRQkJnQUloQTBFQklRb0RRQ0FBSVFVQ2Z3Si9Ba0FDUUNBQ0lBcE5EUUFnQ0NBS1FRSjBhaUlBTHdFQUlBQkJBbW90QUFCQkVIUnlJZ0JCLy84L1JnUkFJQXBCQVdvaUNpQUNUdzBCUVFBaEFRTkFJQUZCK1AvL0EwY0VRQ0FCSUFkcVFnQTNBZ0FnQVVFSWFpRUJEQUVMQ3lBSUlBcEJBblJxSWdBdkFRQWdBRUVDYWkwQUFFRVFkSElpQUVHQUFrOEVRQ0FFUWYvL1B6WUNMQXdKQ3lBRklBWnFJQUE2QUFBZ0JVRUJhaUVBUVlBQ0RBUUxJQUJCZ0FKSkRRRWdCeUFBUVFOMGFpSUFLQUlBSWd0RkJFQWdCU0FHYWlBQklBWnFJZ0FnQlNBQmF5SUxFQ0FhSUFVZ0Myb2lDeUFHYWlBQUxRQUFPZ0FBSUF0QkFXb01Bd3NnQlNBR2FpQUxJQUFvQWdRaUFCQWdHaUFBSUFWcURBSUxJQVJCLy84L05nSXNJQVJCS0dvUUVBd0ZDeUFGSUFacUlBQTZBQUFnQlVFQmFnc2hBQ0FISUFOQi8vOC9jVUVEZEdvaUN5QUZJQUZyUVFGcU5nSUVJQXNnQVNBR2FqWUNBQ0FEUVFGcUN5RURJQXBCQVdvaENpQUZJUUVNQUFzQUN5QUlJQTFCZ0FKcVFYOGdBWFJCZjNOUGFpRUlEQUlMSUFRZ0R6Y0NHQ0FFSUFZMkFnd2dCQ0FGTmdJUUlBUWdDVFlDRkNBRlFRaHFJZ0VnQ1UwRWZ5QUZCVUYvSUFSQkRHb2dDU0FCRUE4UUZVSC8vd054RFFVYUlBUW9BZ3doQmlBRUtBSVVJUWtnQkNnQ0VBc2dCbW9pQUNBRk9nQUFJQUJCQjJvZ0NVRVlkam9BQUNBQVFRWnFJQWxCRUhZNkFBQWdBRUVGYWlBSlFRaDJPZ0FBSUFCQkJHb2dDVG9BQUNBQVFRTnFJQVZCR0hZNkFBQWdBRUVDYWlBRlFSQjJPZ0FBSUFCQkFXb2dCVUVJZGpvQUFDQUZJQVpxREFRTElBUkJLR29RRUF3Q0MwRUFJUW9nQ0NFQkEwQWdBVUgvQVhFaURBUkFJQVZCL3dGeFFjQUFSaUlPSUFacUlRWWdBU0FNUWNBQVFRQWdCU0FPR3lJRmEwSC9BWEVpQVNBQklBeExHeUlNYXlFQklBb2dBQ0FHUVFOMGFpa0RBQ0FGUVQ5eHJZWkJBQ0FNYTBFL2NhMklweUFCZEhJaENpQUZJQXhxSVFVTUFRc0xJQWNnQ1VFQ2RHb2lBU0FLT3dFQUlBRkJBbW9nQ2tILy96OXhJZ0ZCRUhZNkFBQkJBQ0FOUVFGcUlBRkIvLzgvUmlJQkd5RU5RUWtnQ0NBQkd5RUlJQWxCQVdvaENRd0FDd0FMUVg4TElBUkIwQUJxSkFBTGR3RUNmeU1BUVJCcklnUWtBQUpBSUFORkJFQWdCQ0FBS1FJQU53TUFJQVFnQVNBQ0VCUkJBU0VGREFFTElBSkZEUUFnQkNBRFFmLy8vLzhEU3pvQURDQURRWUNBZ0lBRVR3MEFJQUFvQWdBZ0FTQUNRUUowUVFJZ0EwRUNkRUVBSUFBb0FnUW9BZ1FSQlFBaEJRc2dCRUVRYWlRQUlBVUxyQUVDQVg4QmZpTUFRU0JySWdNa0FDQUJLUUlBSVFRZ0F5QUNRZi8vLy84RFN6b0FIQ0FBQW44Q1FDQUNRWUNBZ0lBRVR3MEFBa0FnQWtFQ2RDSUJSUVJBUVh3aEFRd0JDeUFFcHlBQlFRSkJBQ0FFUWlDSXB5Z0NBQkVBQUNJQlJRMEJDeUFESUFJMkFoUWdBeUFCTmdJUUlBTkJBRHNCR0NBRFFSQnFEQUVMSUFOQkFUc0JEQ0FEUVFScUN5SUJLUUlBTndJQUlBQkJDR29nQVVFSWFpZ0NBRFlDQUNBRFFTQnFKQUFMTUFFQmZ5QUNRUUowUVFBZ0Foc2lBd1JBSUFBb0FnQWdBVUVFSUFJYklBTkJBa0VBSUFBb0FnUW9BZ2dSQVFBTEM5UUJBUVYvSXdCQklHc2lBaVFBQWtBZ0FDZ0NDQ0lESUFGUERRQWdBQ2dDQUNFRkFrQUNRQ0FEUlEwQUlBQW9BZ3dnQlNBRFFRQWdBVUVBSUFCQkVHb29BZ0FvQWdRUkJRQkJBWEZGRFFBZ0FDQUJOZ0lJREFFTElBSWdBRUVNYWlJR0tRSUFOd01RSUFKQkdHb2dBa0VRYWlBQkVBRWdBaThCSENJRURRRWdBaWdDR0NBQUtBSUFJQUFvQWdRUUlDRUVJQU1FUUNBR0tBSUFJQVZCcXRXcTFYb2dBeHNnQTBFQVFRQWdCaWdDQkNnQ0NCRUJBQXNnQUNBQk5nSUlJQUFnQkRZQ0FBdEJBQ0VFQ3lBQ1FTQnFKQUFnQkF1NkFnSU5md0YrSXdCQkVHc2lCU1FBSUFBb0FnUWhDQ0FBS0FJQUlRa2dBa0gvQVhFaENnTkFBa0FDUUNBRUlBaEdCRUJCZnlFRERBRUxJQWtnQkVFRWRHb2lBa0VJYWlrREFDSVFRZ0JaQkVBZ0Fpa0RBSHNnRUh0OHB5QUJTUTBDQ3lBRVFRZDBJZ05CZ0FGcUlRc0RRQ0FESUF0UERRSWdBeUFBS1FJQUloQkNHWWluUVlCL2NTSUNJQUlnQTBrYklnd2dBMnNoRFNBUXAwRUlJQkJDSUlpbkd5RU9JQU5CRUhSb0lROUJBQ0VDQWtBRFFDQUNJQTFHQkVBZ0RDRUdEQUlMSUFJZ0Eyb2lCa0VIY1NFSElBNGdCa0VEZG1vdEFBQkJBU0FIZEVIL0FTQUhRUWR6ZG5GeFJRMEJJQUpCQVdvaUFpQUJTUTBBSUFvZ0Qwc05BQXNnQlNBUU53TUlJQVZCQ0dvZ0F5QUJRUUFRRnd3Q0N5QUdRUUZxSVFNTUFBc0FDeUFGUVJCcUpBQWdBdzhMSUFSQkFXb2hCQXdBQ3dBTFVRRUJmeUFEUVFGeElRTURRQ0FDQkVBZ0FVRURkaUFBS0FJQVFRZ2dBQ2dDQkJ0cUlnUWdCQzBBQUVGK0lBRkJCM0VpQkhkeElBTWdCSFJ5T2dBQUlBRkJBV29oQVNBQ1FRRnJJUUlNQVFzTEM1d0JBUUovSXdCQkVHc2lBaVFBSUFCQmdCQkpCRUJCcUlEQUFDQUFRWUFRSUFFZ0FVR0FFRThiSUFCckVCa0xJQUZCZ0JCTEJFQkJwSURBQUNnQ0FFVUVRRUdrZ01BQVFZQWdOZ0lBUWFDQXdBQWdBVUVCYXlJQlFSQjBJZ00yQWdBZ0EwR0FnQVFRSHdzZ0FrR2dnTUFBS1FNQU53TUlJQUpCQ0dwQmdCQWdBQ0FBUVlBUVRSc2lBRUdBRUdzZ0FTQUFheEFaQ3lBQ1FSQnFKQUFMS3dFQmZ5TUFRUkJySWdNa0FDQURJQUFwQWdBM0F3Z2dBMEVJYWlBQklBSkJBUkFYSUFOQkVHb2tBQXVYQVFBQ2YwRUFJQUZCZ1lCOFR3MEFHZ0pBUWFpQXdBQWdBVUgvL3dOcVFSQjJJZ0VnQWhBV0lnQkJmMGNOQUVHZ2dNQUFJQUVnQWhBV0lnQkJmMGNFUUNBQVFZQVFhaUVBREFFTFFRQWdBVDhBSWdGQkVIUWlBMEVCSUFKMElnSnFRUUZyUVFBZ0FtdHhJZ0lnQTJ0QkVIWWlBR3BBQUVFQVRBMEJHaUFBSUFGcUlRQWdBaUFEUmcwQUlBRWdBQkFZQ3lBQVFSQjBDd3RKQUFKQUlBSkIvLzhEYWlJQVFZQ0FmSEVnQkU4aUFrVU5BQ0FFUWYvL0EycEJFSFlpQXlBQVFSQjJJZ0JHRFFBZ0FVSC8vd05xUVJCMklnRWdBMm9nQUNBQmFoQVlDeUFDQ3gwQUlBRkIvLzhEYWtFUWRpSUFJQUFnQWtILy93TnFRUkIyYWhBWUN6NEFJQUFnQVlWQzZkcmcyWTdCK3UrZGYzNGlBRUl2aUNBQmhTQUFoVUxwMnVEWmpzSDY3NTEvZmlJQVFpK0lJQUNGUXVuYTRObU93ZnJ2blg5K0MwSUJBbjRnQUNBQktRQVFJQUVwQUFBZ0Fud2lBaUFCS1FBSWZId2lCQ0FCS1FBWUlnVjhOd01BSUFBZ0JFSVVpU0FDZkNBRklBSWdBM3g4UWl1SmZEY0RDQXNoQUNBQkJFQURRQ0FBUVFBNkFBQWdBRUVCYWlFQUlBRkJBV3NpQVEwQUN3c0xRd0VCZndKQUlBSkZEUUFnQWtFQmF5RUNJQUFoQXdOQUlBTWdBUzBBQURvQUFDQUNSUTBCSUFKQkFXc2hBaUFCUVFGcUlRRWdBMEVCYWlFRERBQUxBQXNnQUFzTEt3SUFRWWlBd0FBTENRRUFBQUFDQUFBQUF3QkJuSURBQUFzUkNBQVFBS3FxcXFvQUFBQUFNQUFRQUJBPSIpO2NvbnN0IGY9YXdhaXQgRygpLEM9Zi5leHBvcnRzO2Z1bmN0aW9uIGsoQSl7Y29uc3R7cHRyOkIsbGVuZ3RoOkl9PUYoQSxDKSxnPUMuY29tcHJlc3MoQixJKTtpZihDLmZyZWUoQixJKSxnPDApdGhyb3cgbmV3IEVycm9yKCJFcnJvciBjb21wcmVzc2luZyBzdHJpbmcuIik7Y29uc3R7c3RhcnQ6USxlbmQ6RSxjYXBhY2l0eTppfT13KEMubWVtb3J5LGcpLG89bmV3IFVpbnQxNkFycmF5KEMubWVtb3J5LmJ1ZmZlci5zbGljZShRLEUpKSxhPW4obyk7cmV0dXJuIEMuZnJlZShRLGkpLGF9ZnVuY3Rpb24gcihBKXtjb25zdCBCPShBLmNoYXJDb2RlQXQoQS5sZW5ndGgtMyk8PDE2KStBLmNoYXJDb2RlQXQoQS5sZW5ndGgtNCksST0oQS5jaGFyQ29kZUF0KEEubGVuZ3RoLTEpPDwxNikrQS5jaGFyQ29kZUF0KEEubGVuZ3RoLTIpLGc9QS5sZW5ndGgtNDtsZXQgUT1DLmFsbG9jVWludDE2KGcpLEU9bmV3IFVpbnQxNkFycmF5KEMubWVtb3J5LmJ1ZmZlcixRLGcpO2ZvcihsZXQgRD0wO0Q8ZztEKyspRVtEXT1BLmNoYXJDb2RlQXQoRCk7Y29uc3QgaT1DLmRlY29tcHJlc3MoUSxnLEIsSSk7aWYoQy5mcmVlKFEsMipnKSxpPDApdGhyb3cgbmV3IEVycm9yKCJFcnJvciBkZWNvbXByZXNzaW5nIHN0cmluZy4iKTtjb25zdHtzdGFydDpvLGVuZDphLGNhcGFjaXR5OnR9PXcoQy5tZW1vcnksaSkscz1uZXcgVWludDhBcnJheShDLm1lbW9yeS5idWZmZXIuc2xpY2UobyxhKSkseT1uZXcgVGV4dERlY29kZXIoKS5kZWNvZGUocyk7cmV0dXJuIEMuZnJlZShvLHQpLHl9c2VsZi5vbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7Y29uc3R7Y29tbWFuZDpCLGlkOkksZGF0YTpnfT1BLmRhdGE7c3dpdGNoKEIpe2Nhc2UiZGVjb21wcmVzcyI6e3NlbGYucG9zdE1lc3NhZ2Uoe2lkOkksZGF0YTpyKGcpfSk7YnJlYWt9Y2FzZSJjb21wcmVzcyI6e3NlbGYucG9zdE1lc3NhZ2Uoe2lkOkksZGF0YTprKGcpfSk7YnJlYWt9fX19KSgpOw==", V = typeof window < "u" && window.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);" + atob(l)], { type: "text/javascript;charset=utf-8" });
2
+ function d(Q) {
3
+ let U;
4
+ try {
5
+ if (U = V && (window.URL || window.webkitURL).createObjectURL(V), !U)
6
+ throw "";
7
+ const F = new Worker(U, {
8
+ type: "module",
9
+ name: Q?.name
10
+ });
11
+ return F.addEventListener("error", () => {
12
+ (window.URL || window.webkitURL).revokeObjectURL(U);
13
+ }), F;
14
+ } catch {
15
+ return new Worker(
16
+ "data:application/javascript;base64," + l,
17
+ {
18
+ type: "module",
19
+ name: Q?.name
20
+ }
21
+ );
22
+ }
23
+ }
24
+ const R = new d();
25
+ let J = 0;
26
+ const B = {};
27
+ R.onmessage = function(Q) {
28
+ const U = Q.data.id;
29
+ B[U](Q.data.data), delete B[U];
30
+ };
31
+ async function Z(Q) {
32
+ const U = J++;
33
+ return new Promise((F) => {
34
+ B[U] = F, R.postMessage({ command: "compress", id: U, data: Q });
35
+ });
36
+ }
37
+ async function S(Q) {
38
+ const U = J++;
39
+ return new Promise((F) => {
40
+ B[U] = F, R.postMessage({ command: "decompress", id: U, data: Q });
41
+ });
42
+ }
43
+ export {
44
+ Z as compress,
45
+ S as decompress
46
+ };
@@ -1,2 +1,2 @@
1
- export declare function compress(str: string): string;
2
- export declare function decompress(compressedStr: string): string;
1
+ export declare function compress(str: string): string;
2
+ export declare function decompress(compressedStr: string): string;
@@ -1,28 +1,81 @@
1
- import { i as w, c as a, e as k, U as h } from "./wasm-helper-C1VfMvbY.js";
2
- const J = (I) => w(I, "data:application/wasm;base64,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"), F = await J(), A = F.exports;
3
- function f(I) {
4
- const { ptr: g, length: Q } = a(I, A), E = A.compress(g, Q);
5
- A.free(g, Q);
6
- const { start: C, end: i, capacity: D } = k(A.memory, E), o = new Uint16Array(A.memory.buffer.slice(C, i)), G = h(o);
7
- return A.free(C, D), G;
8
- }
9
- function s(I) {
10
- const g = A.allocUint16(I.length), Q = new Uint16Array(
11
- A.memory.buffer,
12
- g,
13
- I.length
14
- );
15
- for (let B = 0; B < I.length; B++)
16
- Q[B] = I.charCodeAt(B);
17
- const E = A.decompress(
18
- g,
19
- I.length
20
- );
21
- A.free(g, 2 * I.length);
22
- const { start: C, end: i, capacity: D } = k(A.memory, E), o = new Uint8Array(A.memory.buffer.slice(C, i)), G = new TextDecoder().decode(o);
23
- return A.free(C, D), G;
24
- }
25
- export {
26
- f as compress,
27
- s as decompress
28
- };
1
+ function s(A, B) {
2
+ const I = new TextEncoder().encode(A), g = B.allocUint8(I.length);
3
+ return new Uint8Array(
4
+ B.memory.buffer,
5
+ g,
6
+ I.length
7
+ ).set(I), { ptr: g, length: I.length };
8
+ }
9
+ function n(A) {
10
+ const B = new Array(A.length);
11
+ for (let I = 0; I < A.length; I++)
12
+ B[I] = String.fromCharCode(A[I]);
13
+ return B.join("");
14
+ }
15
+ function a(A, B) {
16
+ const I = new Uint32Array(
17
+ A.buffer.slice(B, B + 8)
18
+ ), g = I.at(0), Q = I.at(1);
19
+ return {
20
+ start: B - g,
21
+ end: B,
22
+ capacity: Q
23
+ };
24
+ }
25
+ const G = async (A = {}, B) => {
26
+ let I;
27
+ if (B.startsWith("data:")) {
28
+ const g = B.replace(/^data:.*?base64,/, "");
29
+ let Q;
30
+ if (typeof Buffer == "function" && typeof Buffer.from == "function")
31
+ Q = Buffer.from(g, "base64");
32
+ else if (typeof atob == "function") {
33
+ const E = atob(g);
34
+ Q = new Uint8Array(E.length);
35
+ for (let i = 0; i < E.length; i++)
36
+ Q[i] = E.charCodeAt(i);
37
+ } else
38
+ throw new Error("Failed to decode base64-encoded data URL, Buffer and atob are not supported");
39
+ I = await WebAssembly.instantiate(Q, A);
40
+ } else {
41
+ const g = await fetch(B), Q = g.headers.get("Content-Type") || "";
42
+ if ("instantiateStreaming" in WebAssembly && Q.startsWith("application/wasm"))
43
+ I = await WebAssembly.instantiateStreaming(g, A);
44
+ else {
45
+ const E = await g.arrayBuffer();
46
+ I = await WebAssembly.instantiate(E, A);
47
+ }
48
+ }
49
+ return I.instance;
50
+ }, f = (A) => G(A, "data:application/wasm;base64,AGFzbQEAAAABVg1gBH9/f38Bf2AFf39/f38AYAN/f38AYAJ/fwBgAn9/AX9gBn9/f39/fwF/YAR/f39/AGABfwF/YAF/AGADf39/AX9gAn9/AX5gAn5+AX5gBH9/fn4AAyIhBwIHAwgDBgoAAwQEBAIGBAgAAAICBAkGAwIABQELDAMJBAUBcAEEBAUDAQARBgkBfwFBgIDAAAsHRAYGbWVtb3J5AgAKYWxsb2NVaW50OAAAC2FsbG9jVWludDE2AAIEZnJlZQADCGNvbXByZXNzAAoKZGVjb21wcmVzcwARCQkBAEEBCwMaGxwKmkQhPAEBfyMAQRBrIgEkACABQZiAwAApAwA3AwAgAUEIaiABIAAQASABLwEMRQRAIAEoAgggAUEQaiQADwsAC0YBAX8jAEEQayIDJAAgACACBH4gASgCACACQQBBACABKAIEKAIAEQAAIgGtIAFFrUIghoQFQv////8PCzcCACADQRBqJAALYwICfwF+IwBBEGsiASQAIAEgAEEASCICOgAMAkAgAg0AAkAgAEEBdCIARQRAQX4hAAwBC0GYgMAAKQMAIgOnIABBAUEAIANCIIinKAIAEQAAIgBFDQELIAFBEGokACAADwsACy4AIAEEQEGYgMAAKAIAIABBqtWq1XogARsgAUEAQQBBnIDAACgCACgCCBEBAAsLCwAgACAAQQxqEAULVAECfyAAKAIAIgIEQCACQQxrIgNBCGooAgBBDWxBD2pBfHEiAgRAIAEoAgAgA0EEIAIbIAJBAkEAIAEoAgQoAggRAQALIABBADYCCCAAQQA2AgALC7kCAgh/An4jAEEQayIEJAAgASgCACEFAkAgASgCBEUEQEGAgMAAIQYMAQsgBUEIayEJIAIgAxAHIgynIAUEfyAFQQRrKAIAIghBAWsFQX8LIgpxIQEgDEI5iKchCwNAQYCAwAAhBiABIAVqLAAAIgdFDQEgCEUNAQJAIAdBAE4NACALIAdB/wBxRw0AIAIgAyAJKAIAIAFBA3RqIgcoAgAgBygCBBAIQQFxRQ0AIARBAToADCAEIAE2AgggBEEIaiEGDAILIAhBAWshCCABQQFqIApxIQEMAAsACyAGLQAEBH4gBCAFQQxrKAIAIAYoAgBBAnRqIgFBAmotAABBD3E6AAIgBCABLwEAOwEAQoCAgIAQIQ0gBDMBACAEMQACQhCGhAVCAAshDCAAIAwgDYQ3AgAgBEEQaiQAC+IKAgt+AX8jAEFAaiINJAAgAa0hAwJ+IAFBIE0EQCABQRFJBEAgAUEITwRAIANCAYZCsf++g824pY/lAH0iAiAAIAFqQQhrKQAAIgUgACkAAEKx/76Dzbilj+UAfSIEQieJfH4hAyACIAIgAyADIAVCG4kgAn4gBHyFIAJ+IgRCL4iFIASFfiIDQi+IIAOFfgwDCyABQQRPBEAgA0IBhkKx/76Dzbilj+UAfSICIAAgAWpBBGs1AAAiBCAANQAAQgOGIAN8hX4hAyACIANCL4ggBIUgA4UgAn4iA0IviCADhX4MAwtCz4DB/LLH2vCafyABRQ0CGiAAIAFqQQFrLQAAQQJ0IAFqrUKn4qy+yYvy0kN+IAAxAAAgACABQQF2ajEAAEIIhoRCz4DB/LLH2vCaf36FIgJCL4ggAoVCz4DB/LLH2vCaf34MAgsgA0IBhkKx/76Dzbilj+UAfSICIAAgAWoiAUEIaykAAH4iBCAAKQAAQvPk4/T7za3JtH9+IgYgACkACCIFQrH/voPNuKWP5QB9Qi6JfHwhAyACIAIgAyADIARCIokgBSAGfEIViXwgAUEQaykAAELPgMH8ssfa8Jp/fnyFIAJ+IgRCL4iFIASFfiIDQi+IIAOFfgwBCyABQcEATwRAIAAgAWoiAUEoaykAACEHIAFBOGspAAAhBCABQRBrKQAAIQggDSABQUBqIAMgAUEwaykAACADfCABQRhrKQAAEB0iAhAeIA0pAwghBSANKQMAIQYgDUEQaiABQSBrIAQgCHwiBEKNm5yLhLLStssAfSAHEB5CACADQgF9QkCDfSEKIAApAAAgB0Lz5OP0+82tybR/fnwhCSANKQMYIQcgDSkDECEIA0AgACkAMCEMIAApACghCyANQSBqIAAgBULz5OP0+82tybR/fiAAKQAIIAQgBnwgCXx8QhuJQvPk4/T7za3JtH9+IAeFIgMgCHwQHiAGIAt8IQsgBCAFfCEEIA0pAyghBSANKQMgIQYgDUEwaiAAQSBqIAIgCHxCH4lC8+Tj9PvNrcm0f34iCSAHfCALIAQgDHxCFolC8+Tj9PvNrcm0f358IgQgACkAEHwQHiAAQUBrIQAgDSkDOCEHIA0pAzAhCCADIQIgCkJAfSIKQgBSDQALIAYgCBAdIARCL4ggBIVC8+Tj9PvNrcm0f34gAnx8IAUgBxAdIAl8EB0MAQsgA0IBhkKx/76Dzbilj+UAfSIDIAAgAWoiAUEQaykAAH4hBCAAKQAYQgl+IgYgACkAEELPgMH8ssfa8Jp/fnwiByABQRhrKQAAIgJ8IQUgBiABQSBrKQAAIgggAUEIaykAACIJIAApAABCz4DB/LLH2vCaf358IgqFfEIBfCEGIAdCFokgAnwiByAFIAl8fCAEIAZ8IAYgACkACCIJQiKJIAJ8Qgl+IApCFYl8fCADfiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEfCADfiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEfCADfiECIAQgCHwgBSAJfCACQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEfCADfnwiAiACQi+IhSADfiAHfAsgDUFAayQAC5YBAQV/AkAgASADRw0AIAFBAnZBAWohBSACIQMgACEEA0AgBUEBayIFBEAgAygAACAEKAAAIANBBGohAyAEQQRqIQRGDQEMAgsLIAFBA3EhAyAAIAFBfHEiAGohBCAAIAJqIQUDQCADRSIAIQggAA0BIANBAWshAyAFLQAAIAQtAAAgBEEBaiEEIAVBAWohBUYNAAsLIAgLnwIBA38CQCAALQAcIgJBFE8NACAAKAIYQYACakF/IAJ0QX9zSQ0AIAAgAkEBaiICOgAcCyAAAn8gAkH/AXFBwAAgAC0AHSIDayIEQf8BcU0EQCAAKAIAIAAoAgRBA3RqQQhrIgQgBCkDACABrUL//z+DQQAgAiADamtBP3GthoQ3AwAgAC0AHCAALQAdagwBCyADQcAARwRAIAAoAgAgACgCBEEDdGpBCGsiAyADKQMAIAFB//8/cSACIARrdq2ENwMAIAAtABwhAgsgACAAKAIEIgNBAWo2AgQgACgCACADQQN0aiABrUL//z+DIAQgAmtBP3GthjcDACAALQAcIARrCzoAHSAAIAAoAhRBAWo2AhQgACAAKAIYQQFqNgIYC+0RAw9/BX0BfiMAQaAGayICJAACfwJAAkAgAUUEQCACQQk7AYQGIAJCADcC/AUgAkEANgLwBSACQqrVqtUKNwLoBSACQZiAwAApAwA3AvQFIAJB6AVqQQEQC0H//wNxDQEgAigC6AUgAigC7AUiAEEDdGpCADcDACACQTBqIAJB8AVqKQIANwMAIAJBOGogAkH4BWopAgA3AwAgAkFAayACQYAGaikCADcDACACIABBAWo2AuwFIAIgAikC6AU3AygMAgsgAkHQAGpBADYCACACQgA3A0ggAkGYgMAAKQMAIhY3AlQgAkHUAGohDANAIARBgARHBEAgAkHcAGogBGpBAjsBACAEQQJqIQQMAQsLIAIgFjcC9AUgAkEANgLwBSACQqrVqtUKNwLoBQJAIAJB6AVqQRQCfwJAAkAgAbNDAACAP5IiErwiBEGAgIAESARAQwAAwH9DAACA/yAEQf////8HcSIDGyERIARBAEgNAiADRQ0CIBJDAAAATJS8IQRB6H4hAwwBCyASIREgBEH////7B0sNAUGBfyEDQwAAAAAhESAEQYCAgPwDRg0BCyAEQY32qwJqIgRB////A3FB84nU+QNqvkMAAIC/kiIRIBFDAAAAP5SUIRIgESARQwAAAECSlSIUIBSUIhUgFZQhEyARIBEgEpO8QYBgcb4iEZMgEpMgFCASIBUgE0Pu6ZE+lEOqqio/kpQgEyATQyaeeD6UQxPOzD6SlJKSlJIhEiARQwCwuD+UIBJDALC4P5QgEiARkkPUmji5lJKSIAMgBEEXdmqykiERCyARQwAAgE9dIBFDAAAAAGBxBEAgEakMAQtBAAsiAyADQRRPGyABbEFAa0EGdkEBahAMQf//A3ENACACKALwBSEDIAIpAvQFIRYgAigC6AUiBCACKALsBSIJQQN0akIANwMAIAJBCTsB+AQgAkIANwLwBCACIBY3AugEIAIgAzYC5AQgAiAENgLcBCACQQA7AfwEIAJBADoA/gQgAiAJQQFqNgLgBCABQQFqIQ8gAEEBayEQQYACIQlBAiEEA0AgACAKaiEFAn8CQAJAAkACQCACQdwEagJ/A0AgBCAKaiINIAFPDQIgAkGABWogAkHIAGogBSAEEAYCQCACLQCEBUUEQCAEQQJHDQEgBS0AAAwDCyACIAItAIIFOgD+BCACIAIvAYAFOwH8BCAEQQFqIQQMAQsLIAIvAfwEIAItAP4EQRB0cgsQCSACQdwAaiAFLQAAQQF0aiIGLwEAIQMgBiADIARBAWtB//8DcSIGIAMgBksbOwEAIAlB//8/cUH//z9GBEAgAigCSCIDRQ0EIAMgA0EEaygCACIDEB8gAkEANgJMIAIgA61C0AB+QuQAgD4CUAwECyACQcgAaiAFIAQQDSACKAJQDQIgAigCSCIGBH8gBkEEazUCAELQAH4iFiAWQuQAgn1C5AB8QtAAgKcFQQELIQMgAkHwBWoiDkEANgIAIAJCADcD6AVBCEIBQSAgA2drrYanIgMgA0EITRsiB0EPaiEIAkACQCAIIAdBA3RqIgsgB0ECdGpBfHEiA0UEQEF8IQMMAQsgAikCVCIWpyADQQJBACAWQiCIpygCABEAACIDRQ0BCyADIAc2AgggAyADIAhBfHFqNgIEIAMgAyALQXxxajYCACACIANBDGoiAzYC6AUgAyAHEB8gAiAHrULQAH5C5ACAPgLwBSACKAJMIgtFDQIgBgR/IAZBBGsoAgAFQQALIQMgBkEMayIIKAIAIQcgCEEEaigCACEIA0AgA0UNAyAGLAAAQQBIBEAgAkHoBWogCCgCACAIQQRqKAIAIAcvAQAgB0ECai0AAEEQdHIQDiACKALsBSALRg0ECyADQQFrIQMgBkEBaiEGIAhBCGohCCAHQQRqIQcMAAsACyACQegFaiAMEAUMBgsgAkHcBGoCfyABIApBAWpNBEAgBS0AAAwBCyACQbgFaiACQdgAaigCADYCACACQbAFaiACQdAAaikDADcDACACIAIpA0g3A6gFIAJBwAVqIAJBqAVqIAUgBBAGIAJB3ARqAn8CQCACLQDEBUUEQCAEQQJHDQEgBS0AAAwCCyACLwHABSACLQDCBUEQdHIMAgsgAkHYBWogAkHYAGooAgA2AgAgAkHQBWogAkHQAGopAwA3AwAgAiACKQNINwPIBSACQeAFaiACQcgFaiAFIARBAWsQBiACLwHgBSACLQDiBUEQdHILEAkgBCAFakEBay0AAAsQCSACQcgAahAEIAJBQGsgAkH0BGopAgA3AwAgAkE4aiACQewEaikCADcDACACQTBqIAJB5ARqKQIANwMAIAIgAikC3AQ3AygMBwsgAkHQAGoiAygCACEGIAMgDigCADYCACAOIAY2AgAgAkEANgJMIAIpA0ghFiACIAIpA+gFNwNIIAIgFjcD6AUgAkHoBWogDBAFCyACQcgAaiAFIAQgCRAOIAlBAWoMAQtBACEDA0AgA0GABEcEQCACQdwAaiADakECOwEAIANBAmohAwwBCwsgAkHcBGpB//8/EAkgAkEANgL0BCACQQk6APgEQYACCyEJIA8gCmsgBGsiAyACQdwAaiANIBBqIgYtAABBAXRqLwEAIgQgAyAESRshAyANQQFrIQpBAiEEA0AgAyAEayIFQQVJDQEgAkGYBWogAkHYAGooAgA2AgAgAkGQBWogAkHQAGopAwA3AwAgAiACKQNINwOIBSACQaAFaiACQYgFaiAGIAVBAXYgBGoiBRAGIAUgBCACLQCkBSIHGyEEIAMgBSAHGyEDDAALAAsACyACQcgAahAEC0F/DAELIAJBIGogAkFAaykDADcDACACQRhqIAJBOGopAwA3AwAgAkEQaiACQTBqKQMANwMAIAIgAikDKDcDCEF/IAJBCGogAigCDCIDQQJqEAtB//8DcQ0AGiACKAIIIgAgAigCDEEDdGoiCSACNQIcIAGtQiCGhDcDACAJQQhqIANBA3RBCGoiAa0gAjUCEEIjhoQ3AwAgACABagsgAkGgBmokAAseAQF/IAAoAggiAiABSQR/IAAgAiABEA8QDAVBAAsLrAICBn8BfiMAQRBrIgQkAAJAIAAoAggiAyABTw0AIAAoAgAhBQJAIANFDQAgBCABQf////8BSzoACCABQYCAgIACTw0AIAAoAgwgBSADQQN0QQMgAUEDdEEAIABBEGooAgAoAgQRBQBBAXFFDQAgACABNgIIDAELIAApAgwhCCAEIAFB/////wFLOgAMAkAgAUGAgICAAk8NAAJAIAFBA3QiAkUEQEF4IQIMAQsgCKcgAkEDQQAgCEIgiKcoAgARAAAiAkUNAQsgAiAAKAIAIAAoAgRBA3QQICEGQQAhAiADQQN0QQAgAxsiBwRAIAAoAgwgBUEIIAMbIAdBA0EAIABBEGooAgAoAggRAQALIAAgATYCCCAAIAY2AgAMAQtBASECCyAEQRBqJAAgAgveAQIIfwF+IwBBEGsiBCQAAkAgACgCBEUEQEGAgMAAIQUMAQsgACgCACIGQQhrIQggASACEAciC6cgBgR/IAZBBGsoAgAiB0EBawVBfwsiCXEhACALQjmIpyEKA0BBgIDAACEFIAAgBmosAAAiA0UNASAHRQ0BAkAgA0EATg0AIAogA0H/AHFHDQAgASACIAgoAgAgAEEDdGoiAygCACADKAIEEAhBAXFFDQAgBEEBOgAMIARBCGohBQwCCyAHQQFrIQcgAEEBaiAJcSEADAALAAsgBS0ABBogBEEQaiQAC8gBAgR/AX4gACABIAIQDUF/IQUgASACEAciCKcgACgCACIGBEAgBkEEaygCAEEBayEFCyAFcSEEA0AgBCAGaiIHLAAAQQBIBEAgBEEBaiAFcSEEDAELCyAAIAAoAghBAWs2AgggByAIQjmIp0GAAXI6AAAgACgCAEEIaygCACAEQQN0aiIFIAI2AgQgBSABNgIAIAAoAgBBDGsoAgAgBEECdGoiASADOwEAIAFBAmogA0H//z9xQRB2OgAAIAAgACgCBEEBajYCBAslAQF/A0AgAUF/IABBAXYgAGpBCGoiAiAAIAJLGyIASw0ACyAAC1sBBH8jAEEQayIBJAAgASAAKQIMNwMIIAAoAgAhAiAAKAIIIgBBA3RBACAAGyIDBEAgAUEIaiIEKAIAIAJBBCAAGyADQQJBACAEKAIEKAIIEQEACyABQRBqJAAL8QoCC38BfiMAQdAAayIEJAAgBEEANgJEIARCqtWq1Qo3AjwgBEGYgMAAKQMAIg83AkgCfwJAAn9BqtWq1XogAkUNABogAiELQarVqtV6IARByABqIgFBqtWq1XpBACACEBJBAXENABogBEEoaiABIAIQEyAELwEwDQEgBCgCLCELIAQoAigLIQdBCSEIA0ACQAJAAkACQCACIAlHBEAgCEH/AXEiAUEUSQ0BDAQLIAQgDzcDIAJAIARBIGogByALIAIQEkEBcQRAIAchCAwBCyAEQTxqIARBIGogAhATIAQvAUQNBiAEKAI8IgggByAEKAJAIgJBAnQQIBogBCAPNwMoIARBKGogByALEBQLIAJFBEBBACEFQarVqtV6IQZBACEJDAILIARBADYCMCAEQqrVqtUKNwIoIAQgDzcCNCAEQQBB//8/EA8iAEH/////AUs6ADwgAEGAgICAAk8NAgJAIABBA3QiAUUEQEF8IQcMAQsgD6cgAUECQQAgD0IgiKcoAgARAAAiB0UNAwsgBCAANgIwIAQgBzYCKEEAIQEDQCABQfj//wNHBEAgASAHakIANwIAIAFBCGohAQwBCwsgBEH//z82AiwgBCAPNwJIQQAhASAEQQA2AkQgBEKq1arVCjcCPCAEQTxqIANBAnQQFUH//wNxDQIgBCkCSCEPIAQoAkQhCSAEKAI8IgYgBCgCQCIAaiAILQAAOgAAIAcgCC8BACAIQQJqLQAAQRB0ckEDdGoiA0EBNgIEIAMgBjYCACAAQQFqIQBBgAIhA0EBIQoDQCAAIQUCfwJ/AkACQCACIApNDQAgCCAKQQJ0aiIALwEAIABBAmotAABBEHRyIgBB//8/RgRAIApBAWoiCiACTw0BQQAhAQNAIAFB+P//A0cEQCABIAdqQgA3AgAgAUEIaiEBDAELCyAIIApBAnRqIgAvAQAgAEECai0AAEEQdHIiAEGAAk8EQCAEQf//PzYCLAwJCyAFIAZqIAA6AAAgBUEBaiEAQYACDAQLIABBgAJJDQEgByAAQQN0aiIAKAIAIgtFBEAgBSAGaiABIAZqIgAgBSABayILECAaIAUgC2oiCyAGaiAALQAAOgAAIAtBAWoMAwsgBSAGaiALIAAoAgQiABAgGiAAIAVqDAILIARB//8/NgIsIARBKGoQEAwFCyAFIAZqIAA6AAAgBUEBagshACAHIANB//8/cUEDdGoiCyAFIAFrQQFqNgIEIAsgASAGajYCACADQQFqCyEDIApBAWohCiAFIQEMAAsACyAIIA1BgAJqQX8gAXRBf3NPaiEIDAILIAQgDzcCGCAEIAY2AgwgBCAFNgIQIAQgCTYCFCAFQQhqIgEgCU0EfyAFBUF/IARBDGogCSABEA8QFUH//wNxDQUaIAQoAgwhBiAEKAIUIQkgBCgCEAsgBmoiACAFOgAAIABBB2ogCUEYdjoAACAAQQZqIAlBEHY6AAAgAEEFaiAJQQh2OgAAIABBBGogCToAACAAQQNqIAVBGHY6AAAgAEECaiAFQRB2OgAAIABBAWogBUEIdjoAACAFIAZqDAQLIARBKGoQEAwCC0EAIQogCCEBA0AgAUH/AXEiDARAIAVB/wFxQcAARiIOIAZqIQYgASAMQcAAQQAgBSAOGyIFa0H/AXEiASABIAxLGyIMayEBIAogACAGQQN0aikDACAFQT9xrYZBACAMa0E/ca2IpyABdHIhCiAFIAxqIQUMAQsLIAcgCUECdGoiASAKOwEAIAFBAmogCkH//z9xIgFBEHY6AABBACANQQFqIAFB//8/RiIBGyENQQkgCCABGyEIIAlBAWohCQwACwALQX8LIARB0ABqJAALdwECfyMAQRBrIgQkAAJAIANFBEAgBCAAKQIANwMAIAQgASACEBRBASEFDAELIAJFDQAgBCADQf////8DSzoADCADQYCAgIAETw0AIAAoAgAgASACQQJ0QQIgA0ECdEEAIAAoAgQoAgQRBQAhBQsgBEEQaiQAIAULrAECAX8BfiMAQSBrIgMkACABKQIAIQQgAyACQf////8DSzoAHCAAAn8CQCACQYCAgIAETw0AAkAgAkECdCIBRQRAQXwhAQwBCyAEpyABQQJBACAEQiCIpygCABEAACIBRQ0BCyADIAI2AhQgAyABNgIQIANBADsBGCADQRBqDAELIANBATsBDCADQQRqCyIBKQIANwIAIABBCGogAUEIaigCADYCACADQSBqJAALMAEBfyACQQJ0QQAgAhsiAwRAIAAoAgAgAUEEIAIbIANBAkEAIAAoAgQoAggRAQALC9QBAQV/IwBBIGsiAiQAAkAgACgCCCIDIAFPDQAgACgCACEFAkACQCADRQ0AIAAoAgwgBSADQQAgAUEAIABBEGooAgAoAgQRBQBBAXFFDQAgACABNgIIDAELIAIgAEEMaiIGKQIANwMQIAJBGGogAkEQaiABEAEgAi8BHCIEDQEgAigCGCAAKAIAIAAoAgQQICEEIAMEQCAGKAIAIAVBqtWq1XogAxsgA0EAQQAgBigCBCgCCBEBAAsgACABNgIIIAAgBDYCAAtBACEECyACQSBqJAAgBAu6AgINfwF+IwBBEGsiBSQAIAAoAgQhCCAAKAIAIQkgAkH/AXEhCgNAAkACQCAEIAhGBEBBfyEDDAELIAkgBEEEdGoiAkEIaikDACIQQgBZBEAgAikDAHsgEHt8pyABSQ0CCyAEQQd0IgNBgAFqIQsDQCADIAtPDQIgAyAAKQIAIhBCGYinQYB/cSICIAIgA0kbIgwgA2shDSAQp0EIIBBCIIinGyEOIANBEHRoIQ9BACECAkADQCACIA1GBEAgDCEGDAILIAIgA2oiBkEHcSEHIA4gBkEDdmotAABBASAHdEH/ASAHQQdzdnFxRQ0BIAJBAWoiAiABSQ0AIAogD0sNAAsgBSAQNwMIIAVBCGogAyABQQAQFwwCCyAGQQFqIQMMAAsACyAFQRBqJAAgAw8LIARBAWohBAwACwALUQEBfyADQQFxIQMDQCACBEAgAUEDdiAAKAIAQQggACgCBBtqIgQgBC0AAEF+IAFBB3EiBHdxIAMgBHRyOgAAIAFBAWohASACQQFrIQIMAQsLC5wBAQJ/IwBBEGsiAiQAIABBgBBJBEBBqIDAACAAQYAQIAEgAUGAEE8bIABrEBkLIAFBgBBLBEBBpIDAACgCAEUEQEGkgMAAQYAgNgIAQaCAwAAgAUEBayIBQRB0IgM2AgAgA0GAgAQQHwsgAkGggMAAKQMANwMIIAJBCGpBgBAgACAAQYAQTRsiAEGAEGsgASAAaxAZCyACQRBqJAALKwEBfyMAQRBrIgMkACADIAApAgA3AwggA0EIaiABIAJBARAXIANBEGokAAuXAQACf0EAIAFBgYB8Tw0AGgJAQaiAwAAgAUH//wNqQRB2IgEgAhAWIgBBf0cNAEGggMAAIAEgAhAWIgBBf0cEQCAAQYAQaiEADAELQQAgAT8AIgFBEHQiA0EBIAJ0IgJqQQFrQQAgAmtxIgIgA2tBEHYiAGpAAEEATA0BGiAAIAFqIQAgAiADRg0AIAEgABAYCyAAQRB0CwtJAAJAIAJB//8DaiIAQYCAfHEgBE8iAkUNACAEQf//A2pBEHYiAyAAQRB2IgBGDQAgAUH//wNqQRB2IgEgA2ogACABahAYCyACCx0AIAFB//8DakEQdiIAIAAgAkH//wNqQRB2ahAYCz4AIAAgAYVC6drg2Y7B+u+df34iAEIviCABhSAAhULp2uDZjsH6751/fiIAQi+IIACFQuna4NmOwfrvnX9+C0IBAn4gACABKQAQIAEpAAAgAnwiAiABKQAIfHwiBCABKQAYIgV8NwMAIAAgBEIUiSACfCAFIAIgA3x8QiuJfDcDCAshACABBEADQCAAQQA6AAAgAEEBaiEAIAFBAWsiAQ0ACwsLQwEBfwJAIAJFDQAgAkEBayECIAAhAwNAIAMgAS0AADoAACACRQ0BIAJBAWshAiABQQFqIQEgA0EBaiEDDAALAAsgAAsLKwIAQYiAwAALCQEAAAACAAAAAwBBnIDAAAsRCAAQAKqqqqoAAAAAMAAQABA="), e = await f(), C = e.exports;
51
+ function k(A) {
52
+ const { ptr: B, length: I } = s(A, C), g = C.compress(B, I);
53
+ if (C.free(B, I), g < 0)
54
+ throw new Error("Error compressing string.");
55
+ const { start: Q, end: E, capacity: i } = a(C.memory, g), o = new Uint16Array(C.memory.buffer.slice(Q, E)), w = n(o);
56
+ return C.free(Q, i), w;
57
+ }
58
+ function h(A) {
59
+ const B = (A.charCodeAt(A.length - 3) << 16) + A.charCodeAt(A.length - 4), I = (A.charCodeAt(A.length - 1) << 16) + A.charCodeAt(A.length - 2), g = A.length - 4;
60
+ let Q = C.allocUint16(g), E = new Uint16Array(
61
+ C.memory.buffer,
62
+ Q,
63
+ g
64
+ );
65
+ for (let D = 0; D < g; D++)
66
+ E[D] = A.charCodeAt(D);
67
+ const i = C.decompress(
68
+ Q,
69
+ g,
70
+ B,
71
+ I
72
+ );
73
+ if (C.free(Q, 2 * g), i < 0)
74
+ throw new Error("Error decompressing string.");
75
+ const { start: o, end: w, capacity: t } = a(C.memory, i), y = new Uint8Array(C.memory.buffer.slice(o, w)), F = new TextDecoder().decode(y);
76
+ return C.free(o, t), F;
77
+ }
78
+ export {
79
+ k as compress,
80
+ h as decompress
81
+ };
package/dist/worker.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type Message = {
2
- command: string;
3
- id: number;
4
- data: string;
5
- };
1
+ export type Message = {
2
+ command: string;
3
+ id: number;
4
+ data: string;
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smol-string",
3
- "version": "0.1.0-beta",
3
+ "version": "0.2.0-beta",
4
4
  "description": "Compression for browser localStorage",
5
5
  "author": "Senryoku <maretverdant@gmail.com>",
6
6
  "repository": {
@@ -37,22 +37,15 @@
37
37
  "types": "./dist/smol-string.d.ts",
38
38
  "import": "./dist/smol-string.js"
39
39
  },
40
- "./packed": {
41
- "types": "./dist/smol-string-packed.d.ts",
42
- "import": "./dist/smol-string-packed.js"
43
- },
44
40
  "./worker": {
45
41
  "types": "./dist/smol-string-worker.d.ts",
46
42
  "import": "./dist/smol-string-worker.js"
47
- },
48
- "./worker/packed": {
49
- "types": "./dist/smol-string-worker-packed.d.ts",
50
- "import": "./dist/smol-string-worker-packed.js"
51
43
  }
52
44
  },
53
45
  "devDependencies": {
54
46
  "@vitest/browser": "^0.34.6",
55
- "smol-string": "^0.0.2-beta",
47
+ "binaryen": "^116.0.0",
48
+ "smol-string": "^0.1.1-beta",
56
49
  "typescript": "^5.2.2",
57
50
  "vite": "^5.0.0",
58
51
  "vite-plugin-dts": "^3.6.2",
@@ -1,18 +0,0 @@
1
- import { defineConfig, mergeConfig } from "vitest/config";
2
- import viteConfig from "./vite.config";
3
-
4
- // Config for tests ran only in browsers.
5
- // Currently use to tests that interacts with localStorage.
6
-
7
- export default mergeConfig(
8
- viteConfig,
9
- defineConfig({
10
- test: {
11
- browser: {
12
- enabled: true,
13
- name: "chrome",
14
- },
15
- include: ["test/*.test.ts", "test/*.test.browser.ts"],
16
- },
17
- })
18
- );
@@ -1,2 +0,0 @@
1
- export declare function compressPacked(str: string): string;
2
- export declare function decompressPacked(compressedStr: string): string;
@@ -1,30 +0,0 @@
1
- import { i as a, c as J, e as w, U as h } from "./wasm-helper-C1VfMvbY.js";
2
- const F = (A) => a(A, "data:application/wasm;base64,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AGpBCGopAwA3AwAgAiACKQNANwOIASACQaABaiACQYgBaiAKIAMQiYCAgAACQAJAAkAgAi0ApAENACADQQJHDQEgCi0AACEDDAILIAIvAaABIAItAKIBQRB0ciEDDAILIAJBqAFqQRBqIAJBwABqQRBqKAIANgIAIAJBqAFqQQhqIAJBwABqQQhqKQMANwMAIAIgAikDQDcDqAEgAkHAAWogAkGoAWogCiADQX9qEImAgIAAIAIvAcABIAItAMIBQRB0ciEDCyACQdgAaiADEIyAgIAAIAsgAGpBf2otAAAhAwsgAkHYAGogAxCMgICAACACQcAAahCHgICAACACQSBqQRhqIAJB2ABqQRhqKQMANwMAIAJBIGpBEGogAkHYAGpBEGopAwA3AwAgAkEgakEIaiACQdgAakEIaikDADcDACACIAIpA1g3AyAMBAsgAkHAAGpBCGoiCygCACEMIAsgBigCADYCACAGIAw2AgAgAkEANgJEIAIpA0AhBCACIAIpA8gBNwNAIAIgBDcDyAEgAkHIAWogBxCIgICAAAsgAkHAAGogCiADIAgQkICAgAAgCEEBaiEIDAALCyACQcAAahCHgICAAEEAIQMMAQsgAkEYaiACQSBqQRhqKQMANwMAIAJBEGogAkEgakEQaikDADcDACACQQhqIAJBIGpBCGopAwA3AwAgAiACKQMgNwMAQQAhAyACIAIoAgQiAUECahCGgICAAEH//wNxDQAgAigCACIDIAIoAgRBA3RqIglBCGogAjUCCEIDhjcDACAJIAFBA3QiAUEEcq1CIIYgAjUCFIQ3AwAgAyABakEEaiEDCyACQZACaiSAgICAACADC60CAwV/AX4BfyOAgICAAEEQayICJICAgIAAQQAhAwJAIAAoAggiBCABTw0AIAAoAgAhBQJAIARFDQAgAiABQf////8BSzoACCABQYCAgIACTw0AIAAoAgwgBSAEQQN0QQMgAUEDdEEAIABBEGooAgAoAgQRgoCAgAAAQQFxRQ0AIAAgATYCCEEAIQMMAQsgAEEMaiIGKQIAIQcgAiABQf////8BSzoADAJAIAFBgICAgAJPDQACQAJAIAFBA3QiCA0AQXghCAwBCyAHpyAIQQNBACAHQiCIpygCABGAgICAAAAiCEUNAQsgCCAAKAIAIAAoAgRBA3QQpYCAgAAhCCAG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"), N = await F(), I = N.exports;
3
- function y(A) {
4
- const { ptr: C, length: g } = J(A, I), D = I.compressPacked(C, g);
5
- I.free(C, g);
6
- const { start: Q, end: B, capacity: i } = w(I.memory, D), o = new Uint16Array(I.memory.buffer.slice(Q, B)), k = h(o);
7
- return I.free(Q, i), k;
8
- }
9
- function s(A) {
10
- const C = (A.charCodeAt(A.length - 1) << 16) + A.charCodeAt(A.length - 2);
11
- let g = I.allocUint16(A.length - 2), D = new Uint16Array(
12
- I.memory.buffer,
13
- g,
14
- A.length - 2
15
- );
16
- for (let E = 0; E < A.length - 2; E++)
17
- D[E] = A.charCodeAt(E);
18
- const Q = I.decompressPacked(
19
- g,
20
- A.length - 2,
21
- C
22
- );
23
- I.free(g, 2 * (A.length - 2));
24
- const { start: B, end: i, capacity: o } = w(I.memory, Q), k = new Uint8Array(I.memory.buffer.slice(B, i)), G = new TextDecoder().decode(k);
25
- return I.free(B, o), G;
26
- }
27
- export {
28
- y as compressPacked,
29
- s as decompressPacked
30
- };
@@ -1,2 +0,0 @@
1
- export declare function compressPacked(data: string): Promise<string>;
2
- export declare function decompressPacked(data: string): Promise<string>;
@@ -1,46 +0,0 @@
1
- const d = "KGFzeW5jKCk9PntmdW5jdGlvbiB0KEEsZyl7Y29uc3QgST1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoQSksQz1nLmFsbG9jVWludDgoSS5sZW5ndGgpO3JldHVybiBuZXcgVWludDhBcnJheShnLm1lbW9yeS5idWZmZXIsQyxJLmxlbmd0aCkuc2V0KEkpLHtwdHI6QyxsZW5ndGg6SS5sZW5ndGh9fWZ1bmN0aW9uIEcoQSl7Y29uc3QgZz1uZXcgQXJyYXkoQS5sZW5ndGgpO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKWdbSV09U3RyaW5nLmZyb21DaGFyQ29kZShBW0ldKTtyZXR1cm4gZy5qb2luKCIiKX1mdW5jdGlvbiB3KEEsZyl7Y29uc3QgST1uZXcgVWludDMyQXJyYXkoQS5idWZmZXIuc2xpY2UoZyxnKzgpKSxDPUkuYXQoMCksUT1JLmF0KDEpO3JldHVybntzdGFydDpnLUMsZW5kOmcsY2FwYWNpdHk6UX19dmFyIHM9YXN5bmMoQT17fSxnKT0+e2xldCBJO2lmKGcuc3RhcnRzV2l0aCgiZGF0YToiKSl7Y29uc3QgQz1nLnJlcGxhY2UoL15kYXRhOi4qP2Jhc2U2NCwvLCIiKTtsZXQgUTtpZih0eXBlb2YgQnVmZmVyPT0iZnVuY3Rpb24iJiZ0eXBlb2YgQnVmZmVyLmZyb209PSJmdW5jdGlvbiIpUT1CdWZmZXIuZnJvbShDLCJiYXNlNjQiKTtlbHNlIGlmKHR5cGVvZiBhdG9iPT0iZnVuY3Rpb24iKXtjb25zdCBFPWF0b2IoQyk7UT1uZXcgVWludDhBcnJheShFLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxFLmxlbmd0aDtpKyspUVtpXT1FLmNoYXJDb2RlQXQoaSl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO0k9YXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoUSxBKX1lbHNle2NvbnN0IEM9YXdhaXQgZmV0Y2goZyksUT1DLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKXx8IiI7aWYoImluc3RhbnRpYXRlU3RyZWFtaW5nImluIFdlYkFzc2VtYmx5JiZRLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL3dhc20iKSlJPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEMsQSk7ZWxzZXtjb25zdCBFPWF3YWl0IEMuYXJyYXlCdWZmZXIoKTtJPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEUsQSl9fXJldHVybiBJLmluc3RhbmNlfSxoPUE9PnMoQSwiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCxBR0Z6YlFFQUFBQUJXdzVnQkg5L2YzOEJmMkFGZjM5L2YzOEFZQVovZjM5L2YzOEJmMkFCZndGL1lBTi9mMzhBWUFKL2Z3QmdBbjkvQVg5Z0FYOEFZQVIvZjM5L0FHQUNmMzhCZm1BRGYzOS9BWDlnQW41K0FYNWdCSDkvZm40QVlBRjlBWDBESnlZREJBTUZCQU1HQndVSUNRQUZCZ1lLQ0FZSEJBb0FCQVFHQ2dnRkJBQUNBUVFMREEwS0NnUUZBWEFCQkFRRkF3RUFFUVlPQW44QlFZQ0F3QUFMZndCQkFBc0hVQVlHYldWdGIzSjVBZ0FLWVd4c2IyTlZhVzUwT0FBQUMyRnNiRzlqVldsdWRERTJBQUlFWm5KbFpRQUREbU52YlhCeVpYTnpVR0ZqYTJWa0FBMFFaR1ZqYjIxd2NtVnpjMUJoWTJ0bFpBQVVDUWtCQUVFQkN3TWRIaDhLZ1VzbVhnRUJmeU9BZ0lDQUFFRVFheUlCSklDQWdJQUFJQUVqZ1lDQWdBQkJtSURBZ0FCcUtRTUFOd01BSUFGQkNHb2dBU0FBRUlHQWdJQUFBa0FnQVM4QkRBMEFJQUVvQWdnaEFDQUJRUkJxSklDQWdJQUFJQUFQQ3dOL0FBd0FDd3R4QWdGL0FYNGpnSUNBZ0FCQkVHc2lBeVNBZ0lDQUFFS0FnSUNBRUNFRUFrQkJBVVVOQUFKQUlBSU5BRUwvLy8vL0R5RUVEQUVMSUFFb0FnQWdBa0VBUVFBZ0FTZ0NCQ2dDQUJHQWdJQ0FBQUFpQWtXdFFpQ0dJQUt0aENFRUN5QUFJQVEzQWdBZ0EwRVFhaVNBZ0lDQUFBdUdBUUlDZndGK0k0Q0FnSUFBUVJCcklnRWtnSUNBZ0FBZ0FTQUFRUUJJT2dBTUk0R0FnSUFBSVFJQ1FDQUFRWDlNRFFBQ1FBSkFJQUJCQVhRaUFBMEFRWDRoQUF3QkN5QUNRWmlBd0lBQWFpa0RBQ0lEcHlBQVFRRkJBQ0FEUWlDSXB5Z0NBQkdBZ0lDQUFBQWlBRVVOQVFzZ0FVRVFhaVNBZ0lDQUFDQUFEd3NEZndBTUFBc0xHUUFqZ1lDQWdBQkJtSURBZ0FCcUlBQWdBUkNFZ0lDQUFBczRBUUYvQWtBZ0FrRUFJQUliSWdORkRRQWdBQ2dDQUNBQlFhclZxdFY2SUFJYklBTkJBRUVBSUFBb0FnUW9BZ2dSZ1lDQWdBQUFDd3RCQVFKL0FrQWdBQ0FBS0FJRVFRRnFFSWFBZ0lBQUlnRkIvLzhEY1EwQUlBQWdBQ2dDQkNJQ1FRRnFOZ0lFSUFBb0FnQWdBa0VEZEdwQ0FEY0RBQXNnQVFzdEFRSi9RUUFoQWdKQUlBQW9BZ2dpQXlBQlR3MEFJQUFnQXlBQkVKR0FnSUFBRUk2QWdJQUFJUUlMSUFJTER3QWdBQ0FBUVF4cUVJaUFnSUFBQzJVQkEzOENRQ0FBS0FJQUlnSkZEUUFDUUNBQ1FYUnFJZ05CQ0dvb0FnQkJEV3hCRDJwQmZIRWlBa0VBSUFJYklnUkZEUUFnQVNnQ0FDQURRUVFnQWhzZ0JFRUNRUUFnQVNnQ0JDZ0NDQkdCZ0lDQUFBQUxJQUJCQURZQ0NDQUFRUUEyQWdBTEM0RURCQVIvQVg0RWZ3RitJNENBZ0lBQVFSQnJJZ1FrZ0lDQWdBQWpnWUNBZ0FBaEJTQUJLQUlBSVFZQ1FBSkFJQUVvQWdRTkFDQUZRWUNBd0lBQWFpRUhEQUVMSUFJZ0F4Q0tnSUNBQUNFSUFrQUNRQ0FHRFFCQkFDRUZRWDhoQ1F3QkN5QUdRWHhxS0FJQUlnVkJmMm9oQ1FzZ0JrRjRhaUVLSUFrZ0NLZHhJUUVnQ0VJNWlLY2hDd05BSTRHQWdJQUFRWUNBd0lBQWFpRUhJQVlnQVdvc0FBQWlERVVOQVNBRlJRMEJBa0FnREVGL1NnMEFJQXNnREVIL0FIRkhEUUFnQWlBRElBb29BZ0FnQVVFRGRHb2lEQ2dDQUNBTUtBSUVFSXVBZ0lBQVFRRnhSUTBBSUFSQkFUb0FEQ0FFSUFFMkFnZ2dCRUVJYWlFSERBSUxJQVZCZjJvaEJTQUJRUUZxSUFseElRRU1BQXNMQWtBQ1FDQUhMUUFFRFFCQ0FDRUlRZ0FoRFF3QkN5QUVJQVpCZEdvb0FnQWdCeWdDQUVFQ2RHb2lBVUVDYWkwQUFFRVBjVG9BQWlBRUlBRXZBUUE3QVFBZ0JETUJBQ0FFTVFBQ1FoQ0doQ0VJUW9DQWdJQVFJUTBMSUFBZ0RTQUloRGNDQUNBRVFSQnFKSUNBZ0lBQUM2RUxBZ0YvQzM0amdJQ0FnQUJCd0FCcklnSWtnSUNBZ0FBZ0FhMGhBd0pBQWtBZ0FVRWdTdzBBQWtBZ0FVRVJUdzBBQWtBZ0FVRUlTUTBBSUFBcEFBQkN6NERCL0xMSDJ2Q2FmM3dpQkVJbmlTQUJJQUJxUVhocUtRQUFJZ1Y4SUFOQ0FZWkN6NERCL0xMSDJ2Q2FmM3dpQm40aUF5QURJQVZDRzRrZ0JuNGdCSHlGSUFaK0lnUkNMNGlGSUFTRklBWitJZ1JDTDRnZ0JJVWdCbjRoQmd3REN3SkFJQUZCQkVrTkFDQUFOUUFBUWdPR0lBTjhJQUVnQUdwQmZHbzFBQUFpQklVZ0EwSUJoa0xQZ01IOHNzZmE4SnAvZkNJR2ZpSUZRaStJSUFTRklBV0ZJQVorSWdSQ0w0Z2dCSVVnQm40aEJnd0RDd0pBSUFFTkFFTFBnTUg4c3NmYThKcC9JUVlNQXdzZ0FTQUFha0YvYWkwQUFFRUNkQ0FCYXExQ3ArS3N2c21MOHRKRGZpQUFJQUZCQVhacU1RQUFRZ2lHSUFBeEFBQ0VRcytBd2Z5eXg5cndtbjkraFNJR1FpK0lJQWFGUXMrQXdmeXl4OXJ3bW45K0lRWU1BZ3NnQUNrQUNDSUVRcytBd2Z5eXg5cndtbjk4UWk2SklBQXBBQUJDOCtUajlQdk5yY20wZjM0aUJYd2dBU0FBYWlJQVFYaHFLUUFBSUFOQ0FZWkN6NERCL0xMSDJ2Q2FmM3dpQm40aUEzd2lCeUFISUFOQ0lva2dCU0FFZkVJVmlYd2dBRUZ3YWlrQUFFTFBnTUg4c3NmYThKcC9mbnlGSUFaK0lnUkNMNGlGSUFTRklBWitJZ1JDTDRnZ0JJVWdCbjRoQmd3QkN3SkFJQUZCd1FCSkRRQWdBU0FBYWlJQlFWaHFLUUFBSVFjZ0FVRklhaWtBQUNFR0lBRkJjR29wQUFBaENDQUNJQUZCUUdvZ0F5QUJRVkJxS1FBQUlBTjhJQUZCYUdvcEFBQVFvWUNBZ0FBaUNSQ2lnSUNBQUNBQ0tRTUlJUVFnQWlrREFDRUZJQUpCRUdvZ0FVRmdhaUFHSUFoOElnWkM4K1RqOVB2TnJjbTBmM3dnQnhDaWdJQ0FBRUlBSUFOQ2YzeENRSU45SVFvZ0FDa0FBQ0FIUXZQazQvVDd6YTNKdEg5K2ZDRUlJQUlwQXhnaEF5QUNLUU1RSVFjRFFDQUFLUUF3SVFzZ0FDa0FLQ0VNSUFKQklHb2dBQ0FFUXZQazQvVDd6YTNKdEg5K0lBWWdCWHdnQ0h3Z0FDa0FDSHhDRzRsQzgrVGo5UHZOcmNtMGYzNGdBNFVpRFNBSGZCQ2lnSUNBQUNBTUlBVjhJUXdnQmlBRWZDRUdJQUlwQXlnaEJDQUNLUU1nSVFVZ0FrRXdhaUFBUVNCcUlBa2dCM3hDSDRsQzgrVGo5UHZOcmNtMGYzNGlDQ0FEZkNBQUtRQVFJQXdnQmlBTGZFSVdpVUx6NU9QMCs4MnR5YlIvZm53aUJud1Fvb0NBZ0FBZ0FFSEFBR29oQUNBQ0tRTTRJUU1nQWlrRE1DRUhJQTBoQ1NBS1FzQUFmQ0lLUWdCU0RRQUxJQVpDTDRnZ0JvVkM4K1RqOVB2TnJjbTBmMzRnRFh3Z0JTQUhFS0dBZ0lBQWZDQUVJQU1Rb1lDQWdBQWdDSHdRb1lDQWdBQWhCZ3dCQ3lBQklBQnFJZ0ZCY0dvcEFBQWdBMElCaGtMUGdNSDhzc2ZhOEpwL2ZDSUVmaUlGSUFGQllHb3BBQUFpQTN3Z0FDa0FHRUlKZmlJSElBQXBBQkJDejREQi9MTEgydkNhZjM1OElnZ2dBVUZvYWlrQUFDSUdmQ0lKSUFBcEFBZ2lDbndnQ1NBQlFYaHFLUUFBSWcxOElBaENGb2tnQm53aUNId2dCeUFOSUFBcEFBQkN6NERCL0xMSDJ2Q2FmMzU4SWdrZ0E0VjhRZ0Y4SWdNZ0JYd2dDVUlWaVNBS1FpS0pJQVo4UWdsK2ZDQURmQ0FFZmlJR1FqaUdJQVpDZ1A0RGcwSW9ob1FnQmtLQWdQd0hnMElZaGlBR1FvQ0FnUGdQZzBJSWhvU0VJQVpDQ0loQ2dJQ0ErQStESUFaQ0dJaENnSUQ4QjRPRUlBWkNLSWhDZ1A0RGd5QUdRamlJaElTRWZDQUVmaUlHUWppR0lBWkNnUDREZzBJb2hvUWdCa0tBZ1B3SGcwSVloaUFHUW9DQWdQZ1BnMElJaG9TRUlBWkNDSWhDZ0lDQStBK0RJQVpDR0loQ2dJRDhCNE9FSUFaQ0tJaENnUDREZ3lBR1FqaUloSVNFZkNBRWZpSUdRamlHSUFaQ2dQNERnMElvaG9RZ0JrS0FnUHdIZzBJWWhpQUdRb0NBZ1BnUGcwSUlob1NFSUFaQ0NJaENnSUNBK0ErRElBWkNHSWhDZ0lEOEI0T0VJQVpDS0loQ2dQNERneUFHUWppSWhJU0VmQ0FFZm53aUJrSXZpQ0FHaFNBRWZpQUlmQ0VHQ3lBQ1FjQUFhaVNBZ0lDQUFDQUdDMWdCQW45QkFDRUVBa0FnQVNBRFJ3MEFBa0FnQUNBQ1J3MEFRUUVQQ3dOQUlBRkZJUVFnQVVVTkFTQUJRWDlxSVFFZ0FpMEFBQ0VESUFBdEFBQWhCU0FBUVFGcUlRQWdBa0VCYWlFQ0lBVWdBMFlOQUFzTElBUUxzUUlCQTM4Q1FDQUFMUUFjSWdKQkZFOE5BQ0FBS0FJWVFZQUNha0YvSUFKMFFYOXpTUTBBSUFBZ0FrRUJhaUlDT2dBY0N3SkFBa0FnQWtIL0FYRkJ3QUFnQUMwQUhTSURheUlFUWY4QmNVc05BQ0FBS0FJRVFRTjBJQUFvQWdCcVFYaHFJZ1FnQkNrREFDQUJyVUwvL3orRFFRQWdBaUFEYW10QlAzR3Rob1EzQXdBZ0FDMEFIQ0FBTFFBZGFpRUNEQUVMQWtBZ0EwSC9BWEZCd0FCR0RRQWdBQ2dDQkVFRGRDQUFLQUlBYWtGNGFpSURJQU1wQXdBZ0FVSC8vejl4SUFJZ0JHdEIvd0Z4ZHEyRU53TUFJQUF0QUJ3aEFnc2dBQ0FBS0FJRUlnTkJBV28yQWdRZ0FDZ0NBQ0FEUVFOMGFpQUJyVUwvL3orRElBUWdBbXRCUDNHdGhqY0RBQ0FBTFFBY0lBUnJJUUlMSUFBZ0Fqb0FIU0FBSUFBb0FoUkJBV28yQWhRZ0FDQUFLQUlZUVFGcU5nSVlDOFlQQkFKL0FYNEJmUXAvSTRDQWdJQUFRWkFDYXlJQ0pJQ0FnSUFBQWtBQ1FBSkFJQUVOQUNBQ1FRazdBZVFCSUFKQ0FEY0MzQUZCQUNFRElBSkJBRFlDMEFFZ0FrS3ExYXJWQ2pjQ3lBRWdBaU9CZ0lDQUFFR1lnTUNBQUdvcEF3QTNBdFFCSUFKQnlBRnFFSVdBZ0lBQVFmLy9BM0VOQWlBQ1FTQnFRUmhxSUFKQnlBRnFRUmhxS1FJQU53TUFJQUpCSUdwQkVHb2dBa0hJQVdwQkVHb3BBZ0EzQXdBZ0FrRWdha0VJYWlBQ1FjZ0Jha0VJYWlrQ0FEY0RBQ0FDSUFJcEFzZ0JOd01nREFFTElBSkJ5QUJxUVFBMkFnQWdBa0lBTndOQUlBSWpnWUNBZ0FCQm1JREFnQUJxS1FNQUlnUTNBa3dnQWlBRU53TDBBU0FDUVFBMkF2QUJJQUpDcXRXcTFRbzNBdWdCQWtBQ1FDQUJzME1BQUlBL2toQ2pnSUNBQUNJRlF3QUFnRTlkSUFWREFBQUFBR0J4UlEwQUlBV3BJUU1NQVF0QkFDRURDd0pBSUFKQjZBRnFJQU5CRkNBRFFSUkpHeUFCYkVIQUFHcEJCbllRam9DQWdBQkIvLzhEY1EwQUlBSkJ5QUZxUVJCcUlnTWdBa0hvQVdwQkVHb29BZ0EyQWdBZ0FrSElBV3BCQ0dvaUJpQUNRZWdCYWtFSWFpa0NBRGNEQUNBQ0lBSXBBdWdCTndQSUFTQUNRUWs3QWVRQklBSkNBRGNDM0FFZ0FrSElBV29RaFlDQWdBQkIvLzhEY1EwQUlBSkJ6QUJxSVFjZ0FrSFlBR3BCR0dvZ0FrSElBV3BCR0dvcEF3QTNBd0FnQWtIWUFHcEJFR29nQXlrREFEY0RBQ0FDUWRnQWFrRUlhaUFHS1FNQU53TUFJQUlnQWlrRHlBRTNBMWdnQWtFQU93RjhJQUpCQURvQWZrR0FBaUVJUVFBaENRTkFJQUFnQ1dvaENrRUNJUU1DUUFKQUFrQUNRQU5BSUFrZ0Eyb2lDeUFCVHcwQ0lBSkJnQUZxSUFKQndBQnFJQW9nQXhDSmdJQ0FBQUpBQWtBZ0FpMEFoQUVOQUNBRFFRSkhEUUVnQ2kwQUFDRUpEQU1MSUFJZ0FpMEFnZ0U2QUg0Z0FpQUNMd0dBQVRzQmZDQURRUUZxSVFNTUFRc0xJQUl2QVh3Z0FpMEFma0VRZEhJaENRc2dBa0hZQUdvZ0NSQ01nSUNBQUNBTFFYOXFJUWtDUUNBSVFmLy9QM0ZCLy84L1J3MEFBa0FnQWlnQ1FDSURSUTBBSUFOQkFDQURRWHhxS0FJQUlnb1FwSUNBZ0FBYUlBSkJBRFlDUkNBQ0lBcXRRdEFBZmtMa0FJQStBa2dMSUFKQjJBQnFRZi8vUHhDTWdJQ0FBQ0FDUVFBMkFuQWdBa0VKT2dCMFFZQUNJUWdNQkFzZ0FrSEFBR29nQ2lBREVJK0FnSUFBR2lBQ0tBSklEUUlDUUFKQUlBSW9Ba0FpQ3cwQVFRRWhEQXdCQ3lBTFFYeHFLQUlBclVMUUFINGlCQ0FFUXVRQWduMUM1QUI4UXRBQWdLY2hEQXNnQmtFQU5nSUFJQUpDQURjRHlBRUNRRUVBRFFBQ1FBSkFRZ0ZCSUNBTVoydXRRdi8vQTRPR3B5SU1RUWdnREVFSVN4c2lEVUVQYWlJT0lBMUJBM1JxSWc4Z0RVRUNkR3BCZkhFaURBMEFRWHdoREF3QkN5QUNLUUpNSWdTbklBeEJBa0VBSUFSQ0lJaW5LQUlBRVlDQWdJQUFBQ0lNUlEwQkN5QU1JQTAyQWdnZ0RDQU1JQTVCZkhGcU5nSUVJQXdnRENBUFFYeHhhallDQUNBQ0lBeEJER29pRERZQ3lBRWdERUVBSUEwUXBJQ0FnQUFhSUFJZ0RhMUMwQUIrUXVRQWdENEMwQUVnQWlnQ1JDSVBSUTBDQWtBQ1FDQUxEUUJCQUNFTURBRUxJQXRCZkdvb0FnQWhEQXNnQzBGMGFpSU9LQUlBSVEwZ0RrRUVhaWdDQUNFT0EwQWdERVVOQXdKQUlBc3NBQUJCQUU0TkFDQUNRY2dCYWlBT0tBSUFJQTVCQkdvb0FnQWdEUzhCQUNBTlFRSnFMUUFBUVJCMGNoQ1FnSUNBQUNBQ0tBTE1BU0FQUmcwRUN5QU1RWDlxSVF3Z0MwRUJhaUVMSUE1QkNHb2hEaUFOUVFScUlRME1BQXNMSUFKQnlBRnFJQWNRaUlDQWdBQU1CQXNDUUFKQUlBbEJBV29nQVVrTkFDQUtMUUFBSVFNTUFRc2dBa0dJQVdwQkVHb2dBa0hBQUdwQkVHb29BZ0EyQWdBZ0FrR0lBV3BCQ0dvZ0FrSEFBR3BCQ0dvcEF3QTNBd0FnQWlBQ0tRTkFOd09JQVNBQ1FhQUJhaUFDUVlnQmFpQUtJQU1RaVlDQWdBQUNRQUpBQWtBZ0FpMEFwQUVOQUNBRFFRSkhEUUVnQ2kwQUFDRUREQUlMSUFJdkFhQUJJQUl0QUtJQlFSQjBjaUVEREFJTElBSkJxQUZxUVJCcUlBSkJ3QUJxUVJCcUtBSUFOZ0lBSUFKQnFBRnFRUWhxSUFKQndBQnFRUWhxS1FNQU53TUFJQUlnQWlrRFFEY0RxQUVnQWtIQUFXb2dBa0dvQVdvZ0NpQURRWDlxRUltQWdJQUFJQUl2QWNBQklBSXRBTUlCUVJCMGNpRURDeUFDUWRnQWFpQURFSXlBZ0lBQUlBc2dBR3BCZjJvdEFBQWhBd3NnQWtIWUFHb2dBeENNZ0lDQUFDQUNRY0FBYWhDSGdJQ0FBQ0FDUVNCcVFSaHFJQUpCMkFCcVFSaHFLUU1BTndNQUlBSkJJR3BCRUdvZ0FrSFlBR3BCRUdvcEF3QTNBd0FnQWtFZ2FrRUlhaUFDUWRnQWFrRUlhaWtEQURjREFDQUNJQUlwQTFnM0F5QU1CQXNnQWtIQUFHcEJDR29pQ3lnQ0FDRU1JQXNnQmlnQ0FEWUNBQ0FHSUF3MkFnQWdBa0VBTmdKRUlBSXBBMEFoQkNBQ0lBSXBBOGdCTndOQUlBSWdCRGNEeUFFZ0FrSElBV29nQnhDSWdJQ0FBQXNnQWtIQUFHb2dDaUFESUFnUWtJQ0FnQUFnQ0VFQmFpRUlEQUFMQ3lBQ1FjQUFhaENIZ0lDQUFFRUFJUU1NQVFzZ0FrRVlhaUFDUVNCcVFSaHFLUU1BTndNQUlBSkJFR29nQWtFZ2FrRVFhaWtEQURjREFDQUNRUWhxSUFKQklHcEJDR29wQXdBM0F3QWdBaUFDS1FNZ053TUFRUUFoQXlBQ0lBSW9BZ1FpQVVFQ2FoQ0dnSUNBQUVILy93TnhEUUFnQWlnQ0FDSURJQUlvQWdSQkEzUnFJZ2xCQ0dvZ0FqVUNDRUlEaGpjREFDQUpJQUZCQTNRaUFVRUVjcTFDSUlZZ0FqVUNGSVEzQXdBZ0F5QUJha0VFYWlFREN5QUNRWkFDYWlTQWdJQ0FBQ0FEQzYwQ0F3Vi9BWDRCZnlPQWdJQ0FBRUVRYXlJQ0pJQ0FnSUFBUVFBaEF3SkFJQUFvQWdnaUJDQUJUdzBBSUFBb0FnQWhCUUpBSUFSRkRRQWdBaUFCUWYvLy8vOEJTem9BQ0NBQlFZQ0FnSUFDVHcwQUlBQW9BZ3dnQlNBRVFRTjBRUU1nQVVFRGRFRUFJQUJCRUdvb0FnQW9BZ1FSZ29DQWdBQUFRUUZ4UlEwQUlBQWdBVFlDQ0VFQUlRTU1BUXNnQUVFTWFpSUdLUUlBSVFjZ0FpQUJRZi8vLy84QlN6b0FEQUpBSUFGQmdJQ0FnQUpQRFFBQ1FBSkFJQUZCQTNRaUNBMEFRWGdoQ0F3QkN5QUhweUFJUVFOQkFDQUhRaUNJcHlnQ0FCR0FnSUNBQUFBaUNFVU5BUXNnQ0NBQUtBSUFJQUFvQWdSQkEzUVFwWUNBZ0FBaENDQUdJQVVnQkJDZ2dJQ0FBQ0FBSUFFMkFnZ2dBQ0FJTmdJQURBRUxRUUVoQXdzZ0FrRVFhaVNBZ0lDQUFDQURDNkFDQXdSL0FYNEVmeU9BZ0lDQUFFRVFheUlESklDQWdJQUFJNEdBZ0lBQUlRUUNRQUpBSUFBb0FnUU5BQ0FFUVlDQXdJQUFhaUVGREFFTElBQW9BZ0FoQmlBQklBSVFpb0NBZ0FBaEJ3SkFBa0FnQmcwQVFRQWhCRUYvSVFnTUFRc2dCa0Y4YWlnQ0FDSUVRWDlxSVFnTElBWkJlR29oQ1NBSUlBZW5jU0VBSUFkQ09ZaW5JUW9EUUNPQmdJQ0FBRUdBZ01DQUFHb2hCU0FHSUFCcUxBQUFJZ3RGRFFFZ0JFVU5BUUpBSUF0QmYwb05BQ0FLSUF0Qi93QnhSdzBBSUFFZ0FpQUpLQUlBSUFCQkEzUnFJZ3NvQWdBZ0N5Z0NCQkNMZ0lDQUFFRUJjVVVOQUNBRFFRRTZBQXdnQTBFSWFpRUZEQUlMSUFSQmYyb2hCQ0FBUVFGcUlBaHhJUUFNQUFzTElBVXRBQVFoQUNBRFFSQnFKSUNBZ0lBQUlBQkJBRWNMMkFFQ0FYNEVmeUFBSUFFZ0FoQ1BnSUNBQUJvZ0FTQUNFSXFBZ0lBQUlRUkJmeUVGQWtBZ0FDZ0NBQ0lHUlEwQUlBWkJmR29vQWdCQmYyb2hCUXNnQlNBRXAzRWhCd0pBQTBBZ0JpQUhhaUlJTEFBQVFYOUtEUUVnQjBFQmFpQUZjU0VIREFBTEN5QUFJQUFvQWdoQmYybzJBZ2dnQ0NBRVFqbUlwMEdBQVhJNkFBQWdBQ2dDQUVGNGFpZ0NBQ0FIUVFOMGFpSUdJQUkyQWdRZ0JpQUJOZ0lBSUFBb0FnQkJkR29vQWdBZ0IwRUNkR29pQnlBRE93RUFJQWRCQW1vZ0EwSC8vejl4UVJCMk9nQUFJQUFnQUNnQ0JFRUJhallDQkFzbEFRRi9BMEJCZnlBQVFRRjJJQUJxUVFocUlnSWdBaUFBU1JzaUFDQUJTUTBBQ3lBQUN6OEJBWDhqZ0lDQWdBQkJFR3NpQVNTQWdJQ0FBQ0FCSUFBcEFndzNBd2dnQVVFSWFpQUFLQUlBSUFBb0FnZ1FrNENBZ0FBZ0FVRVFhaVNBZ0lDQUFBczNBUUYvQWtBZ0FrRURkRUVBSUFJYklnTkZEUUFnQUNnQ0FDQUJRUVFnQWhzZ0EwRUNRUUFnQUNnQ0JDZ0NDQkdCZ0lDQUFBQUxDNE1NQXdGL0FYNExmeU9BZ0lDQUFFSFFBR3NpQXlTQWdJQ0FBQ0FEUVFBMkFrUWdBMEtxMWFyVkNqY0NQQ0FESTRHQWdJQUFRWmlBd0lBQWFpa0RBQ0lFTndKSUFrQUNRQUpBQWtBZ0FnMEFRYXJWcXRWNklRVkJBQ0VHREFFTFFhclZxdFY2SVFVZ0FpRUdJQU5CeUFCcUlnZEJxdFdxMVhwQkFDQUNFSldBZ0lBQVFRRnhEUUFnQTBFb2FpQUhJQUlRbG9DQWdBQWdBeThCTUEwQklBTW9BaXdoQmlBREtBSW9JUVVMUVFraENFRUFJUWxCQUNFS1FRQWhDMEVBSVF3RFFBSkFBa0FDUUFKQUFrQWdEQ0FDUmcwQUlBaEIvd0Z4SWdkQkZFa05BUXdFQ3lBRElBUTNBeUFDUUFKQUlBTkJJR29nQlNBR0lBSVFsWUNBZ0FCQkFYRkZEUUFnQlNFSURBRUxJQU5CUEdvZ0EwRWdhaUFDRUphQWdJQUFJQU12QVVRTkJpQURLQUk4SWdnZ0JTQURLQUpBSWdKQkFuUVFwWUNBZ0FBYUlBTWdCRGNES0NBRFFTaHFJQVVnQmhDWGdJQ0FBQXNDUUNBQ0RRQkJBQ0VKUWFyVnF0VjZJUXBCQUNFTURBSUxJQU5CQURZQ01DQURRcXJWcXRVS053SW9JQU1nQkRjQ05DQURRUUJCLy84L0VKR0FnSUFBSWdkQi8vLy8vd0ZMT2dBOElBZEJnSUNBZ0FKUERRSUNRQUpBSUFkQkEzUWlEUTBBUVh3aERRd0JDeUFFcHlBTlFRSkJBQ0FFUWlDSXB5Z0NBQkdBZ0lDQUFBQWlEVVVOQXdzZ0F5QUhOZ0l3SUFNZ0RUWUNLRUVBSVFjQ1FBTkFJQWRCK1AvL0EwWU5BU0FOSUFkcVFnQTNBZ0FnQjBFSWFpRUhEQUFMQ3lBRFFmLy9QellDTENBRElBUTNBa2hCQUNFSElBTkJBRFlDUkNBRFFxclZxdFVLTndJOElBTkJQR29nQWtFWWJCQ1lnSUNBQUVILy93TnhEUUlnQXlrQ1NDRUVJQU1vQWtRaERDQURLQUk4SWdvZ0F5Z0NRQ0lKYWlBSUxRQUFPZ0FBSUEwZ0NDOEJBQ0FJUVFKcUxRQUFRUkIwY2tFRGRHb2lEa0VCTmdJRUlBNGdDallDQUNBSlFRRnFJUUJCZ0FJaEQwRUJJUTREUUNBQUlRa0NRQUpBQWtBQ1FDQU9JQUpQRFFBQ1FDQUlJQTVCQW5ScUlnQXZBUUFnQUVFQ2FpMEFBRUVRZEhJaUFFSC8vejlIRFFBZ0RrRUJhaUlPSUFKUERRRkJBQ0VIQWtBRFFDQUhRZmovL3dOR0RRRWdEU0FIYWtJQU53SUFJQWRCQ0dvaEJ3d0FDd3NDUUNBSUlBNUJBblJxSWdjdkFRQWdCMEVDYWkwQUFFRVFkSElpQjBHQUFra05BQ0FEUWYvL1B6WUNMQXdKQ3lBS0lBbHFJQWM2QUFBZ0NVRUJhaUVBUVlBQ0lROE1CQXNnQUVHQUFra05BUUpBSUEwZ0FFRURkR29pQUNnQ0FDSUxEUUFnQ2lBSmFpQUtJQWRxSWdBZ0NTQUhheUlMRUtXQWdJQUFHaUFLSUFzZ0NXb2lDMm9nQUMwQUFEb0FBQ0FMUVFGcUlRQU1Bd3NnQ2lBSmFpQUxJQUFvQWdRaUFCQ2xnSUNBQUJvZ0FDQUphaUVBREFJTElBTkIvLzgvTmdJc0lBTkJLR29Ra29DQWdBQU1CUXNnQ2lBSmFpQUFPZ0FBSUFsQkFXb2hBQXNnRFNBUFFmLy9QM0ZCQTNScUlnc2dDU0FIYTBFQmFqWUNCQ0FMSUFvZ0IybzJBZ0FnRDBFQmFpRVBDeUFPUVFGcUlRNGdDU0VIREFBTEN5QUlJQXRCZ0FKcVFYOGdCM1JCZjNOUGFpRUlEQUlMSUFNZ0JEY0NHQ0FESUFvMkFnd2dBeUFKTmdJUUlBTWdERFlDRkFKQUFrQWdEQ0FKUVFocUlnMUpEUUFnQ1NFSERBRUxRUUFoQnlBRFFReHFJQXdnRFJDUmdJQ0FBQkNZZ0lDQUFFSC8vd054RFFVZ0F5Z0NEQ0VLSUFNb0FoUWhEQ0FES0FJUUlRY0xJQW9nQjJvaUJ5QUpPZ0FBSUFkQkIyb2dERUVZZGpvQUFDQUhRUVpxSUF4QkVIWTZBQUFnQjBFRmFpQU1RUWgyT2dBQUlBZEJCR29nRERvQUFDQUhRUU5xSUFsQkdIWTZBQUFnQjBFQ2FpQUpRUkIyT2dBQUlBZEJBV29nQ1VFSWRqb0FBQ0FLSUFscUlRY01CQXNnQTBFb2FoQ1NnSUNBQUF3Q0MwRUFJUTRnQ0NFSEFrQURRQ0FIUWY4QmNTSU5SUTBCSUFBZ0NpQUpRZjhCY1VIQUFFWWlEMm9pQ2tFRGRHb3BBd0JCQUNBSklBOGJJZ2xCUDNHdGhrRUFJQTFCd0FBZ0NXdEIvd0Z4SWc4Z0RTQVBTUnNpRFd0QlAzR3RpS2NnQnlBTmF5SUhkQ0FPY2lFT0lBMGdDV29oQ1F3QUN3c2dCU0FNUVFKMGFpSUhJQTQ3QVFBZ0IwRUNhaUFPUWYvL1AzRWlCMEVRZGpvQUFFRUFJQXRCQVdvZ0IwSC8vejlHSWdjYklRdEJDU0FJSUFjYklRZ2dERUVCYWlFTURBQUxDMEVBSVFjTElBTkIwQUJxSklDQWdJQUFJQWNMa0FFQkFuOGpnSUNBZ0FCQkVHc2lCQ1NBZ0lDQUFBSkFBa0FnQXcwQUlBUWdBQ2tDQURjREFDQUVJQUVnQWhDWGdJQ0FBRUVCSVFVTUFRdEJBQ0VGSUFKRkRRQWdCQ0FEUWYvLy8vOERTem9BRENBRFFZQ0FnSUFFVHcwQUlBQW9BZ0FnQVNBQ1FRSjBRUUlnQTBFQ2RFRUFJQUFvQWdRb0FnUVJnb0NBZ0FBQUlRVUxJQVJCRUdva2dJQ0FnQUFnQlF2QkFRSUJmd0YrSTRDQWdJQUFRU0JySWdNa2dJQ0FnQUFnQVNrQ0FDRUVJQU1nQWtILy8vLy9BMHM2QUJ3Q1FBSkFJQUpCZ0lDQWdBUlBEUUFDUUFKQUlBSkJBblFpQVEwQVFYd2hBUXdCQ3lBRXB5QUJRUUpCQUNBRVFpQ0lweWdDQUJHQWdJQ0FBQUFpQVVVTkFRc2dBeUFDTmdJVUlBTWdBVFlDRUNBRFFRQTdBUmdnQTBFUWFpRUNEQUVMSUFOQkFUc0JEQ0FEUVFScUlRSUxJQUFnQWlrQ0FEY0NBQ0FBUVFocUlBSkJDR29vQWdBMkFnQWdBMEVnYWlTQWdJQ0FBQXMzQVFGL0FrQWdBa0VDZEVFQUlBSWJJZ05GRFFBZ0FDZ0NBQ0FCUVFRZ0Foc2dBMEVDUVFBZ0FDZ0NCQ2dDQ0JHQmdJQ0FBQUFMQzlvQkFRVi9JNENBZ0lBQVFTQnJJZ0lrZ0lDQWdBQkJBQ0VEQWtBZ0FDZ0NDQ0lFSUFGUERRQWdBQ2dDQUNFRkFrQUNRQ0FFUlEwQVFRQU5BQ0FBS0FJTUlBVWdCRUVBSUFGQkFDQUFRUkJxS0FJQUtBSUVFWUtBZ0lBQUFFRUJjVVVOQUNBQUlBRTJBZ2dNQVFzZ0FpQUFRUXhxSWdZcEFnQTNBeEFnQWtFWWFpQUNRUkJxSUFFUWdZQ0FnQUFnQWk4QkhDSUREUUVnQWlnQ0dDQUFLQUlBSUFBb0FnUVFwWUNBZ0FBaEF5QUdJQVVnQkJDRWdJQ0FBQ0FBSUFFMkFnZ2dBQ0FETmdJQUMwRUFJUU1MSUFKQklHb2tnSUNBZ0FBZ0F3dlNBZ01HZndGK0IzOGpnSUNBZ0FCQkVHc2lBeVNBZ0lDQUFDQUFLQUlFSVFRZ0FDZ0NBQ0VGUVFBaEJpQUNRZjhCY1NFSEEzOENRQUpBQWtBZ0JpQUVSdzBBUVg4aENBd0JDd0pBSUFVZ0JrRUVkR29pQWtFSWFpa0RBQ0lKUWdCVERRQWdBaWtEQUhzZ0NYdDhweUFCU1EwQ0N5QUdRUWQwSWdoQmdBRnFJUW9EUUNBSUlBcFBEUUlnQ0NBQUtRSUFJZ2xDR1lpblFZQi9jU0lDSUFnZ0Frc2JJZ3NnQ0dzaERDQUpwMEVJSUFsQ0lJaW5HeUVOSUFoQkVIUm9JUTVCQUNFQ0FrQURRQUpBSUF3Z0FrY05BQ0FMSVE4TUFndEIvd0VnQ0NBQ2FpSVBRUWR4SWhCQkIzTjJRUUVnRUhSeElBMGdEMEVEZG1vdEFBQnhSUTBCSUFKQkFXb2lBaUFCU1EwQUlBNGdCMGtOQUFzZ0F5QUpOd01JSUFOQkNHb2dDQ0FCUVFBUW1vQ0FnQUFNQWdzZ0QwRUJhaUVJREFBTEN5QURRUkJxSklDQWdJQUFJQWdQQ3lBR1FRRnFJUVlNQUFzTFZBRUJmeUFEUVFGeElRUUNRQU5BSUFKRkRRRWdBQ2dDQUVFSUlBQW9BZ1FiSUFGQkEzWnFJZ01nQXkwQUFFRitJQUZCQjNFaUEzZHhJQVFnQTNSeU9nQUFJQUZCQVdvaEFTQUNRWDlxSVFJTUFBc0xDOXNCQVFOL0k0Q0FnSUFBUVJCcklnSWtnSUNBZ0FBQ1FDQUFRWUFRVHcwQUk0R0FnSUFBUWFpQXdJQUFhaUFBSUFGQmdCQWdBVUdBRUVrYklBQnJFSnlBZ0lBQUN3SkFJQUZCZ0JCTkRRQUNRQ09CZ0lDQUFFR2dnTUNBQUdvb0FnUU5BQ09CZ0lDQUFFR2dnTUNBQUdvaUEwR0FJRFlDQkNBRElBRkJmMm9pQVVFUWRDSUVOZ0lBSUFSQkFFR0FnQVFRcElDQWdBQWFDeUFDSTRHQWdJQUFRYUNBd0lBQWFpa0RBRGNEQ0NBQ1FRaHFJQUJCZ0JBZ0FFR0FFRXNiSWdCQmdIQnFJQUVnQUdzUW5JQ0FnQUFMSUFKQkVHb2tnSUNBZ0FBTE93RUJmeU9BZ0lDQUFFRVFheUlESklDQWdJQUFJQU1nQUNrQ0FEY0RDQ0FEUVFocUlBRWdBa0VCRUpxQWdJQUFJQU5CRUdva2dJQ0FnQUFMdlFFQkJIOUJBQ0VFQWtBZ0FVR0JnSHhQRFFBQ1FDT0JnSUNBQUVHb2dNQ0FBR29nQVVILy93TnFRUkIySWdFZ0FoQ1pnSUNBQUNJRVFYOUhEUUFDUUNPQmdJQ0FBRUdnZ01DQUFHb2dBU0FDRUptQWdJQUFJZ1JCZjBZTkFDQUVRWUFRYWlFRURBRUxRUUFoQkVFQklBSjBJZ1UvQUNJR1FSQjBJZ0pxUVg5cVFRQWdCV3R4SWdVZ0FtdEJFSFlpQnlBQmFrQUFRUUZJRFFFZ0J5QUdhaUVFSUFVZ0FrWU5BQ0FHSUFRUW00Q0FnQUFMSUFSQkVIUWhCQXNnQkF0UEFRRi9Ba0FnQWtILy93TnFJZ1pCZ0lCOGNTQUVUeUlDUlEwQUlBUkIvLzhEYWtFUWRpSUVJQVpCRUhZaUJrWU5BQ0FFSUFGQi8vOERha0VRZGlJQmFpQUJJQVpxRUp1QWdJQUFDeUFDQ3lFQUlBRkIvLzhEYWtFUWRpSUJJQUVnQWtILy93TnFRUkIyYWhDYmdJQ0FBQXMzQVFGL0FrQWdBa0VEZEVFQUlBSWJJZ05GRFFBZ0FDZ0NBQ0FCUVFnZ0Foc2dBMEVEUVFBZ0FDZ0NCQ2dDQ0JHQmdJQ0FBQUFMQ3o0QUlBRWdBSVZDNmRyZzJZN0IrdStkZjM0aUFFSXZpQ0FCaFNBQWhVTHAydURaanNINjc1MS9maUlCUWkrSUlBR0ZRdW5hNE5tT3dmcnZuWDkrQzBJQkFuNGdBQ0FCS1FBQUlBSjhJZ0lnQVNrQUNId2dBU2tBRUh3aUJDQUJLUUFZSWdWOE53TUFJQUFnQkVJVWlTQUNmQ0FGSUFJZ0EzeDhRaXVKZkRjRENBdWVBZ0lDZndKOUFrQUNRQUpBSUFDOElnRkJnSUNBQkU0TkFFTUFBTUIvUXdBQWdQOGdBVUgvLy8vL0IzRWlBaHNoQXlBQlFRQklEUUlnQWtVTkFpQUFRd0FBQUV5VXZDRUJRZWgrSVFJTUFRc2dBQ0VESUFGQi8vLy8rd2RMRFFGQmdYOGhBa01BQUFBQUlRTWdBVUdBZ0lEOEEwWU5BUXNnQVVHTjlxc0NhaUlCUWYvLy93TnhRZk9KMVBrRGFyNURBQUNBdjVJaUFDQUFJQUJEQUFBQVA1U1VJZ09UdkVHQVlIRytJZ1JEQUxDNFA1UWdBQ0FFa3lBRGt5QUFJQUJEQUFBQVFKS1ZJZ0FnQXlBQUlBQ1VJZ0FnQUNBQWxDSUFRKzdwa1Q2VVE2cXFLaitTbENBQUlBQkRKcDU0UHBSREU4N01QcEtVa3BLVWtpSUFRd0N3dUQrVUlBQWdCSkpEMUpvNHVaU1NraUFDSUFGQkYzWnFzcEloQXdzZ0F3c3NBUUYvQWtBZ0FrVU5BQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQmYyb2lBZzBBQ3dzZ0FBdENBUUYvQWtBZ0FrVU5BQ0FDUVg5cUlRSWdBQ0VEQTBBZ0F5QUJMUUFBT2dBQUlBSkZEUUVnQWtGL2FpRUNJQUZCQVdvaEFTQURRUUZxSVFNTUFBc0xJQUFMQzBFQ0FFR0FnTUFBQ3dnQUFBQUFBQUFBQUFCQmlJREFBQXNvQVFBQUFBSUFBQUFEQUFBQUFBQUFBQUFBQUFBSUFCQUFxcXFxcWdBQUFBQXdBQkFBRUFBQUFBPT0iKTtjb25zdCBmPWF3YWl0IGgoKSxCPWYuZXhwb3J0cztmdW5jdGlvbiBuKEEpe2NvbnN0e3B0cjpnLGxlbmd0aDpJfT10KEEsQiksQz1CLmNvbXByZXNzUGFja2VkKGcsSSk7Qi5mcmVlKGcsSSk7Y29uc3R7c3RhcnQ6USxlbmQ6RSxjYXBhY2l0eTppfT13KEIubWVtb3J5LEMpLG89bmV3IFVpbnQxNkFycmF5KEIubWVtb3J5LmJ1ZmZlci5zbGljZShRLEUpKSxhPUcobyk7cmV0dXJuIEIuZnJlZShRLGkpLGF9ZnVuY3Rpb24gSihBKXtjb25zdCBnPShBLmNoYXJDb2RlQXQoQS5sZW5ndGgtMSk8PDE2KStBLmNoYXJDb2RlQXQoQS5sZW5ndGgtMik7bGV0IEk9Qi5hbGxvY1VpbnQxNihBLmxlbmd0aC0yKSxDPW5ldyBVaW50MTZBcnJheShCLm1lbW9yeS5idWZmZXIsSSxBLmxlbmd0aC0yKTtmb3IobGV0IEQ9MDtEPEEubGVuZ3RoLTI7RCsrKUNbRF09QS5jaGFyQ29kZUF0KEQpO2NvbnN0IFE9Qi5kZWNvbXByZXNzUGFja2VkKEksQS5sZW5ndGgtMixnKTtCLmZyZWUoSSwyKihBLmxlbmd0aC0yKSk7Y29uc3R7c3RhcnQ6RSxlbmQ6aSxjYXBhY2l0eTpvfT13KEIubWVtb3J5LFEpLGE9bmV3IFVpbnQ4QXJyYXkoQi5tZW1vcnkuYnVmZmVyLnNsaWNlKEUsaSkpLGs9bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGEpO3JldHVybiBCLmZyZWUoRSxvKSxrfXNlbGYub25tZXNzYWdlPWZ1bmN0aW9uKEEpe2NvbnN0e2NvbW1hbmQ6ZyxpZDpJLGRhdGE6Q309QS5kYXRhO3N3aXRjaChnKXtjYXNlImRlY29tcHJlc3MiOntzZWxmLnBvc3RNZXNzYWdlKHtpZDpJLGRhdGE6SihDKX0pO2JyZWFrfWNhc2UiY29tcHJlc3MiOntzZWxmLnBvc3RNZXNzYWdlKHtpZDpJLGRhdGE6bihDKX0pO2JyZWFrfX19fSkoKTs=", l = typeof window < "u" && window.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);" + atob(d)], { type: "text/javascript;charset=utf-8" });
2
- function V(Q) {
3
- let U;
4
- try {
5
- if (U = l && (window.URL || window.webkitURL).createObjectURL(l), !U)
6
- throw "";
7
- const F = new Worker(U, {
8
- type: "module",
9
- name: Q?.name
10
- });
11
- return F.addEventListener("error", () => {
12
- (window.URL || window.webkitURL).revokeObjectURL(U);
13
- }), F;
14
- } catch {
15
- return new Worker(
16
- "data:application/javascript;base64," + d,
17
- {
18
- type: "module",
19
- name: Q?.name
20
- }
21
- );
22
- }
23
- }
24
- const R = new V();
25
- let J = 0;
26
- const B = {};
27
- R.onmessage = function(Q) {
28
- const U = Q.data.id;
29
- B[U](Q.data.data), delete B[U];
30
- };
31
- async function Z(Q) {
32
- const U = J++;
33
- return new Promise((F) => {
34
- B[U] = F, R.postMessage({ command: "compress", id: U, data: Q });
35
- });
36
- }
37
- async function W(Q) {
38
- const U = J++;
39
- return new Promise((F) => {
40
- B[U] = F, R.postMessage({ command: "decompress", id: U, data: Q });
41
- });
42
- }
43
- export {
44
- Z as compressPacked,
45
- W as decompressPacked
46
- };
@@ -1,56 +0,0 @@
1
- function o(n, e) {
2
- const t = new TextEncoder().encode(n), a = e.allocUint8(t.length);
3
- return new Uint8Array(
4
- e.memory.buffer,
5
- a,
6
- t.length
7
- ).set(t), { ptr: a, length: t.length };
8
- }
9
- function f(n) {
10
- const e = new Array(n.length);
11
- for (let t = 0; t < n.length; t++)
12
- e[t] = String.fromCharCode(n[t]);
13
- return e.join("");
14
- }
15
- function c(n, e) {
16
- const t = new Uint32Array(
17
- n.buffer.slice(e, e + 8)
18
- ), a = t.at(0), r = t.at(1);
19
- return {
20
- start: e - a,
21
- end: e,
22
- capacity: r
23
- };
24
- }
25
- const l = async (n = {}, e) => {
26
- let t;
27
- if (e.startsWith("data:")) {
28
- const a = e.replace(/^data:.*?base64,/, "");
29
- let r;
30
- if (typeof Buffer == "function" && typeof Buffer.from == "function")
31
- r = Buffer.from(a, "base64");
32
- else if (typeof atob == "function") {
33
- const s = atob(a);
34
- r = new Uint8Array(s.length);
35
- for (let i = 0; i < s.length; i++)
36
- r[i] = s.charCodeAt(i);
37
- } else
38
- throw new Error("Failed to decode base64-encoded data URL, Buffer and atob are not supported");
39
- t = await WebAssembly.instantiate(r, n);
40
- } else {
41
- const a = await fetch(e), r = a.headers.get("Content-Type") || "";
42
- if ("instantiateStreaming" in WebAssembly && r.startsWith("application/wasm"))
43
- t = await WebAssembly.instantiateStreaming(a, n);
44
- else {
45
- const s = await a.arrayBuffer();
46
- t = await WebAssembly.instantiate(s, n);
47
- }
48
- }
49
- return t.instance;
50
- };
51
- export {
52
- f as U,
53
- o as c,
54
- c as e,
55
- l as i
56
- };
@@ -1,5 +0,0 @@
1
- export type Message = {
2
- command: string;
3
- id: number;
4
- data: string;
5
- };
package/src/common.ts DELETED
@@ -1,39 +0,0 @@
1
- export function copyToWasmBuffer(
2
- str: string,
3
- exports: { allocUint8: (size: number) => number; memory: any }
4
- ) {
5
- // There's also an 'encodeInto' method to avoid a copy, but by encoding first, we can allocate only exactly what we need.
6
- const utf8Str = new TextEncoder().encode(str);
7
- const ptrToStr = exports.allocUint8(utf8Str.length);
8
- const inBuffer = new Uint8Array(
9
- exports.memory.buffer,
10
- ptrToStr,
11
- utf8Str.length
12
- );
13
- inBuffer.set(utf8Str); // Copy to WASM buffer.
14
-
15
- return { ptr: ptrToStr, length: utf8Str.length };
16
- }
17
-
18
- // Horrible. Surely we can do better...
19
- export function Uint16ArraytoString(buf: Uint16Array) {
20
- const strBuilder = new Array(buf.length);
21
- for (let i = 0; i < buf.length; i++)
22
- strBuilder[i] = String.fromCharCode(buf[i]);
23
- return strBuilder.join("");
24
- }
25
-
26
- export function extractFooter(memory: WebAssembly.Memory, ptrToFooter: number) {
27
- const footer = new Uint32Array(
28
- memory.buffer.slice(ptrToFooter, ptrToFooter + 8)
29
- );
30
- const streamLength = footer.at(0)!;
31
- const capacity = footer.at(1)!;
32
- const start = ptrToFooter - streamLength;
33
-
34
- return {
35
- start,
36
- end: ptrToFooter,
37
- capacity,
38
- };
39
- }
Binary file
package/src/module.wasm DELETED
Binary file
@@ -1,77 +0,0 @@
1
- import {
2
- Uint16ArraytoString,
3
- copyToWasmBuffer,
4
- extractFooter,
5
- } from "./common.js";
6
- import init from "./module-packed.wasm?init";
7
-
8
- type exportsType = {
9
- allocUint8: (size: number) => number;
10
- allocUint16: (size: number) => number;
11
- compressPacked: (ptr: number, length: number) => number;
12
- decompressPacked: (
13
- ptr: number,
14
- length: number,
15
- tokenCount: number
16
- ) => number;
17
- free: (ptr: number, length: number) => void;
18
- memory: WebAssembly.Memory;
19
- };
20
-
21
- const instance = await init();
22
- const exports = instance.exports as exportsType;
23
-
24
- export function compressPacked(str: string) {
25
- const { ptr, length } = copyToWasmBuffer(str, exports);
26
-
27
- const ptrToFooter = exports.compressPacked(ptr, length);
28
-
29
- exports.free(ptr, length);
30
-
31
- //console.log(ptrToFooter);
32
-
33
- const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
34
-
35
- //console.log(start, end, capacity / (1024 * 1024));
36
-
37
- // Includes the tokenCount at the end of the stream (2 * u16).
38
- const compressed = new Uint16Array(exports.memory.buffer.slice(start, end));
39
-
40
- const r = Uint16ArraytoString(compressed);
41
-
42
- exports.free(start, capacity);
43
-
44
- return r;
45
- }
46
-
47
- export function decompressPacked(compressedStr: string) {
48
- const tokenCount =
49
- (compressedStr.charCodeAt(compressedStr.length - 1)! << 16) +
50
- compressedStr.charCodeAt(compressedStr.length - 2);
51
-
52
- let ptrToCompressed = exports.allocUint16(compressedStr.length - 2);
53
- let compressed_buffer = new Uint16Array(
54
- exports.memory.buffer,
55
- ptrToCompressed,
56
- compressedStr.length - 2
57
- );
58
-
59
- for (let i = 0; i < compressedStr.length - 2; i++)
60
- compressed_buffer[i] = compressedStr.charCodeAt(i);
61
-
62
- const ptrToFooter = exports.decompressPacked(
63
- ptrToCompressed,
64
- compressedStr.length - 2,
65
- tokenCount
66
- );
67
-
68
- exports.free(ptrToCompressed, 2 * (compressedStr.length - 2));
69
-
70
- const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
71
- const content = new Uint8Array(exports.memory.buffer.slice(start, end));
72
- const r = new TextDecoder().decode(content);
73
-
74
- exports.free(start, capacity);
75
-
76
- return r;
77
- }
@@ -1,29 +0,0 @@
1
- // @ts-expect-error
2
- import Worker from "./worker-packed.js?worker&inline";
3
-
4
- const worker = new Worker();
5
-
6
- let nextID = 0;
7
- const resolver: Record<number, (str: string) => void> = {};
8
-
9
- worker.onmessage = function (e: { data: { id: number; data: string } }) {
10
- const id = e.data.id;
11
- resolver[id](e.data.data);
12
- delete resolver[id];
13
- };
14
-
15
- export async function compressPacked(data: string) {
16
- const id = nextID++;
17
- return new Promise<string>((resolve) => {
18
- resolver[id] = resolve;
19
- worker.postMessage({ command: "compress", id, data });
20
- });
21
- }
22
-
23
- export async function decompressPacked(data: string) {
24
- const id = nextID++;
25
- return new Promise<string>((resolve) => {
26
- resolver[id] = resolve;
27
- worker.postMessage({ command: "decompress", id, data });
28
- });
29
- }
@@ -1,29 +0,0 @@
1
- // @ts-expect-error
2
- import Worker from "./worker.js?worker&inline";
3
-
4
- const worker = new Worker();
5
-
6
- let nextID = 0;
7
- const resolver: Record<number, (str: string) => void> = {};
8
-
9
- worker.onmessage = function (e: { data: { id: number; data: string } }) {
10
- const id = e.data.id;
11
- resolver[id](e.data.data);
12
- delete resolver[id];
13
- };
14
-
15
- export async function compress(data: string) {
16
- const id = nextID++;
17
- return new Promise<string>((resolve) => {
18
- resolver[id] = resolve;
19
- worker.postMessage({ command: "compress", id, data });
20
- });
21
- }
22
-
23
- export async function decompress(data: string) {
24
- const id = nextID++;
25
- return new Promise<string>((resolve) => {
26
- resolver[id] = resolve;
27
- worker.postMessage({ command: "decompress", id, data });
28
- });
29
- }
@@ -1,61 +0,0 @@
1
- import {
2
- Uint16ArraytoString,
3
- copyToWasmBuffer,
4
- extractFooter,
5
- } from "./common.js";
6
- import init from "./module.wasm?init";
7
-
8
- type exportsType = {
9
- allocUint8: (size: number) => number;
10
- allocUint16: (size: number) => number;
11
- compress: (ptr: number, length: number) => number;
12
- decompress: (ptr: number, length: number) => number;
13
- free: (ptr: number, length: number) => void;
14
- memory: WebAssembly.Memory;
15
- };
16
-
17
- const instance = await init();
18
- const exports = instance.exports as exportsType;
19
-
20
- export function compress(str: string) {
21
- const { ptr, length } = copyToWasmBuffer(str, exports);
22
-
23
- const ptrToFooter = exports.compress(ptr, length);
24
-
25
- exports.free(ptr, length);
26
-
27
- const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
28
-
29
- const content = new Uint16Array(exports.memory.buffer.slice(start, end));
30
- const r = Uint16ArraytoString(content);
31
-
32
- exports.free(start, capacity);
33
-
34
- return r;
35
- }
36
-
37
- export function decompress(compressedStr: string) {
38
- const ptrToCompressed = exports.allocUint16(compressedStr.length);
39
- const compressed_buffer = new Uint16Array(
40
- exports.memory.buffer,
41
- ptrToCompressed,
42
- compressedStr.length
43
- );
44
- for (let i = 0; i < compressedStr.length; i++)
45
- compressed_buffer[i] = compressedStr.charCodeAt(i);
46
-
47
- const ptrToFooter = exports.decompress(
48
- ptrToCompressed,
49
- compressedStr.length
50
- );
51
-
52
- exports.free(ptrToCompressed, 2 * compressedStr.length);
53
-
54
- const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
55
- const content = new Uint8Array(exports.memory.buffer.slice(start, end));
56
- const r = new TextDecoder().decode(content);
57
-
58
- exports.free(start, capacity);
59
-
60
- return r;
61
- }
package/src/wasm.d.ts DELETED
@@ -1,6 +0,0 @@
1
- declare module "*.wasm?init" {
2
- const initWasm: (
3
- options?: WebAssembly.Imports
4
- ) => Promise<WebAssembly.Instance>;
5
- export default initWasm;
6
- }
@@ -1,21 +0,0 @@
1
- import { compressPacked, decompressPacked } from "./smol-string-packed.js";
2
-
3
- export type Message = {
4
- command: string;
5
- id: number;
6
- data: string;
7
- };
8
-
9
- self.onmessage = function (e: { data: Message }) {
10
- const { command, id, data } = e.data;
11
- switch (command) {
12
- case "decompress": {
13
- self.postMessage({ id, data: decompressPacked(data) });
14
- break;
15
- }
16
- case "compress": {
17
- self.postMessage({ id, data: compressPacked(data) });
18
- break;
19
- }
20
- }
21
- };
package/src/worker.ts DELETED
@@ -1,21 +0,0 @@
1
- import { compress, decompress } from "./smol-string.js";
2
-
3
- export type Message = {
4
- command: string;
5
- id: number;
6
- data: string;
7
- };
8
-
9
- self.onmessage = function (e: { data: Message }) {
10
- const { command, id, data } = e.data;
11
- switch (command) {
12
- case "decompress": {
13
- self.postMessage({ id, data: decompress(data) });
14
- break;
15
- }
16
- case "compress": {
17
- self.postMessage({ id, data: compress(data) });
18
- break;
19
- }
20
- }
21
- };
package/tsconfig.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "useDefineForClassFields": true,
5
- "module": "ESNext",
6
- "lib": ["ESNext", "DOM", "DOM.Iterable"],
7
- "skipLibCheck": true,
8
-
9
- /* Bundler mode */
10
- "moduleResolution": "bundler",
11
- "allowImportingTsExtensions": true,
12
- "resolveJsonModule": true,
13
- "isolatedModules": true,
14
- "noEmit": true,
15
-
16
- /* Linting */
17
- "strict": true,
18
- "noUnusedLocals": true,
19
- "noUnusedParameters": true,
20
- "noFallthroughCasesInSwitch": true
21
- },
22
- "include": ["src"]
23
- }
package/vite.config.ts DELETED
@@ -1,45 +0,0 @@
1
- /// <reference types="vitest" />
2
- import { defineConfig } from "vite";
3
- import dts from "vite-plugin-dts";
4
- import pkg from "./package.json" assert { type: "json" };
5
-
6
- import topLevelAwait from "vite-plugin-top-level-await";
7
-
8
- export default defineConfig({
9
- build: {
10
- lib: {
11
- entry: {
12
- "smol-string": "./src/smol-string.ts",
13
- "smol-string-packed": "./src/smol-string-packed.ts",
14
- "smol-string-worker": "./src/smol-string-worker.ts",
15
- "smol-string-worker-packed":
16
- "./src/smol-string-worker-packed.ts",
17
- },
18
- formats: ["es"],
19
- },
20
- rollupOptions: {
21
- external: [
22
- ...Object.keys(pkg["dependencies"] ?? {}), // don't bundle dependencies
23
- /^node:.*/, // don't bundle built-in Node.js modules (use protocol imports!)
24
- ],
25
- },
26
- target: "esnext",
27
- },
28
- worker: {
29
- format: "es",
30
- plugins() {
31
- return [
32
- topLevelAwait({
33
- // The export name of top-level await promise for each chunk module
34
- promiseExportName: "__tla",
35
- // The function to generate import names of top-level await promise in each chunk module
36
- promiseImportName: (i) => `__tla_${i}`,
37
- }),
38
- ];
39
- },
40
- },
41
- plugins: [
42
- dts(), // emit TS declaration files
43
- ],
44
- test: {},
45
- });