@takeyaqa/pict-wasm 3.7.4-wasm.1

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/LICENSE.TXT ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation
4
+ Copyright (c) Takeshi Kishi
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # @takeyaqa/pict-wasm
2
+
3
+ Unofficial WebAssembly build of [Microsoft PICT](https://github.com/microsoft/pict).
4
+ This package works in both **Node.js** and **browsers**.
5
+
6
+ > [!IMPORTANT]
7
+ > This is an independent project, not affiliated with Microsoft.
8
+ > Original PICT is licensed under the MIT License.
9
+
10
+ Pairwise Independent Combinatorial Testing
11
+ ==========================================
12
+
13
+ PICT generates test cases and test configurations. With PICT, you can generate tests that are more effective than manually generated tests and in a fraction of the time required by hands-on test case design.
14
+
15
+ PICT runs as a command line tool. Prepare a model file detailing the parameters of the interface (or set of configurations, or data) you want to test. PICT generates a compact set of parameter value choices that represent the test cases you should use to get comprehensive combinatorial coverage of your parameters.
16
+
17
+ For instance, if you wish to create a test suite for partition and volume creation, the domain can be described by the following parameters: **Type**, **Size**, **File system**, **Format method**, **Cluster size**, and **Compression**. Each parameter has a limited number of possible values, each of which is determined by its nature (for example, **Compression** can only be **On** or **Off**) or by the equivalence partitioning (such as **Size**).
18
+
19
+ Type: Single, Span, Stripe, Mirror, RAID-5
20
+ Size: 10, 100, 500, 1000, 5000, 10000, 40000
21
+ Format method: Quick, Slow
22
+ File system: FAT, FAT32, NTFS
23
+ Cluster size: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
24
+ Compression: On, Off
25
+
26
+ There are thousands of possible combinations of these values. It would be difficult to test all of them in a reasonable amount of time. Instead, we settle on testing all possible pairs of values. For example, **{Single, FAT}** is one pair, **{10, Slow}** is another; one test case can cover many pairs. Research shows that testing all pairs is an effective alternative to exhaustive testing and much less costly. It will provide very good coverage and the number of test cases will remain manageable.
27
+
28
+ # More information
29
+
30
+ See **[doc/pict.md](https://github.com/Microsoft/pict/blob/main/doc/pict.md)** for detailed documentation on PICT and http://pairwise.org has details on this testing methododology.
31
+
32
+ The most recent **pict.exe** is available at https://github.com/microsoft/pict/releases/.
33
+
34
+ # Contributing
35
+
36
+ PICT consists of the following projects:
37
+ * **api**: The core combinatorial engine,
38
+ * **cli**: PICT.EXE command-line tool,
39
+ * **clidll**: PICT.EXE client repackaged as a Windows DLL to be used in-proc,
40
+ * **api-usage**: A sample of how the engine API can be used,
41
+ * **clidll-usage**: A sample of how the PICT DLL is to be used.
42
+
43
+ ## Building and testing on Windows with MsBuild
44
+ Use **pict.sln** to open the solution in Visual Studio 2022. You will need VC++ build tools installed. See https://www.visualstudio.com/downloads/ for details.
45
+
46
+ PICT uses MsBuild for building. **_build.cmd** script in the root directory will build both Debug and Release from the command-line.
47
+
48
+ The **test** folder contains all that is necessary to test PICT. You need Perl to run the tests. **_test.cmd** is the script that does it all.
49
+
50
+ The test script produces a log: **dbg.log** or **rel.log** for the Debug and Release bits respectively. Compare them with their committed baselines and make sure all the differences can be explained.
51
+
52
+ >There are tests which randomize output which typically make it different on each run. These results should be masked in the baseline but currently aren't.
53
+
54
+ ## Building on Linux, OS/X, *BSD, etc.
55
+ PICT uses CMake to build on Linux.
56
+ Assuming installation of CMake and C++ toolchain, following set of commands will build and run tests in the directory `build`
57
+ ```
58
+ > cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
59
+ > cmake --build build
60
+ > pushd build && ctest -V && popd
61
+ ```
62
+
63
+ ## Debugging
64
+
65
+ Most commonly, you will want to debug the command-line tool. Start in the **pictcli** project, **cli/pict.cpp** file. You'll find **wmain** routine there which would be a convenient place to put the very first breakpoint.
66
+
67
+ ## PICT as a container
68
+
69
+ To build a container image with PICT, just execute
70
+
71
+ make image-build
72
+
73
+ Once built, you can run it with a sample model as follows
74
+
75
+ make image-run
76
+
77
+ To use your own models, please execute
78
+
79
+ podman run -it --rm -v ./<local-dir>:/var/pict:Z pict:latest <your-model-file> [<pict-options>]
80
+
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@takeyaqa/pict-wasm",
3
+ "version": "3.7.4-wasm.1",
4
+ "description": "Unofficial WebAssembly build of Microsoft's PICT (pairwise testing tool), compatible with both Node.js and browsers.",
5
+ "main": "wasm-dist/index.js",
6
+ "type": "module",
7
+ "types": "wasm-dist/index.d.ts",
8
+ "files": [
9
+ "wasm-dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "make wasm && npx tsc",
13
+ "clean": "make wasm-clean"
14
+ },
15
+ "devDependencies": {
16
+ "typescript": "^5.9.3"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+ssh://git@github.com/takeyaqa/pict-wasm.git"
21
+ },
22
+ "author": "Microsoft Corporation/Takeshi Kishi",
23
+ "license": "MIT",
24
+ "bugs": {
25
+ "url": "https://github.com/takeyaqa/pict-wasm/issues"
26
+ },
27
+ "homepage": "https://github.com/takeyaqa/pict-wasm#readme"
28
+ }
@@ -0,0 +1,13 @@
1
+ import { PictParameter, PictOutput, PictOptions, PictSubModel } from './types.js';
2
+ export declare class PictRunner {
3
+ private pict;
4
+ private stdoutCapture;
5
+ private stderrCapture;
6
+ constructor();
7
+ init(): Promise<void>;
8
+ run(parameters: PictParameter[], { subModels, constraintsText, options, }: {
9
+ subModels?: PictSubModel[];
10
+ constraintsText?: string;
11
+ options?: PictOptions;
12
+ }): PictOutput;
13
+ }
@@ -0,0 +1,82 @@
1
+ // @ts-ignore
2
+ import createModule from '../dist/pict';
3
+ export class PictRunner {
4
+ pict = null;
5
+ stdoutCapture;
6
+ stderrCapture;
7
+ constructor() {
8
+ this.stdoutCapture = new OutputCapture();
9
+ this.stderrCapture = new OutputCapture();
10
+ }
11
+ async init() {
12
+ this.pict = await createModule({
13
+ print: this.stdoutCapture.capture,
14
+ printErr: this.stderrCapture.capture,
15
+ });
16
+ }
17
+ run(parameters, { subModels, constraintsText, options, }) {
18
+ if (!this.pict) {
19
+ throw new Error('PictRunner not initialized');
20
+ }
21
+ // Build the model
22
+ const parametersText = parameters
23
+ .map((m) => `${m.name}: ${m.values}`)
24
+ .join('\n');
25
+ const subModelsText = subModels
26
+ ? subModels
27
+ .map((m) => `{ ${m.parameterNames.join(', ')} } @ ${m.order.toString()}`)
28
+ .join('\n')
29
+ : '';
30
+ let model = parametersText;
31
+ if (subModelsText) {
32
+ model = `${model}\n\n${subModelsText}`;
33
+ }
34
+ if (constraintsText) {
35
+ model = `${model}\n\n${constraintsText}`;
36
+ }
37
+ this.pict.FS.writeFile('model.txt', model);
38
+ // Set the options
39
+ const switches = [];
40
+ if (options) {
41
+ if (options.orderOfCombinations) {
42
+ switches.push(`/o:${options.orderOfCombinations.toString()}`);
43
+ }
44
+ if (options.randomizeGeneration) {
45
+ if (options.randomizeSeed === 0 || options.randomizeSeed) {
46
+ switches.push(`/r:${options.randomizeSeed.toString()}`);
47
+ }
48
+ else {
49
+ switches.push('/r');
50
+ }
51
+ }
52
+ }
53
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
54
+ this.pict.callMain(['model.txt', ...switches]);
55
+ this.pict.FS.unlink('model.txt');
56
+ const err = this.stderrCapture.getOuts();
57
+ const out = this.stdoutCapture
58
+ .getOuts()
59
+ .split('\n')
60
+ .map((m) => m.split('\t'));
61
+ return {
62
+ header: out[0],
63
+ body: out.slice(1),
64
+ modelFile: model,
65
+ message: err,
66
+ };
67
+ }
68
+ }
69
+ class OutputCapture {
70
+ outs = [];
71
+ capture = (line) => {
72
+ this.outs.push(line);
73
+ };
74
+ getOuts() {
75
+ const out = this.outs.join('\n');
76
+ this.clear();
77
+ return out;
78
+ }
79
+ clear() {
80
+ this.outs = [];
81
+ }
82
+ }
@@ -0,0 +1,92 @@
1
+ // TypeScript bindings for emscripten-generated code. Automatically generated at compile time.
2
+ declare namespace RuntimeExports {
3
+ let callMain: any;
4
+ namespace FS {
5
+ export { ErrnoError };
6
+ export function handleError(returnValue: any): any;
7
+ export function createDataFile(parent: any, name: any, fileData: any, canRead: any, canWrite: any, canOwn: any): void;
8
+ export function createPath(parent: any, path: any, canRead: any, canWrite: any): any;
9
+ export function createPreloadedFile(parent: any, name: any, url: any, canRead: any, canWrite: any, onload: any, onerror: any, dontCreateFile: any, canOwn: any, preFinish: any): any;
10
+ export function preloadFile(parent: any, name: any, url: any, canRead: any, canWrite: any, dontCreateFile: any, canOwn: any, preFinish: any): Promise<any>;
11
+ export function readFile(path: any, opts?: {}): any;
12
+ export function cwd(): any;
13
+ export function analyzePath(path: any): {
14
+ exists: boolean;
15
+ object: {
16
+ contents: any;
17
+ };
18
+ };
19
+ export function mkdir(path: any, mode: any): any;
20
+ export function mkdirTree(path: any, mode: any): any;
21
+ export function rmdir(path: any): any;
22
+ export function open(path: any, flags: any, mode?: number): any;
23
+ export function create(path: any, mode: any): any;
24
+ export function close(stream: any): any;
25
+ export function unlink(path: any): any;
26
+ export function chdir(path: any): any;
27
+ export function read(stream: any, buffer: any, offset: any, length: any, position: any): any;
28
+ export function write(stream: any, buffer: any, offset: any, length: any, position: any, canOwn: any): any;
29
+ export function writeFile(path: any, data: any): any;
30
+ export function mmap(stream: any, length: any, offset: any, prot: any, flags: any): {
31
+ ptr: any;
32
+ allocated: boolean;
33
+ };
34
+ export function msync(stream: any, bufferPtr: any, offset: any, length: any, mmapFlags: any): any;
35
+ export function munmap(addr: any, length: any): any;
36
+ export function symlink(target: any, linkpath: any): any;
37
+ export function readlink(path: any): any;
38
+ export function statBufToObject(statBuf: any): {
39
+ dev: any;
40
+ mode: any;
41
+ nlink: any;
42
+ uid: any;
43
+ gid: any;
44
+ rdev: any;
45
+ size: any;
46
+ blksize: any;
47
+ blocks: any;
48
+ atime: any;
49
+ mtime: any;
50
+ ctime: any;
51
+ ino: any;
52
+ };
53
+ export function stat(path: any): any;
54
+ export function lstat(path: any): any;
55
+ export function chmod(path: any, mode: any): any;
56
+ export function lchmod(path: any, mode: any): any;
57
+ export function fchmod(fd: any, mode: any): any;
58
+ export function utime(path: any, atime: any, mtime: any): any;
59
+ export function truncate(path: any, len: any): any;
60
+ export function ftruncate(fd: any, len: any): any;
61
+ export function findObject(path: any): {
62
+ isFolder: boolean;
63
+ isDevice: boolean;
64
+ };
65
+ export function readdir(path: any): any;
66
+ export function mount(type: any, opts: any, mountpoint: any): any;
67
+ export function unmount(mountpoint: any): any;
68
+ export function mknod(path: any, mode: any, dev: any): any;
69
+ export function makedev(ma: any, mi: any): number;
70
+ export function registerDevice(dev: any, ops: any): void;
71
+ export function createDevice(parent: any, name: any, input: any, output: any): any;
72
+ export function mkdev(path: any, mode: any, dev: any): any;
73
+ export function rename(oldPath: any, newPath: any): any;
74
+ export function llseek(stream: any, offset: any, whence: any): any;
75
+ }
76
+ let FS_createPath: any;
77
+ function FS_createDataFile(parent: any, name: any, fileData: any, canRead: any, canWrite: any, canOwn: any): void;
78
+ function FS_preloadFile(parent: any, name: any, url: any, canRead: any, canWrite: any, dontCreateFile: any, canOwn: any, preFinish: any): Promise<void>;
79
+ function FS_unlink(path: any): any;
80
+ function addRunDependency(id: any): void;
81
+ function removeRunDependency(id: any): void;
82
+ }
83
+ declare class ErrnoError extends Error {
84
+ constructor(code: any);
85
+ errno: any;
86
+ }
87
+ interface WasmModule {
88
+ _main(_0: number, _1: number): number;
89
+ }
90
+
91
+ export type MainModule = WasmModule & typeof RuntimeExports;
92
+ export default function MainModuleFactory (options?: unknown): Promise<MainModule>;
@@ -0,0 +1,2 @@
1
+ async function Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("module");var require=createRequire(import.meta.url)}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("path").dirname(require("url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var isFileURI=filename=>filename.startsWith("file://");var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){}function initRuntime(){runtimeInitialized=true;wasmExports["D"]()}function preMain(){}function postRun(){}function abort(what){what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("pict.wasm")}return new URL("pict.wasm",import.meta.url).href}function getBinarySync(file){if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var UTF8Decoder=new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{if(!ptr)return"";var end=findStringEnd(HEAPU8,ptr,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>true;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var __wasmfs_copy_preloaded_file_data=(index,buffer)=>HEAPU8.set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var __wasmfs_jsimpl_alloc_file=(backend,file)=>wasmFS$backends[backend].allocFile(file);var __wasmfs_jsimpl_free_file=(backend,file)=>wasmFS$backends[backend].freeFile(file);var __wasmfs_jsimpl_get_size=(backend,file)=>wasmFS$backends[backend].getSize(file);var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function __wasmfs_jsimpl_read(backend,file,buffer,length,offset){offset=bigintToI53Checked(offset);if(!wasmFS$backends[backend].read){return-28}return wasmFS$backends[backend].read(file,buffer,length,offset)}function __wasmfs_jsimpl_set_size(backend,file,size){size=bigintToI53Checked(size);return wasmFS$backends[backend].setSize(file,size)}function __wasmfs_jsimpl_write(backend,file,buffer,length,offset){offset=bigintToI53Checked(offset);if(!wasmFS$backends[backend].write){return-28}return wasmFS$backends[backend].write(file,buffer,length,offset)}var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>crypto.getRandomValues(view)};var randomFill=view=>{(randomFill=initRandomFill())(view)};var _random_get=(buffer,size)=>{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;var readI53FromU64=ptr=>HEAPU32[ptr>>2]+HEAPU32[ptr+4>>2]*4294967296;var FS_mknod=(path,mode,dev)=>FS.handleError(withStackSave(()=>{var pathBuffer=stringToUTF8OnStack(path);return __wasmfs_mknod(pathBuffer,mode,dev)}));var FS_create=(path,mode=438)=>{mode&=4095;mode|=32768;return FS_mknod(path,mode,0)};var FS_writeFile=(path,data)=>{var sp=stackSave();var pathBuffer=stringToUTF8OnStack(path);var len=typeof data=="string"?lengthBytesUTF8(data)+1:data.length;var dataBuffer=_malloc(len);if(typeof data=="string"){len=stringToUTF8(data,dataBuffer,len)}else{HEAPU8.set(data,dataBuffer)}var ret=__wasmfs_write_file(pathBuffer,dataBuffer,len);_free(dataBuffer);stackRestore(sp);return ret};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{var pathName=name?parent+"/"+name:parent;var mode=FS_getMode(canRead,canWrite);if(!wasmFSPreloadingFlushed){wasmFSPreloadedFiles.push({pathName,fileData,mode})}else{FS_create(pathName,mode);FS_writeFile(pathName,fileData)}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_mkdir=(path,mode=511)=>FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_mkdir(buffer,mode)}));var FS_mkdirTree=(path,mode)=>{var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS_mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}};var FS_unlink=path=>withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_unlink(buffer)});var wasmFS$backends={};var wasmFSDevices={};var wasmFSDeviceStreams={};var FS={ErrnoError:class extends Error{name="ErrnoError";message="FS error";constructor(code){super();this.errno=code}},handleError(returnValue){if(returnValue<0){throw new FS.ErrnoError(-returnValue)}return returnValue},createDataFile(parent,name,fileData,canRead,canWrite,canOwn){FS_createDataFile(parent,name,fileData,canRead,canWrite,canOwn)},createPath(parent,path,canRead,canWrite){var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);if(!wasmFSPreloadingFlushed){wasmFSPreloadedDirs.push({parentPath:parent,childName:part})}else{try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}}parent=current}return current},createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){return FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)},async preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish){return FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)},readFile(path,opts={}){opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var buf,length;withStackSave(()=>{var bufPtr=stackAlloc(4);var sizePtr=stackAlloc(4);FS.handleError(-__wasmfs_read_file(stringToUTF8OnStack(path),bufPtr,sizePtr));buf=HEAPU32[bufPtr>>2];length=readI53FromI64(sizePtr)});return opts.encoding==="utf8"?UTF8ToString(buf,length):HEAPU8.slice(buf,buf+length)},cwd:()=>UTF8ToString(__wasmfs_get_cwd()),analyzePath(path){var exists=!!FS.findObject(path);return{exists,object:{contents:exists?FS.readFile(path):null}}},mkdir:(path,mode)=>FS_mkdir(path,mode),mkdirTree:(path,mode)=>FS_mkdirTree(path,mode),rmdir:path=>FS.handleError(withStackSave(()=>__wasmfs_rmdir(stringToUTF8OnStack(path)))),open:(path,flags,mode=438)=>withStackSave(()=>{flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;var buffer=stringToUTF8OnStack(path);var fd=FS.handleError(__wasmfs_open(buffer,flags,mode));return{fd}}),create:(path,mode)=>FS_create(path,mode),close:stream=>FS.handleError(-__wasmfs_close(stream.fd)),unlink:path=>FS_unlink(path),chdir:path=>withStackSave(()=>__wasmfs_chdir(stringToUTF8OnStack(path))),read(stream,buffer,offset,length,position){var seeking=typeof position!="undefined";var dataBuffer=_malloc(length);var bytesRead;if(seeking){bytesRead=__wasmfs_pread(stream.fd,dataBuffer,length,BigInt(position))}else{bytesRead=__wasmfs_read(stream.fd,dataBuffer,length)}if(bytesRead>0){buffer.set(HEAPU8.subarray(dataBuffer,dataBuffer+bytesRead),offset)}_free(dataBuffer);return FS.handleError(bytesRead)},write(stream,buffer,offset,length,position,canOwn){var seeking=typeof position!="undefined";var dataBuffer=_malloc(length);for(var i=0;i<length;i++){HEAP8[dataBuffer+i]=buffer[offset+i]}var bytesRead;if(seeking){bytesRead=__wasmfs_pwrite(stream.fd,dataBuffer,length,BigInt(position))}else{bytesRead=__wasmfs_write(stream.fd,dataBuffer,length)}_free(dataBuffer);return FS.handleError(bytesRead)},writeFile:(path,data)=>FS_writeFile(path,data),mmap:(stream,length,offset,prot,flags)=>{var buf=FS.handleError(__wasmfs_mmap(length,prot,flags,stream.fd,BigInt(offset)));return{ptr:buf,allocated:true}},msync:(stream,bufferPtr,offset,length,mmapFlags)=>FS.handleError(__wasmfs_msync(bufferPtr,length,mmapFlags)),munmap:(addr,length)=>FS.handleError(__wasmfs_munmap(addr,length)),symlink:(target,linkpath)=>withStackSave(()=>__wasmfs_symlink(stringToUTF8OnStack(target),stringToUTF8OnStack(linkpath))),readlink(path){return withStackSave(()=>{var bufPtr=stackAlloc(4);FS.handleError(__wasmfs_readlink(stringToUTF8OnStack(path),bufPtr));var readBuffer=HEAPU32[bufPtr>>2];return UTF8ToString(readBuffer)})},statBufToObject(statBuf){return{dev:HEAPU32[statBuf>>2],mode:HEAPU32[statBuf+4>>2],nlink:HEAPU32[statBuf+8>>2],uid:HEAPU32[statBuf+12>>2],gid:HEAPU32[statBuf+16>>2],rdev:HEAPU32[statBuf+20>>2],size:readI53FromI64(statBuf+24),blksize:HEAP32[statBuf+32>>2],blocks:HEAP32[statBuf+36>>2],atime:readI53FromI64(statBuf+40),mtime:readI53FromI64(statBuf+56),ctime:readI53FromI64(statBuf+72),ino:readI53FromU64(statBuf+88)}},stat(path){return withStackSave(()=>{var statBuf=stackAlloc(96);FS.handleError(__wasmfs_stat(stringToUTF8OnStack(path),statBuf));return FS.statBufToObject(statBuf)})},lstat(path){return withStackSave(()=>{var statBuf=stackAlloc(96);FS.handleError(__wasmfs_lstat(stringToUTF8OnStack(path),statBuf));return FS.statBufToObject(statBuf)})},chmod(path,mode){return FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_chmod(buffer,mode)}))},lchmod(path,mode){return FS.handleError(withStackSave(()=>{var buffer=stringToUTF8OnStack(path);return __wasmfs_lchmod(buffer,mode)}))},fchmod(fd,mode){return FS.handleError(__wasmfs_fchmod(fd,mode))},utime:(path,atime,mtime)=>FS.handleError(withStackSave(()=>__wasmfs_utime(stringToUTF8OnStack(path),atime,mtime))),truncate(path,len){return FS.handleError(withStackSave(()=>__wasmfs_truncate(stringToUTF8OnStack(path),BigInt(len))))},ftruncate(fd,len){return FS.handleError(__wasmfs_ftruncate(fd,BigInt(len)))},findObject(path){var result=withStackSave(()=>__wasmfs_identify(stringToUTF8OnStack(path)));if(result==44){return null}return{isFolder:result==31,isDevice:false}},readdir:path=>withStackSave(()=>{var pathBuffer=stringToUTF8OnStack(path);var entries=[];var state=__wasmfs_readdir_start(pathBuffer);if(!state){throw new Error("No such directory")}var entry;while(entry=__wasmfs_readdir_get(state)){entries.push(UTF8ToString(entry))}__wasmfs_readdir_finish(state);return entries}),mount:(type,opts,mountpoint)=>{var backendPointer=type.createBackend(opts);return FS.handleError(withStackSave(()=>__wasmfs_mount(stringToUTF8OnStack(mountpoint),backendPointer)))},unmount:mountpoint=>FS.handleError(withStackSave(()=>_wasmfs_unmount(stringToUTF8OnStack(mountpoint)))),mknod:(path,mode,dev)=>FS_mknod(path,mode,dev),makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){var backendPointer=_wasmfs_create_jsimpl_backend();var definedOps={userRead:ops.read,userWrite:ops.write,allocFile:file=>{wasmFSDeviceStreams[file]={}},freeFile:file=>{wasmFSDeviceStreams[file]=undefined},getSize:file=>{},setSize:(file,size)=>0,read:(file,buffer,length,offset)=>{var bufferArray=HEAP8.subarray(buffer,buffer+length);try{var bytesRead=definedOps.userRead(wasmFSDeviceStreams[file],bufferArray,0,length,offset)}catch(e){return-e.errno}HEAP8.set(bufferArray,buffer);return bytesRead},write:(file,buffer,length,offset)=>{var bufferArray=HEAP8.subarray(buffer,buffer+length);try{var bytesWritten=definedOps.userWrite(wasmFSDeviceStreams[file],bufferArray,0,length,offset)}catch(e){return-e.errno}HEAP8.set(bufferArray,buffer);return bytesWritten}};wasmFS$backends[backendPointer]=definedOps;wasmFSDevices[dev]=backendPointer},createDevice(parent,name,input,output){if(typeof parent!="string"){throw new Error("Only string paths are accepted")}var path=PATH.join2(parent,name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}return i}});return FS.mkdev(path,mode,dev)},mkdev(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}var deviceBackend=wasmFSDevices[dev];if(!deviceBackend){throw new Error("Invalid device ID.")}return FS.handleError(withStackSave(()=>_wasmfs_create_file(stringToUTF8OnStack(path),mode,deviceBackend)))},rename(oldPath,newPath){return FS.handleError(withStackSave(()=>{var oldPathBuffer=stringToUTF8OnStack(oldPath);var newPathBuffer=stringToUTF8OnStack(newPath);return __wasmfs_rename(oldPathBuffer,newPathBuffer)}))},llseek(stream,offset,whence){return FS.handleError(__wasmfs_llseek(stream.fd,BigInt(offset),whence))}};var FS_createPath=FS.createPath;{if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"]}Module["callMain"]=callMain;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;var _malloc,_free,_main,__emscripten_timeout,___trap,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,__wasmfs_read_file,__wasmfs_write_file,__wasmfs_mkdir,__wasmfs_rmdir,__wasmfs_open,__wasmfs_mknod,__wasmfs_unlink,__wasmfs_chdir,__wasmfs_symlink,__wasmfs_readlink,__wasmfs_write,__wasmfs_pwrite,__wasmfs_chmod,__wasmfs_fchmod,__wasmfs_lchmod,__wasmfs_llseek,__wasmfs_rename,__wasmfs_read,__wasmfs_pread,__wasmfs_truncate,__wasmfs_ftruncate,__wasmfs_close,__wasmfs_mmap,__wasmfs_msync,__wasmfs_munmap,__wasmfs_utime,__wasmfs_stat,__wasmfs_lstat,__wasmfs_mount,__wasmfs_identify,__wasmfs_readdir_start,__wasmfs_readdir_get,__wasmfs_readdir_finish,__wasmfs_get_cwd,_wasmfs_create_jsimpl_backend,_wasmfs_create_file,_wasmfs_unmount,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=wasmExports["E"];_free=wasmExports["F"];_main=Module["_main"]=wasmExports["G"];__emscripten_timeout=wasmExports["H"];___trap=wasmExports["I"];__emscripten_stack_restore=wasmExports["J"];__emscripten_stack_alloc=wasmExports["K"];_emscripten_stack_get_current=wasmExports["L"];__wasmfs_read_file=wasmExports["M"];__wasmfs_write_file=wasmExports["N"];__wasmfs_mkdir=wasmExports["O"];__wasmfs_rmdir=wasmExports["P"];__wasmfs_open=wasmExports["Q"];__wasmfs_mknod=wasmExports["R"];__wasmfs_unlink=wasmExports["S"];__wasmfs_chdir=wasmExports["T"];__wasmfs_symlink=wasmExports["U"];__wasmfs_readlink=wasmExports["V"];__wasmfs_write=wasmExports["W"];__wasmfs_pwrite=wasmExports["X"];__wasmfs_chmod=wasmExports["Y"];__wasmfs_fchmod=wasmExports["Z"];__wasmfs_lchmod=wasmExports["_"];__wasmfs_llseek=wasmExports["$"];__wasmfs_rename=wasmExports["aa"];__wasmfs_read=wasmExports["ba"];__wasmfs_pread=wasmExports["ca"];__wasmfs_truncate=wasmExports["da"];__wasmfs_ftruncate=wasmExports["ea"];__wasmfs_close=wasmExports["fa"];__wasmfs_mmap=wasmExports["ga"];__wasmfs_msync=wasmExports["ha"];__wasmfs_munmap=wasmExports["ia"];__wasmfs_utime=wasmExports["ja"];__wasmfs_stat=wasmExports["ka"];__wasmfs_lstat=wasmExports["la"];__wasmfs_mount=wasmExports["ma"];__wasmfs_identify=wasmExports["na"];__wasmfs_readdir_start=wasmExports["oa"];__wasmfs_readdir_get=wasmExports["pa"];__wasmfs_readdir_finish=wasmExports["qa"];__wasmfs_get_cwd=wasmExports["ra"];_wasmfs_create_jsimpl_backend=wasmExports["sa"];_wasmfs_create_file=wasmExports["ta"];_wasmfs_unmount=wasmExports["ua"];memory=wasmMemory=wasmExports["C"];__indirect_function_table=wasmExports["__indirect_function_table"]}var wasmImports={a:___assert_fail,g:__abort_js,l:__emscripten_runtime_keepalive_clear,m:__setitimer_js,h:__tzset_js,z:__wasmfs_copy_preloaded_file_data,x:__wasmfs_get_num_preloaded_dirs,y:__wasmfs_get_num_preloaded_files,v:__wasmfs_get_preloaded_child_path,t:__wasmfs_get_preloaded_file_mode,A:__wasmfs_get_preloaded_file_size,w:__wasmfs_get_preloaded_parent_path,u:__wasmfs_get_preloaded_path_name,s:__wasmfs_jsimpl_alloc_file,d:__wasmfs_jsimpl_free_file,q:__wasmfs_jsimpl_get_size,p:__wasmfs_jsimpl_read,n:__wasmfs_jsimpl_set_size,o:__wasmfs_jsimpl_write,f:__wasmfs_stdin_get_char,b:_emscripten_date_now,c:_emscripten_err,e:_emscripten_out,r:_emscripten_resize_heap,i:_environ_get,j:_environ_sizes_get,k:_proc_exit,B:_random_get};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve?.(Module);var noInitialRun=true;if(!noInitialRun)callMain(args);postRun()}{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}
2
+ ;return moduleRtn}export default Module;
Binary file
@@ -0,0 +1,19 @@
1
+ export interface PictParameter {
2
+ name: string;
3
+ values: string;
4
+ }
5
+ export interface PictSubModel {
6
+ parameterNames: string[];
7
+ order: number;
8
+ }
9
+ export interface PictOutput {
10
+ header: string[];
11
+ body: string[][];
12
+ modelFile: string;
13
+ message?: string;
14
+ }
15
+ export interface PictOptions {
16
+ orderOfCombinations: number;
17
+ randomizeGeneration: boolean;
18
+ randomizeSeed?: number;
19
+ }
@@ -0,0 +1 @@
1
+ export {};