PageSourceSearch

https://www.gladiator.nl/assets/js/emulators/emulators.js

js gladiator.nl collected 2026-10-09 01:18:52 UTC 40,925 bytes, 2 lines download raw bytes

1!function e(s,t,i){function o(r,a){if(!t[r]){if(!s[r]){var l="function"==typeof require&&require;if(!a&&l)return l(r,!0);if(n)return n(r,!0);var d=new Error("Cannot find module '"+r+"'");throw d.code="MODULE_NOT_FOUND",d}var u=t[r]={exports:{}};s[r][0].call(u.exports,(function(e){return o(s[r][1][e]||e)}),u,u.exports,e,s,t,i)}return t[r].exports}for(var n="function"==typeof require&&require,r=0;r<i.length;r++)o(i[r]);return o}({1:[function(e,s,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Build=void 0,t.Build={version:"8.1.2 (a2693880d4db8c2246b7cf9ce4394743)",buildSeed:1716465552747,"wdosbox-x.wasm":{size:6528621,gzSize:2294922},"wdosbox-x.js":{size:252241,gzSize:59282},"wdosbox.wasm":{size:1465312,gzSize:498769},"wdosbox.js":{size:128411,gzSize:33707},"wlibzip.wasm":{size:111405,gzSize:51546},"wlibzip.js":{size:75391,gzSize:19757}}},{}],2:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}var o=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.defaultConfig=void 0;const n=o(e("../../libzip/libzip")),r=e("../../http"),a=e("../../build");t.default=class{constructor(e){i(this,"dosboxConf",t.defaultConfig),i(this,"jsdosConf",{version:a.Build.version}),i(this,"sources",void 0),i(this,"libzipWasm",void 0),this.sources=[],this.libzipWasm=e}autoexec(){const e=this.dosboxConf.indexOf("[autoexec]");for(var s=arguments.length,t=new Array(s),i=0;i<s;i++)t[i]=arguments[i];return this.dosboxConf=this.dosboxConf.substring(0,e)+"[autoexec]\nmount c .\nc:\n"+t.join("\n"),this}extract(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"zip";return this.extractAll([{url:e,path:s,type:t}])}extractAll(e){return this.sources.push(...e),this}async toUint8Array(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const s={};await this.libzipWasm.instantiate(s);const t=new n.default(s),i=[];for(const e of this.sources){if("zip"!==e.type)throw new Error("Only Zip is supported");const s=(0,r.httpRequest)(e.url,{responseType:"arraybuffer"}).then((s=>({source:e,data:new Uint8Array(s)})));i.push(s)}e||(await t.writeFile(".jsdos/dosbox.conf",this.dosboxConf),await t.writeFile(".jsdos/readme.txt",l),await t.writeFile(".jsdos/jsdos.json",JSON.stringify(this.jsdosConf,null,2)));const o=await Promise.all(i);for(const e of o)t.zipToFs(e.data,e.source.path);e&&(await t.writeFile(".jsdos/dosbox.conf",this.dosboxConf),await t.writeFile(".jsdos/readme.txt",l),await t.writeFile(".jsdos/jsdos.json",JSON.stringify(this.jsdosConf,null,2)));const a=await t.zipFromFs();return t.destroy(),a}};const l="\nPlease visit our website:\n\n        _                __\n       (_)____      ____/ /___  _____ _________  ____ ___\n      / / ___/_____/ __  / __ \\/ ___// ___/ __ \\/ __ `__ \\\n     / (__  )_____/ /_/ / /_/ (__  )/ /__/ /_/ / / / / / /\n  __/ /____/      \\__,_/\\____/____(_)___/\\____/_/ /_/ /_/\n /___/\n".replace(/\n/g,"\r\n");t.defaultConfig=
vendor: 7,853 bytes, line 1
1"[sdl]\nautolock=false\n\nfullscreen=false\nfulldouble=false\nfullresolution=original\nwindowresolution=original\noutput=surface\nsensitivity=100\nwaitonerror=true\npriority=higher,normal\nmapperfile=mapper-jsdos.map\nusescancodes=true\nvsync=false\n[dosbox]\nmachine=svga_s3\n\nlanguage=\ncaptures=capture\nmemsize=16\n[cpu]\ncore=auto\ncputype=auto\ncycles=auto\n\ncycleup=10\ncycledown=20\n[mixer]\nnosound=false\nrate=44100\n\nblocksize=1024\nprebuffer=20\n\n[render]\n# frameskip: How many frames DOSBox skips before drawing one.\n#    aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.\n#    scaler: Scaler used to enlarge/enhance low resolution modes.\n#              If 'forced' is appended, then the scaler will be used even if the result might not be desired.\n#            Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.\n\nframeskip=0\naspect=false\nscaler=none\n\n[midi]\n#     mpu401: Type of MPU-401 to emulate.\n#             Possible values: intelligent, uart, none.\n# mididevice: Device that will receive the MIDI data from MPU-401.\n#             Possible values: default, win32, alsa, oss, coreaudio, coremidi, none.\n# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.\n#               See the README/Manual for more details.\n\nmpu401=intelligent\nmididevice=default\nmidiconfig=\n\n[sblaster]\n#  sbtype: Type of Soundblaster to emulate. gb is Gameblaster.\n#          Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.\n#  sbbase: The IO address of the soundblaster.\n#          Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.\n#     irq: The IRQ number of the soundblaster.\n#          Possible values: 7, 5, 3, 9, 10, 11, 12.\n#     dma: The DMA number of the soundblaster.\n#          Possible values: 1, 5, 0, 3, 6, 7.\n#    hdma: The High DMA number of the soundblaster.\n#          Possible values: 1, 5, 0, 3, 6, 7.\n# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.\n# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.\n#          Possible values: auto, cms, opl2, dualopl2, opl3, none.\n#  oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).\n#          Possible values: default, compat, fast.\n# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).\n#          Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.\n\nsbtype=sb16\nsbbase=220\nirq=7\ndma=1\nhdma=5\nsbmixer=true\noplmode=auto\noplemu=default\noplrate=44100\n\n[gus]\n#      gus: Enable the Gravis Ultrasound emulation.\n#  gusrate: Sample rate of Ultrasound emulation.\n#           Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.\n#  gusbase: The IO base address of the Gravis Ultrasound.\n#           Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.\n#   gusirq: The IRQ number of the Gravis Ultrasound.\n#           Possible values: 5, 3, 7, 9, 10, 11, 12.\n#   gusdma: The DMA channel of the Gravis Ultrasound.\n#           Possible values: 3, 0, 1, 5, 6, 7.\n# ultradir: Path to Ultrasound directory. In this directory\n#           there should be a MIDI directory that contains\n#           the patch files for GUS playback. Patch sets used\n#           with Timidity should work fine.\n\ngus=false\ngusrate=44100\ngusbase=240\ngusirq=5\ngusdma=3\nultradir=C:\\ULTRASND\n\n[speaker]\n# pcspeaker: Enable PC-Speaker emulation.\n#    pcrate: Sample rate of the PC-Speaker sound generation.\n#            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.\n#     tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.\n#            Possible values: auto, on, off.\n# tandyrate: Sample rate of the Tandy 3-Voice generation.\n#            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.\n#    disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).\n\npcspeaker=true\npcrate=44100\ntandy=auto\ntandyrate=44100\ndisney=true\n\n[joystick]\n# joysticktype: Type of joystick to emulate: auto (default), none,\n#               2axis (supports two joysticks),\n#               4axis (supports one joystick, first joystick used),\n#               4axis_2 (supports one joystick, second joystick used),\n#               fcs (Thrustmaster), ch (CH Flightstick).\n#               none disables joystick emulation.\n#               auto chooses emulation depending on real joystick(s).\n#               (Remember to reset dosbox's mapperfile if you saved it earlier)\n#               Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.\n#        timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).\n#     autofire: continuously fires as long as you keep the button pressed.\n#       swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.\n#   buttonwrap: enable button wrapping at the number of emulated buttons.\n\njoysticktype=auto\ntimed=true\nautofire=false\nswap34=false\nbuttonwrap=false\n\n[serial]\n# serial1: set type of device connected to com port.\n#          Can be disabled, dummy, modem, nullmodem, directserial.\n#          Additional parameters must be in the same line in the form of\n#          parameter:value. Parameter for all types is irq (optional).\n#          for directserial: realport (required), rxdelay (optional).\n#                           (realport:COM1 realport:ttyS0).\n#          for modem: listenport (optional).\n#          for nullmodem: server, rxdelay, txdelay, telnet, usedtr,\n#                         transparent, port, inhsocket (all optional).\n#          Example: serial1=modem listenport:5000\n#          Possible values: dummy, disabled, modem, nullmodem, directserial.\n# serial2: see serial1\n#          Possible values: dummy, disabled, modem, nullmodem, directserial.\n# serial3: see serial1\n#          Possible values: dummy, disabled, modem, nullmodem, directserial.\n# serial4: see serial1\n#          Possible values: dummy, disabled, modem, nullmodem, directserial.\n\nserial1=dummy\nserial2=dummy\nserial3=disabled\nserial4=disabled\n\n[dos]\n#            xms: Enable XMS support.\n#            ems: Enable EMS support.\n#            umb: Enable UMB support.\n# keyboardlayout: Language code of the keyboard layout (or none).\n\nxms=true\nems=true\numb=true\nkeyboardlayout=auto\n\n[ipx]\n# ipx: Enable ipx over UDP/IP emulation.\n\nipx=true\n[autoexec]\necho off\nmount c .\nc:\n\ntype jsdos~1/readme.txt\necho on\n\n# Generated using https://js-dos.com\n# █▀▀▀▀▀█ █  ▄▄▄▀▀█ █▀▀▀▀▀█\n# █ ███ █ ██▄ █ ▀ ▄ █ ███ █\n# █ ▀▀▀ █ ▄██ ▀ ▀▀█ █ ▀▀▀ █\n# ▀▀▀▀▀▀▀ ▀ █▄▀▄▀ █ ▀▀▀▀▀▀▀\n# █▀▄▄█▀▀▄▄ ▀ ▀█▄▄▄▄ ▀▄█▀█▀\n# █▀ ▀ ▀▀▄ █▀ ▄ ▄▀▀▀▄ █▀█▄\n# ▄ ▄▄ █▀▀▄ ▄▀▄▀▀█  ▀▀▄▀▀█▀\n#   ▄▀▀█▀▀ █▀█▀█▀▀▄ ▀██▀█▄\n# ▀▀▀ ▀ ▀ █▄█ ▀█▄▄█▀▀▀█▀▀\n# █▀▀▀▀▀█ ▄▄▄ ▄ ▄ █ ▀ █▄▄▄▄\n# █ ███ █ ▀█▀▀▄▀▀▄████▀▀█▄█\n# █ ▀▀▀ █ ▄▀▀█▀█▀▄ ▀▀▄▄█▄█\n# ▀▀▀▀▀▀▀ ▀   ▀▀ ▀  ▀   ▀▀▀\n".replace(/\n/g,"\r\n")},{
1"../../build":1,"../../http":6,"../../libzip/libzip":10}],3:[function(e,s,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dosDirect=void 0;const i=e("../../../protocol/messages-queue");t.dosDirect=async function(e,s){const t=new i.MessagesQueue;let o=t.handler.bind(t);const n={postMessage:(e,s)=>{o(e,s)}},r=e=>{const t=e.data;"ws-sync-sleep"===t?.name&&t.props.sessionId===s&&postMessage({name:"wc-sync-sleep",props:t.props},"*")},a={sessionId:s,sendMessageToServer:(e,s)=>{n.messageHandler({data:{name:e,props:s}})},initMessageHandler:e=>{o=e,t.sendTo(o)},exit:()=>{"undefined"!=typeof window&&window.removeEventListener("message",r)}};return a.module=n,"undefined"!=typeof window&&window.addEventListener("message",r,{passive:!0}),await e.instantiate(n),n.callMain([s]),a}},{"../../../protocol/messages-queue":11}],4:[function(e,s,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dosWorker=void 0;const i=e("../../../protocol/messages-queue");t.dosWorker=async function(e,s,t){const o=new i.MessagesQueue;let n=o.handler.bind(o);const r=await fetch(e);if(200!==r.status)throw new Error("Unable to download '"+e+"' ("+r.status+"): "+r.statusText);const a=URL.createObjectURL(await r.blob()),l=new Worker(a);l.onerror=e=>{n("ws-err",{type:e.type,filename:e.filename,message:e.message})},l.onmessage=e=>{const s=e.data;void 0!==s?.name&&n(s.name,s.props)},await s.instantiate({});const d={sessionId:t,sendMessageToServer:(e,s,t)=>{t?l.postMessage({name:e,props:s},t):l.postMessage({name:e,props:s})},initMessageHandler:e=>{n=e,o.sendTo(n)},exit:()=>{URL.revokeObjectURL(a),l.terminate()}};try{d.sendMessageToServer("wc-install",{module:s.wasmModule,sessionId:t})}catch(e){d.sendMessageToServer("wc-install",{sessionId:t})}return d}},{"../../../protocol/messages-queue":11}],5:[function(e,s,t){(function(s){(function(){"use strict";var i=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.NetworkType=void 0;const o=i(e("./impl/emulators-impl"));!function(e){e[e.NETWORK_DOSBOX_IPX=0]="NETWORK_DOSBOX_IPX"}(t.NetworkType||(t.NetworkType={})),"undefined"!=typeof window&&(window.emulators=o.default),void 0!==s&&(s.emulators=o.default)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./impl/emulators-impl":8}],6:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}Object.defineProperty(t,"__esModule",{value:!0}),t.httpRequest=void 0,t.httpRequest=function(e,s){return new Promise(((t,i)=>{new o(e,{...s,success:t,fail:e=>{i(new Error(e))}})}))};class o{constructor(e,s){if(i(this,"resource",void 0),i(this,"options",void 0),i(this,"xhr",null),i(this,"total",0),i(this,"loaded",0),this.resource=e,this.options=s,this.options.method=s.method||"GET","GET"!==this.options.method)throw new Error("Method "+this.options.method+" is not supported");this.makeHttpRequest()}makeHttpRequest(){let e,s;this.xhr=new XMLHttpRequest,this.xhr.open(this.options.method||"GET",this.resource,!0),"POST"===this.options.method&&this.xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"),this.xhr.overrideMimeType("text/plain; charset=x-user-defined"),"function"==typeof(e=this.xhr).addEventListener&&e.addEventListener("progress",(e=>{if(this.total=e.total,this.loaded=e.loaded,this.options.progress)return this.options.progress(e.total,e.loaded)})),"function"==typeof(s=this.xhr).addEventListener&&s.addEventListener("error",(()=>{if(this.options.fail)return this.options.fail("Unalbe to download '"+this.resource+"', code: "+this.xhr.status),delete this.options.fail})),this.xhr.onreadystatechange=()=>this.onReadyStateChange(),this.options.responseType&&(this.xhr.responseType=this.options.responseType),this.xhr.send(this.options.data)}onReadyStateChange(){const e=this.xhr;if(4===e.readyState)if(200===e.status){if(this.options.success){const s=Math.max(this.total,this.loaded);return void 0!==this.options.progress&&this.options.progress(s,s),this.options.success(e.response)}}else if(this.options.fail)return this.options.fail("Unable to download '"+this.resource+"', code: "+e.status),delete this.options.fail}}},{}],7:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}
1Object.defineProperty(t,"__esModule",{value:!0}),t.CommandInterfaceEventsImpl=void 0;t.CommandInterfaceEventsImpl=class{constructor(){var e=this;i(this,"onStdoutConsumers",[]),i(this,"delayedStdout",[]),i(this,"onFrameSizeConsumers",[]),i(this,"onFrameConsumers",[]),i(this,"onSoundPushConsumers",[]),i(this,"onExitConsumers",[]),i(this,"onMessageConsumers",[]),i(this,"delayedMessages",[]),i(this,"onNetworkConnectedConsumers",[]),i(this,"onNetworkDisconnectedConsumers",[]),i(this,"onStdout",(e=>{if(this.onStdoutConsumers.push(e),1===this.onStdoutConsumers.length){for(const e of this.delayedStdout)this.fireStdout(e);this.delayedStdout=[]}})),i(this,"onFrameSize",(e=>{this.onFrameSizeConsumers.push(e)})),i(this,"onFrame",(e=>{this.onFrameConsumers.push(e)})),i(this,"onSoundPush",(e=>{this.onSoundPushConsumers.push(e)})),i(this,"onExit",(e=>{this.onExitConsumers.push(e)})),i(this,"onMessage",(e=>{if(this.onMessageConsumers.push(e),1===this.onMessageConsumers.length){for(const s of this.delayedMessages)e(s.msgType,...s.args);this.delayedMessages=[]}})),i(this,"fireStdout",(e=>{if(0!==this.onStdoutConsumers.length)for(const s of this.onStdoutConsumers)s(e);else this.delayedStdout.push(e)})),i(this,"fireFrameSize",((e,s)=>{for(const t of this.onFrameSizeConsumers)t(e,s)})),i(this,"fireFrame",((e,s)=>{for(const t of this.onFrameConsumers)t(e,s)})),i(this,"fireSoundPush",(e=>{for(const s of this.onSoundPushConsumers)s(e)})),i(this,"fireExit",(()=>{for(const e of this.onExitConsumers)e();this.onStdoutConsumers=[],this.onFrameSizeConsumers=[],this.onFrameConsumers=[],this.onSoundPushConsumers=[],this.onExitConsumers=[],this.onMessageConsumers=[]})),i(this,"fireMessage",(function(s){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];if(0!==e.onMessageConsumers.length)for(const t of e.onMessageConsumers)t(s,...i);else e.delayedMessages.push({msgType:s,args:i})})),i(this,"fireNetworkConnected",((e,s)=>{for(const t of this.onNetworkConnectedConsumers)t(e,s)})),i(this,"fireNetworkDisconnected",(e=>{for(const s of this.onNetworkDisconnectedConsumers)s(e)}))}onNetworkConnected(e){this.onNetworkConnectedConsumers.push(e)}onNetworkDisconnected(e){this.onNetworkDisconnectedConsumers.push(e)}}},{}],8:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}var o=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=e("../build"),r=e("./modules"),a=o(e("../dos/bundle/dos-bundle")),l=e("../dos/dosbox/ts/direct"),d=e("../dos/dosbox/ts/worker"),u=e("../protocol/protocol"),h=o(e("../libzip/libzip"));const c=new class{constructor(){i(this,"pathPrefix",""),i(this,"version",n.Build.version),i(this,"wdosboxJs","wdosbox.js"),i(this,"wdosboxxJs","wdosbox-x.js"),i(this,"wasmModulesPromise",void 0)}async bundle(){const e=await this.wasmModules(),s=await e.libzip();return new a.default(s)}async bundleConfig(e){const s=await this.wasmModules(),t=await s.libzip(),i={};await t.instantiate(i);const o=new h.default(i);try{o.zipToFs(e,"/",".jsdos/");try{const e=await o.readFile(".jsdos/dosbox.conf");try{const s=await o.readFile(".jsdos/jsdos.json");return{dosboxConf:e,jsdosConf:JSON.parse(s)}}catch(e){}return{dosboxConf:e,jsdosConf:{version:n.Build.version}}}catch(e){}return null}finally{o.destroy()}}async bundleUpdateConfig(e,s){const t=await this.wasmModules(),i=await t.libzip(),o={};await i.instantiate(o);const n=new h.default(o);try{return await n.writeFile("bundle.zip",e),await n.writeFile(".jsdos/dosbox.conf",s.dosboxConf),await n.writeFile(".jsdos/jsdos.json",JSON.stringify(s.jsdosConf)),await n.zipAddFile("bundle.zip",".jsdos/jsdos.json"),await n.zipAddFile("bundle.zip",".jsdos/dosbox.conf"),await n.readFile("bundle.zip","binary")}finally{n.destroy()}}async dosboxNode(e,s){return this.dosboxDirect(e,s)}async dosboxDirect(e,s){const t=await this.wasmModules(),i=await t.dosbox(),o=await(0,l.dosDirect)(i,"session-"+Date.now());return this.backend(e,o,s)}async dosboxWorker(e,s){const t=await this.wasmModules(),i=await t.dosbox(),o=await(0,d.dosWorker)(this.pathPrefix+this.wdosboxJs,i,"session-"+Date.now());return this.backend(e,o,s)}async dosboxXNode(e,s){return this.dosboxXDirect(e,s)}async dosboxXDirect(e,s){const t=await this.wasmModules(),i=await t.dosbox
1x(),o=await(0,l.dosDirect)(i,"session-"+Date.now());return this.backend(e,o,s)}async dosboxXWorker(e,s){const t=await this.wasmModules(),i=await t.dosboxx(),o=await(0,d.dosWorker)(this.pathPrefix+this.wdosboxxJs,i,"session-"+Date.now());return this.backend(e,o,s)}async backend(e,s,t){return new Promise(((i,o)=>{const n=new u.CommandInterfaceOverTransportLayer(Array.isArray(e)?e:[e],s,(e=>{null!==e?o(e):setTimeout((()=>i(n)),4)}),t||{})}))}wasmModules(){if(void 0!==this.wasmModulesPromise)return this.wasmModulesPromise;return this.wasmModulesPromise=(async()=>new r.WasmModulesImpl(this.pathPrefix,this.wdosboxJs,this.wdosboxxJs))(),this.wasmModulesPromise}async dosDirect(e){return this.dosboxDirect(e)}async dosWorker(e){return this.dosboxWorker(e)}};t.default=c},{"../build":1,"../dos/bundle/dos-bundle":2,"../dos/dosbox/ts/direct":3,"../dos/dosbox/ts/worker":4,"../libzip/libzip":10,"../protocol/protocol":12,"./modules":9}],9:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}Object.defineProperty(t,"__esModule",{value:!0}),t.loadWasmModule=t.WasmModulesImpl=t.host=void 0;const o=e("../http");t.host=new class{constructor(){if(i(this,"wasmSupported",!1),i(this,"globals",void 0),this.globals="undefined"==typeof window?{}:window,this.globals.exports||(this.globals.exports={}),this.globals.compiled||(this.globals.compiled={}),"object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate&&"function"==typeof WebAssembly.compile){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));e instanceof WebAssembly.Module&&(this.wasmSupported=new WebAssembly.Instance(e)instanceof WebAssembly.Instance)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,s){const t=65535&e,i=65535&s;return t*i+((e>>>16)*i+t*(s>>>16)<<16)|0}),Math.imul=Math.imul,Math.fround||(Math.fround=function(e){return e}),Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e>>>=0;for(let s=0;s<32;s++)if(e&1<<31-s)return s;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc}};function n(s,i,n){return"undefined"==typeof XMLHttpRequest?function(s,i,o){if(void 0!==t.host.globals.compiled[i])return t.host.globals.compiled[i];const n=e(s),a=Promise.resolve(new r(n));i&&(t.host.globals.compiled[i]=a);return a}(s,i):function(e,s,i){if(void 0!==t.host.globals.compiled[s])return t.host.globals.compiled[s];async function n(){const n=e.lastIndexOf("/"),r=e.indexOf("w",n),l=r===n+1&&r>=0;if(!t.host.wasmSupported||!l)throw new Error("Starting from js-dos 6.22.60 js environment is not supported");const d=e.substr(0,e.lastIndexOf(".js"))+".wasm",u=(0,o.httpRequest)(d,{responseType:"arraybuffer",progress:(s,t)=>{i("Resolving DosBox ("+e+")",s,t)}}),h=(0,o.httpRequest)(e,{progress:(e,s)=>{i("Resolving DosBox",e,s)}}),[c,m]=await Promise.all([u,h]),f=await WebAssembly.compile(c),p=(e,s)=>{e.env=e.env||{},WebAssembly.instantiate(f,e).then((e=>s(e,f)))};return eval.call(window,m),new a(f,t.host.globals.exports[s],p)}const r=n();s&&(t.host.globals.compiled[s]=r);return r}(s,i,n)}t.WasmModulesImpl=class{constructor(e,s,t){i(this,"pathPrefix",void 0),i(this,"wdosboxJs",void 0),i(this,"wdosboxxJs",void 0),i(this,"libzipPromise",void 0),i(this,"dosboxPromise",void 0),i(this,"dosbox
1xPromise",void 0),i(this,"wasmSupported",!1),e.length>0&&"/"!==e[e.length-1]&&(e+="/"),this.pathPrefix=e,this.wdosboxJs=s,this.wdosboxxJs=t}libzip(){return void 0!==this.libzipPromise||(this.libzipPromise=this.loadModule(this.pathPrefix+"wlibzip.js","WLIBZIP")),this.libzipPromise}dosbox(){return void 0!==this.dosboxPromise||(this.dosboxPromise=this.loadModule(this.pathPrefix+this.wdosboxJs,"WDOSBOX")),this.dosboxPromise}dosboxx(){return void 0!==this.dosboxxPromise||(this.dosboxxPromise=this.loadModule(this.pathPrefix+this.wdosboxxJs,"WDOSBOXX")),this.dosboxxPromise}loadModule(e,s){return n(e,s,(()=>{}))}},t.loadWasmModule=n;class r{constructor(e){i(this,"emModule",void 0),this.emModule=e}instantiate(e){return new Promise((s=>{e.onRuntimeInitialized=()=>{s()},new this.emModule(e)}))}}class a{constructor(e,s,t){i(this,"wasmModule",void 0),i(this,"module",void 0),i(this,"instantiateWasm",void 0),this.wasmModule=e,this.module=s,this.instantiateWasm=t}instantiate(e){return new Promise((s=>{e.instantiateWasm=this.instantiateWasm,e.onRuntimeInitialized=()=>{s()},new this.module(e)}))}}},{"../http":6}],10:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/home/web_user";i(this,"module",void 0),i(this,"home",void 0),this.module=e,this.home=s,this.module.callMain([]),this.module.FS.ignorePermissions=!0,this.chdirToHome()}zipFromFs(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;this.chdirToHome();const s=this.module._zip_from_fs(e);if(0===s)return Promise.reject(new Error("Can't create zip, see more info in logs"));const t=this.module.HEAPU32[s/4],i=this.module.HEAPU8.slice(s+4,s+4+t);return this.module._free(s),Promise.resolve(i)}zipToFs(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",t=arguments.length>2?arguments[2]:void 0;const i=this.module;s=this.normalizeFilename(s);const o=this.normalizeFilename(s).split("/");this.createPath(o,0,o.length),this.chdir(s);const n=void 0!==t&&t.length>0;let r=0;if(n){const e=i.lengthBytesUTF8(t)+1;r=i._malloc(e),i.stringToUTF8(t,r,e)}const a=new Uint8Array(e),l=i._malloc(a.length);i.HEAPU8.set(a,l);const d=i._zip_to_fs(l,a.length,r);return i._free(l),this.chdirToHome(),n&&i._free(r),0===d?Promise.resolve():Promise.reject(new Error("Can't extract zip, retcode "+d+", see more info in logs"))}writeFile(e,s){e=this.normalizeFilename(e),s instanceof ArrayBuffer&&(s=new Uint8Array(s));const t=e.split("/");if(0===t.length)throw new Error("Can't create file '"+e+"', because it's not valid file path");const i=t[t.length-1].trim();if(0===i.length)throw new Error("Can't create file '"+e+"', because file name is empty");const o=this.createPath(t,0,t.length-1);this.module.FS.writeFile(o+"/"+i,s)}async readFile(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";return e=this.normalizeFilename(e),this.module.FS.readFile(e,{encoding:s})}exists(e){e=this.normalizeFilename(e);try{return this.module.FS.lookupPath(e),!0}catch(e){return!1}}destroy(){try{this.module._libzip_destroy()}catch(e){return e}}normalizeFilename(e){for(e=e.replace(new RegExp("^[a-zA-z]+:"),"").replace(new RegExp("\\\\","g"),"/");"/"===e[0];)e=e.substr(1);return e}createPath(e,s,t){let i=".";for(let o=s;o<t;++o){const s=e[o].trim();0!==s.length&&(this.module.FS.createPath(i,s,!0,!0),i=i+"/"+s)}return i}chdirToHome(){this.module.FS.chdir(this.home)}chdir(e){this.module.FS.chdir(this.home+"/"+e)}async zipAddFile(e,s){const t=this.module,i=t.lengthBytesUTF8(e)+1,o=t._malloc(i);t.stringToUTF8(e,o,i);const n=t.lengthBytesUTF8(s)+1,r=t._malloc(n);t.stringToUTF8(s,r,n);const a=this.module._zipfile_add(o,r,r);if(t._free(o),t._free(r),0!==a)throw new Error("Unable to add "+s+" into "+e)}}},{}],11:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}
1Object.defineProperty(t,"__esModule",{value:!0}),t.MessagesQueue=void 0;t.MessagesQueue=class{constructor(){i(this,"messages",[])}handler(e,s){this.messages.push({name:e,props:s})}sendTo(e){for(const s of this.messages)e(s.name,s.props);this.messages=[]}}},{}],12:[function(e,s,t){"use strict";function i(e,s,t){return(s=function(e){var s=function(e,s){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,s||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===s?String:Number)(e)}(e,"string");return"symbol"==typeof s?s:String(s)}(s))in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}Object.defineProperty(t,"__esModule",{value:!0}),t.CommandInterfaceOverTransportLayer=void 0;const o=e("../impl/ci-impl"),n=4194304;t.CommandInterfaceOverTransportLayer=class{constructor(e,s,t,n){i(this,"startedAt",Date.now()),i(this,"frameWidth",0),i(this,"frameHeight",0),i(this,"rgb",null),i(this,"rgba",null),i(this,"freq",0),i(this,"utf8Decoder",new TextDecoder),i(this,"init",void 0),i(this,"transport",void 0),i(this,"ready",void 0),i(this,"persistPromise",void 0),i(this,"persistResolve",void 0),i(this,"exitPromise",void 0),i(this,"exitResolve",void 0),i(this,"eventsImpl",new o.CommandInterfaceEventsImpl),i(this,"keyMatrix",{}),i(this,"configPromise",void 0),i(this,"configResolve",(()=>{})),i(this,"panicMessages",[]),i(this,"connectPromise",null),i(this,"connectResolve",(()=>{})),i(this,"connectReject",(()=>{})),i(this,"disconnectPromise",null),i(this,"disconnectResolve",(()=>{})),i(this,"asyncifyStatsPromise",null),i(this,"asyncifyStatsResolve",(()=>{})),i(this,"fsTreePromise",null),i(this,"fsTreeResolve",(()=>{})),i(this,"fsGetFilePromise",{}),i(this,"fsGetFileResolve",{}),i(this,"fsGetFileParts",{}),i(this,"dataChunkPromise",{}),i(this,"dataChunkResolve",{}),i(this,"options",void 0),this.options=n,this.init=e,this.transport=s,this.ready=t,this.configPromise=new Promise((e=>this.configResolve=e)),this.transport.initMessageHandler(this.onServerMessage.bind(this))}sendClientMessage(e,s,t){(s=s||{}).sessionId=s.sessionId||this.transport.sessionId,this.transport.sendMessageToServer(e,s,t)}onServerMessage(e,s){if(!(void 0===e||e.length<3||"w"!==e[0]||"s"!==e[1]||"-"!==e[2])&&void 0!==s&&s.sessionId===this.transport.sessionId)switch(e){case"ws-ready":{const e=async()=>{if(!this.init||0===this.init.length)return;const e=new TextEncoder,s=async(e,s,t)=>{await this.sendDataChunk({type:e,name:s,data:t.buffer}),await this.sendDataChunk({type:e,name:s,data:null})};let t=0;for(const i of this.init)if(ArrayBuffer.isView(i))await s("bundle",t+"",i),t++;else if("string"==typeof i)await s("file",".jsdos/dosbox.conf",e.encode(i));else{const t=i,o=i;void 0!==o.jsdosConf.version?(await s("file",".jsdos/dosbox.conf",e.encode(o.dosboxConf)),await s("file",".jsdos/jsdos.json",e.encode(JSON.stringify(o.jsdosConf,null,2)))):void 0!==t.path&&await s("file",t.path,t.contents)}};e().then((()=>{this.sendClientMessage("wc-run",{token:this.options.token})})).catch((e=>{this.onErr("panic","Can't send bundles to backend: "+e.message),console.error(e)})).finally((()=>{delete this.init}))}break;case"ws-server-ready":this.panicMessages.length>0?(void 0!==this.transport.exit&&this.transport.exit(),this.ready(new Error(JSON.stringify(this.panicMessages)))):this.ready(null),delete this.ready;break;case"ws-frame-set-size":this.onFrameSize(s.width,s.height);break;case"ws-update-lines":this.onFrameLines(s.lines,s.rgba);break;case"ws-exit":this.onExit();break;case"ws-log":this.onLog(s.tag,s.message);break;case"ws-warn":this.onWarn(s.tag,s.message);break;case"ws-err":this.onErr(s.tag,s.message);break;case"ws-stdout":this.onStdout(s.message);break;case"ws-persist":this.onPersist(s.bundle);break;case"ws-sound-init":this.onSoundInit(s.freq);break;case"ws-sound-push":this.onSoundPush(s.samples);break;case"ws-config":this.onConfig({dosboxConf:this.utf8Decoder.decode(s.dosboxConf),jsdosConf:JSON.parse(s.jsdosConf)});break;case"ws-sync-sleep":this.sendClientMessage("wc-sync-sleep",s);break;case"ws-connected":this.connectResolve(),this.connectPromise=null,this.connectResolve=()=>{},this.connectReject=()=>{},this.eventsImpl.fireNetworkConnected(s.networkType,s.address);break;case"ws-disconnected":null!==this.connectPromise?(this.connectReject(),this.connectPromise=null,this.connectResolve=()=>{},this.connectReject=()=>{}):(this.disconnectResolve(),this.disconnectPromise=null,this.disconnectResolve=()=>{}),this.eventsImpl.fireNetworkDisconnected(s.networkType);break;case"ws-extract-progress":this.options.onExtractProgress&&this.options.onExtractProgress(s.index,s.file,s.extracted,s.c
vendor: 6,561 bytes, lines 1-2
1ount);break;case"ws-asyncify-stats":this.asyncifyStatsResolve(s),this.asyncifyStatsResolve=()=>{},this.asyncifyStatsPromise=null;break;case"ws-fs-tree":this.fsTreeResolve(s.fsTree),this.fsTreeResolve=()=>{},this.fsTreePromise=null;break;case"ws-send-data-chunk":{const e=s.chunk,t=this.dataChunkKey(e);if("ok"===e.type)void 0!==this.dataChunkPromise[t]&&(this.dataChunkResolve[t](),delete this.dataChunkPromise[t],delete this.dataChunkResolve[t]);else if("file"===e.type)if(null===e.data){const s=this.mergeChunks(this.fsGetFileParts[e.name]);this.fsGetFileResolve[e.name](s),delete this.fsGetFilePromise[e.name],delete this.fsGetFileResolve[e.name]}else this.fsGetFileParts[e.name].push(new Uint8Array(e.data));else console.log("Unknown chunk type:",e.type)}break;default:console.log("Unknown server message (ws):",e)}}onConfig(e){this.configResolve(e)}onFrameSize(e,s){this.frameWidth===e&&this.frameHeight===s||(this.frameWidth=e,this.frameHeight=s,this.rgb=new Uint8Array(e*s*3),this.eventsImpl.fireFrameSize(e,s))}onFrameLines(e,s){for(const s of e)this.rgb.set(s.heapu8,s.start*this.frameWidth*3);this.eventsImpl.fireFrame(this.rgb,this.rgba)}onSoundInit(e){this.freq=e}onSoundPush(e){this.eventsImpl.fireSoundPush(e)}onLog(e,s){this.eventsImpl.fireMessage("log","["+e+"]"+s)}onWarn(e,s){this.eventsImpl.fireMessage("warn","["+e+"]"+s)}onErr(e,s){"panic"===e&&(this.panicMessages.push(s),console.error("["+e+"]"+s)),this.eventsImpl.fireMessage("error","["+e+"]"+s)}onStdout(e){this.eventsImpl.fireStdout(e)}config(){return this.configPromise}width(){return this.frameWidth}height(){return this.frameHeight}soundFrequency(){return this.freq}screenshot(){if(null!==this.rgb||null!==this.rgba){const e=new Uint8ClampedArray(this.frameWidth*this.frameHeight*4),s=null!==this.rgb?this.rgb:this.rgba;let t=0,i=0;for(;i<e.length;)e[i++]=s[t++],e[i++]=s[t++],e[i++]=s[t++],e[i++]=255,s.length===e.length&&t++;return Promise.resolve(new ImageData(e,this.frameWidth,this.frameHeight))}return Promise.reject(new Error("No frame received"))}simulateKeyPress(){const e=Date.now()-this.startedAt;for(var s=arguments.length,t=new Array(s),i=0;i<s;i++)t[i]=arguments[i];t.forEach((s=>this.addKey(s,!0,e))),t.forEach((s=>this.addKey(s,!1,e+16)))}sendKeyEvent(e,s){this.addKey(e,s,Date.now()-this.startedAt)}addKey(e,s,t){!0===this.keyMatrix[e]!==s&&(this.keyMatrix[e]=s,this.sendClientMessage("wc-add-key",{key:e,pressed:s,timeMs:t}))}sendMouseMotion(e,s){this.sendClientMessage("wc-mouse-move",{x:e,y:s,relative:!1,timeMs:Date.now()-this.startedAt})}sendMouseRelativeMotion(e,s){this.sendClientMessage("wc-mouse-move",{x:e,y:s,relative:!0,timeMs:Date.now()-this.startedAt})}sendMouseButton(e,s){this.sendClientMessage("wc-mouse-button",{button:e,pressed:s,timeMs:Date.now()-this.startedAt})}sendMouseSync(){this.sendClientMessage("wc-mouse-sync",{timeMs:Date.now()-this.startedAt})}sendBackendEvent(e){this.sendClientMessage("wc-backend-event",{json:JSON.stringify(e)})}persist(e){if(void 0!==this.persistPromise)return this.persistPromise;const s=new Promise((e=>{this.persistResolve=e}));return this.persistPromise=s,this.sendClientMessage("wc-pack-fs-to-bundle",{onlyChanges:!1!==e}),s}onPersist(e){this.persistResolve&&(this.persistResolve(e),delete this.persistPromise,delete this.persistResolve)}pause(){this.sendClientMessage("wc-pause")}resume(){this.sendClientMessage("wc-resume")}mute(){this.sendClientMessage("wc-mute")}unmute(){this.sendClientMessage("wc-unmute")}exit(){return void 0!==this.exitPromise||(this.exitPromise=new Promise((e=>this.exitResolve=e)),this.exitPromise.then((()=>{this.events().fireExit()})),this.resume(),this.sendClientMessage("wc-exit")),this.exitPromise}onExit(){void 0!==this.transport.exit&&this.transport.exit(),this.exitResolve&&(this.exitResolve(),delete this.exitPromise,delete this.exitResolve)}events(){return this.eventsImpl}networkConnect(e,s){return null!==this.connectPromise||null!==this.disconnectPromise?Promise.reject(new Error("Already prefoming connection or disconnection...")):(this.connectPromise=new Promise(((t,i)=>{s.startsWith("wss://")||s.startsWith("ws://")||(s=("http:"===window.location.protocol?"ws://":"wss://")+s),this.connectResolve=t,this.connectReject=i,this.sendClientMessage("wc-connect",{networkType:e,address:s})})),this.connectPromise)}networkDisconnect(e){return null!==this.connectPromise||null!==this.disconnectPromise?Promise.reject(new Error("Already prefoming connection or disconnection...")):(this.disconnectPromise=new Promise((s=>{this.disconnectResolve=s,this.sendClientMessage("wc-disconnect",{networkType:e})})),this.disconnectPromise)}asyncifyStats(){if(null!==this.asyncifyStatsPromise)return this.asyncifyStatsPromise;const e=new Promise((e=>{this.asyncifyStatsResolve=e}));return this.asyncifyStatsPromise=e,this.sendClientMessage("wc-asyncify-stats",{}),e}fsTree(){if(null!==this.fsTreePromise)return this.fsTreePromise;const e=new Promise((e=>{this.fsTreeResolve=e}));return this.fsTreePromise=e,this.sendClientMessage("wc-fs-tree"),e}async fsReadFile(e){if(void 0!==this.fsGetFilePromise[e])throw new Error("fsGetFile should not be called twice for same file");const s=new Promise((s=>{this.fsGetFileResolve[e]=s}));return this.fsGetFilePromise[e]=s,this.fsGetFileParts[e]=[],this.sendClientMessage("wc-fs-get-file",{file:e}),s}async fsWriteFile(e,s){if(ArrayBuffer.isView(s))await this.sendDataChunk({type:"file",name:e,data:s.buffer});else{const t=s.getReader();for(;;){const s=await t.read();if(void 0!==s.value&&await this.sendDataChunk({type:"file",name:e,data:s.value.buffer}),s.done)break}}await this.sendDataChunk({type:"file",name:e,data:null})}async fsDeleteFile(e){throw new Error("not implemented")}async sendDataChunk(e){if(null===e.data||e.data.byteLength<=n)return this.sendFullDataChunk(e);{let s=0;for(;s<e.data.byteLength;)await this.sendFullDataChunk({type:e.type,name:e.name,data:e.data.slice(s,Math.min(e.data.byteLength,s+n))}),s+=n}}async sendFullDataChunk(e){const s=this.dataChunkKey(e);if(void 0!==this.dataChunkPromise[s])throw new Error("sendDataChunk should be accepted before sending new one");const t=new Promise((e=>{this.dataChunkResolve[s]=e}));return this.dataChunkPromise[s]=t,this.sendClientMessage("wc-send-data-chunk",{chunk:e},null===e.data?void 0:[e.data]),t}dataChunkKey(e){return e.name}mergeChunks(e){if(1===e.length)return e[0];let s=0;for(const t of e)s+=t.byteLength;const t=new Uint8Array(s);s=0;for(const i of e)t.set(i,s),s+=i.byteLength;return t}}},{"../impl/ci-impl":7}]},{},[5]);
2//# sourceMappingURL=emulators.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.