factoriomod-debug 2.0.8 → 2.0.9
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/CHANGELOG.md +15 -0
- package/dist/Flamegraph.js +1 -1
- package/dist/ModSettingsWebview.css +1 -1
- package/dist/ModSettingsWebview.js +3 -3
- package/dist/ScriptDatWebview.css +1 -1
- package/dist/ScriptDatWebview.js +1 -1
- package/dist/chunk-LMNAIRFX.js +148 -0
- package/dist/{codicon-QHVHTGEQ.ttf → codicon-IEQOYIYN.ttf} +0 -0
- package/dist/fmtk-cli.js +77 -79
- package/dist/fmtk-vscode.js +13 -172
- package/eslint.config.ts +3 -3
- package/package.json +41 -32
- package/postinstall.ts +8 -0
- package/schema/migration.json +17 -2
- package/schema/modinfo.json +9 -0
- package/.mocharc.json +0 -7
- package/dist/chunk-USWMQ2GW.js +0 -3422
- package/dist/chunk-ZLQDNPPN.js +0 -36
- package/dist/multipart-parser-3M5RC66T.js +0 -7
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
|
|
2
|
+
import {createRequire} from 'module'
|
|
3
|
+
const require = createRequire(import.meta.url)
|
|
4
|
+
|
|
5
|
+
var Qp=Object.create;var Un=Object.defineProperty;var _p=Object.getOwnPropertyDescriptor;var Gp=Object.getOwnPropertyNames;var Kp=Object.getPrototypeOf,Yp=Object.prototype.hasOwnProperty;var tt=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var lw=(r,e)=>()=>(r&&(e=r(r=0)),e);var B=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ie=(r,e)=>{for(var t in e)Un(r,t,{get:e[t],enumerable:!0})},Fc=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Gp(e))!Yp.call(r,i)&&i!==t&&Un(r,i,{get:()=>e[i],enumerable:!(n=_p(e,i))||n.enumerable});return r};var Ae=(r,e,t)=>(t=r!=null?Qp(Kp(r)):{},Fc(e||!r||!r.__esModule?Un(t,"default",{value:r,enumerable:!0}):t,r)),dw=r=>Fc(Un({},"__esModule",{value:!0}),r);var jn=r=>new Uint8Array(Buffer.from(r,"base64"));var Qn=B(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.Event=Yt.Response=Yt.Message=void 0;var tn=class{constructor(e){this.seq=0,this.type=e}};Yt.Message=tn;var yo=class extends tn{constructor(e,t){super("response"),this.request_seq=e.seq,this.command=e.command,t?(this.success=!1,this.message=t):this.success=!0}};Yt.Response=yo;var bo=class extends tn{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Yt.Event=bo});var qc=B(Gn=>{"use strict";Object.defineProperty(Gn,"__esModule",{value:!0});Gn.ProtocolServer=void 0;var Vp=tt("events"),rn=Qn(),vo=class{get event(){return this._event||(this._event=(e,t)=>{this._listener=e,this._this=t;let n;return n={dispose:()=>{this._listener=void 0,this._this=void 0}},n}),this._event}fire(e){if(this._listener)try{this._listener.call(this._this,e)}catch{}}hasListener(){return!!this._listener}dispose(){this._listener=void 0,this._this=void 0}},_n=class r extends Vp.EventEmitter{constructor(){super(),this._sendMessage=new vo,this._sequence=1,this._pendingRequests=new Map,this.onDidSendMessage=this._sendMessage.event}dispose(){}handleMessage(e){if(e.type==="request")this.dispatchRequest(e);else if(e.type==="response"){let t=e,n=this._pendingRequests.get(t.request_seq);n&&(this._pendingRequests.delete(t.request_seq),n(t))}}_isRunningInline(){return this._sendMessage&&this._sendMessage.hasListener()}start(e,t){this._writableStream=t,this._rawData=Buffer.alloc(0),e.on("data",n=>this._handleData(n)),e.on("close",()=>{this._emitEvent(new rn.Event("close"))}),e.on("error",n=>{this._emitEvent(new rn.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new rn.Event("error","outStream error: "+(n&&n.message)))}),e.resume()}stop(){this._writableStream&&this._writableStream.end()}sendEvent(e){this._send("event",e)}sendResponse(e){e.seq>0?console.error(`attempt to send more than one response for command ${e.command}`):this._send("response",e)}sendRequest(e,t,n,i){let o={command:e};if(t&&Object.keys(t).length>0&&(o.arguments=t),this._send("request",o),i){this._pendingRequests.set(o.seq,i);let s=setTimeout(()=>{clearTimeout(s);let c=this._pendingRequests.get(o.seq);c&&(this._pendingRequests.delete(o.seq),c(new rn.Response(o,"timeout")))},n)}}dispatchRequest(e){}_emitEvent(e){this.emit(e.event,e)}_send(e,t){if(t.type=e,t.seq=this._sequence++,this._writableStream){let n=JSON.stringify(t);this._writableStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}\r
|
|
6
|
+
\r
|
|
7
|
+
${n}`,"utf8")}this._sendMessage.fire(t)}_handleData(e){for(this._rawData=Buffer.concat([this._rawData,e]);;){if(this._contentLength>=0){if(this._rawData.length>=this._contentLength){let t=this._rawData.toString("utf8",0,this._contentLength);if(this._rawData=this._rawData.slice(this._contentLength),this._contentLength=-1,t.length>0)try{let n=JSON.parse(t);this.handleMessage(n)}catch(n){this._emitEvent(new rn.Event("error","Error handling data: "+(n&&n.message)))}continue}}else{let t=this._rawData.indexOf(r.TWO_CRLF);if(t!==-1){let i=this._rawData.toString("utf8",0,t).split(`\r
|
|
8
|
+
`);for(let o=0;o<i.length;o++){let s=i[o].split(/: +/);s[0]=="Content-Length"&&(this._contentLength=+s[1])}this._rawData=this._rawData.slice(t+r.TWO_CRLF.length);continue}}break}}};Gn.ProtocolServer=_n;_n.TWO_CRLF=`\r
|
|
9
|
+
\r
|
|
10
|
+
`});var Uc=B(Kn=>{"use strict";Object.defineProperty(Kn,"__esModule",{value:!0});Kn.runDebugAdapter=void 0;var Wp=tt("net");function Hp(r){let e=0;if(process.argv.slice(2).forEach(function(n,i,o){let s=/^--server=(\d{4,5})$/.exec(n);s&&(e=parseInt(s[1],10))}),e>0)console.error(`waiting for debug protocol on port ${e}`),Wp.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
|
|
11
|
+
`)});let i=new r(!1,!0);i.setRunAsServer(!0),i.start(n,n)}).listen(e);else{let n=new r(!1);process.on("SIGTERM",()=>{n.shutdown()}),n.start(process.stdin,process.stdout)}}Kn.runDebugAdapter=Hp});var Vn=B($=>{"use strict";Object.defineProperty($,"__esModule",{value:!0});$.DebugSession=$.ErrorDestination=$.MemoryEvent=$.InvalidatedEvent=$.ProgressEndEvent=$.ProgressUpdateEvent=$.ProgressStartEvent=$.CapabilitiesEvent=$.LoadedSourceEvent=$.ModuleEvent=$.BreakpointEvent=$.ThreadEvent=$.OutputEvent=$.ExitedEvent=$.TerminatedEvent=$.InitializedEvent=$.ContinuedEvent=$.StoppedEvent=$.CompletionItem=$.Module=$.Breakpoint=$.Variable=$.Thread=$.StackFrame=$.Scope=$.Source=void 0;var Jp=qc(),Ge=Qn(),Zp=Uc(),jc=tt("url"),wo=class{constructor(e,t,n=0,i,o){this.name=e,this.path=t,this.sourceReference=n,i&&(this.origin=i),o&&(this.adapterData=o)}};$.Source=wo;var Eo=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};$.Scope=Eo;var Do=class{constructor(e,t,n,i=0,o=0){this.id=e,this.source=n,this.line=i,this.column=o,this.name=t}};$.StackFrame=Do;var Ro=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};$.Thread=Ro;var Po=class{constructor(e,t,n=0,i,o){this.name=e,this.value=t,this.variablesReference=n,typeof o=="number"&&(this.namedVariables=o),typeof i=="number"&&(this.indexedVariables=i)}};$.Variable=Po;var So=class{constructor(e,t,n,i){this.verified=e;let o=this;typeof t=="number"&&(o.line=t),typeof n=="number"&&(o.column=n),i&&(o.source=i)}setId(e){this.id=e}};$.Breakpoint=So;var Io=class{constructor(e,t){this.id=e,this.name=t}};$.Module=Io;var Lo=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};$.CompletionItem=Lo;var Co=class extends Ge.Event{constructor(e,t,n){super("stopped"),this.body={reason:e},typeof t=="number"&&(this.body.threadId=t),typeof n=="string"&&(this.body.text=n)}};$.StoppedEvent=Co;var ko=class extends Ge.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};$.ContinuedEvent=ko;var Bo=class extends Ge.Event{constructor(){super("initialized")}};$.InitializedEvent=Bo;var Mo=class extends Ge.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};$.TerminatedEvent=Mo;var To=class extends Ge.Event{constructor(e){super("exited"),this.body={exitCode:e}}};$.ExitedEvent=To;var xo=class extends Ge.Event{constructor(e,t="console",n){super("output"),this.body={category:t,output:e},n!==void 0&&(this.body.data=n)}};$.OutputEvent=xo;var Oo=class extends Ge.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};$.ThreadEvent=Oo;var Fo=class extends Ge.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};$.BreakpointEvent=Fo;var No=class extends Ge.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};$.ModuleEvent=No;var qo=class extends Ge.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};$.LoadedSourceEvent=qo;var Uo=class extends Ge.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};$.CapabilitiesEvent=Uo;var jo=class extends Ge.Event{constructor(e,t,n){super("progressStart"),this.body={progressId:e,title:t},typeof n=="string"&&(this.body.message=n)}};$.ProgressStartEvent=jo;var Qo=class extends Ge.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};$.ProgressUpdateEvent=Qo;var _o=class extends Ge.Event{constructor(e,t){super("progressEnd"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};$.ProgressEndEvent=_o;var Go=class extends Ge.Event{constructor(e,t,n){super("invalidated"),this.body={},e&&(this.body.areas=e),t&&(this.body.threadId=t),n&&(this.body.stackFrameId=n)}};$.InvalidatedEvent=Go;var Ko=class extends Ge.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};$.MemoryEvent=Ko;var dr;(function(r){r[r.User=1]="User",r[r.Telemetry=2]="Telemetry"})(dr=$.ErrorDestination||($.ErrorDestination={}));var Yn=class r extends Jp.ProtocolServer{constructor(e,t){super();let n=typeof e=="boolean"?e:!1;this._debuggerLinesStartAt1=n,this._debuggerColumnsStartAt1=n,this._debuggerPathsAreURIs=!1,this._clientLinesStartAt1=!0,this._clientColumnsStartAt1=!0,this._clientPathsAreURIs=!1,this._isServer=typeof t=="boolean"?t:!1,this.on("close",()=>{this.shutdown()}),this.on("error",i=>{this.shutdown()})}setDebuggerPathFormat(e){this._debuggerPathsAreURIs=e!=="path"}setDebuggerLinesStartAt1(e){this._debuggerLinesStartAt1=e}setDebuggerColumnsStartAt1(e){this._debuggerColumnsStartAt1=e}setRunAsServer(e){this._isServer=e}static run(e){(0,Zp.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,i,o=dr.User){let s;typeof t=="number"?(s={id:t,format:n},i&&(s.variables=i),o&dr.User&&(s.showUser=!0),o&dr.Telemetry&&(s.sendTelemetry=!0)):s=t,e.success=!1,e.message=r.formatPII(s.format,!0,s.variables),e.body||(e.body={}),e.body.error=s,this.sendResponse(e)}runInTerminalRequest(e,t,n){this.sendRequest("runInTerminal",e,t,n)}dispatchRequest(e){let t=new Ge.Response(e);try{if(e.command==="initialize"){var n=e.arguments;if(typeof n.linesStartAt1=="boolean"&&(this._clientLinesStartAt1=n.linesStartAt1),typeof n.columnsStartAt1=="boolean"&&(this._clientColumnsStartAt1=n.columnsStartAt1),n.pathFormat!=="path")this.sendErrorResponse(t,2018,"debug adapter only supports native paths",null,dr.Telemetry);else{let i=t;i.body={},this.initializeRequest(i,n)}}else e.command==="launch"?this.launchRequest(t,e.arguments,e):e.command==="attach"?this.attachRequest(t,e.arguments,e):e.command==="disconnect"?this.disconnectRequest(t,e.arguments,e):e.command==="terminate"?this.terminateRequest(t,e.arguments,e):e.command==="restart"?this.restartRequest(t,e.arguments,e):e.command==="setBreakpoints"?this.setBreakPointsRequest(t,e.arguments,e):e.command==="setFunctionBreakpoints"?this.setFunctionBreakPointsRequest(t,e.arguments,e):e.command==="setExceptionBreakpoints"?this.setExceptionBreakPointsRequest(t,e.arguments,e):e.command==="configurationDone"?this.configurationDoneRequest(t,e.arguments,e):e.command==="continue"?this.continueRequest(t,e.arguments,e):e.command==="next"?this.nextRequest(t,e.arguments,e):e.command==="stepIn"?this.stepInRequest(t,e.arguments,e):e.command==="stepOut"?this.stepOutRequest(t,e.arguments,e):e.command==="stepBack"?this.stepBackRequest(t,e.arguments,e):e.command==="reverseContinue"?this.reverseContinueRequest(t,e.arguments,e):e.command==="restartFrame"?this.restartFrameRequest(t,e.arguments,e):e.command==="goto"?this.gotoRequest(t,e.arguments,e):e.command==="pause"?this.pauseRequest(t,e.arguments,e):e.command==="stackTrace"?this.stackTraceRequest(t,e.arguments,e):e.command==="scopes"?this.scopesRequest(t,e.arguments,e):e.command==="variables"?this.variablesRequest(t,e.arguments,e):e.command==="setVariable"?this.setVariableRequest(t,e.arguments,e):e.command==="setExpression"?this.setExpressionRequest(t,e.arguments,e):e.command==="source"?this.sourceRequest(t,e.arguments,e):e.command==="threads"?this.threadsRequest(t,e):e.command==="terminateThreads"?this.terminateThreadsRequest(t,e.arguments,e):e.command==="evaluate"?this.evaluateRequest(t,e.arguments,e):e.command==="stepInTargets"?this.stepInTargetsRequest(t,e.arguments,e):e.command==="gotoTargets"?this.gotoTargetsRequest(t,e.arguments,e):e.command==="completions"?this.completionsRequest(t,e.arguments,e):e.command==="exceptionInfo"?this.exceptionInfoRequest(t,e.arguments,e):e.command==="loadedSources"?this.loadedSourcesRequest(t,e.arguments,e):e.command==="dataBreakpointInfo"?this.dataBreakpointInfoRequest(t,e.arguments,e):e.command==="setDataBreakpoints"?this.setDataBreakpointsRequest(t,e.arguments,e):e.command==="readMemory"?this.readMemoryRequest(t,e.arguments,e):e.command==="writeMemory"?this.writeMemoryRequest(t,e.arguments,e):e.command==="disassemble"?this.disassembleRequest(t,e.arguments,e):e.command==="cancel"?this.cancelRequest(t,e.arguments,e):e.command==="breakpointLocations"?this.breakpointLocationsRequest(t,e.arguments,e):e.command==="setInstructionBreakpoints"?this.setInstructionBreakpointsRequest(t,e.arguments,e):this.customRequest(e.command,t,e.arguments,e)}catch(i){this.sendErrorResponse(t,1104,"{_stack}",{_exception:i.message,_stack:i.stack},dr.Telemetry)}}initializeRequest(e,t){e.body.supportsConditionalBreakpoints=!1,e.body.supportsHitConditionalBreakpoints=!1,e.body.supportsFunctionBreakpoints=!1,e.body.supportsConfigurationDoneRequest=!0,e.body.supportsEvaluateForHovers=!1,e.body.supportsStepBack=!1,e.body.supportsSetVariable=!1,e.body.supportsRestartFrame=!1,e.body.supportsStepInTargetsRequest=!1,e.body.supportsGotoTargetsRequest=!1,e.body.supportsCompletionsRequest=!1,e.body.supportsRestartRequest=!1,e.body.supportsExceptionOptions=!1,e.body.supportsValueFormattingOptions=!1,e.body.supportsExceptionInfoRequest=!1,e.body.supportTerminateDebuggee=!1,e.body.supportsDelayedStackTraceLoading=!1,e.body.supportsLoadedSourcesRequest=!1,e.body.supportsLogPoints=!1,e.body.supportsTerminateThreadsRequest=!1,e.body.supportsSetExpression=!1,e.body.supportsTerminateRequest=!1,e.body.supportsDataBreakpoints=!1,e.body.supportsReadMemoryRequest=!1,e.body.supportsDisassembleRequest=!1,e.body.supportsCancelRequest=!1,e.body.supportsBreakpointLocationsRequest=!1,e.body.supportsClipboardContext=!1,e.body.supportsSteppingGranularity=!1,e.body.supportsInstructionBreakpoints=!1,e.body.supportsExceptionFilterOptions=!1,this.sendResponse(e)}disconnectRequest(e,t,n){this.sendResponse(e),this.shutdown()}launchRequest(e,t,n){this.sendResponse(e)}attachRequest(e,t,n){this.sendResponse(e)}terminateRequest(e,t,n){this.sendResponse(e)}restartRequest(e,t,n){this.sendResponse(e)}setBreakPointsRequest(e,t,n){this.sendResponse(e)}setFunctionBreakPointsRequest(e,t,n){this.sendResponse(e)}setExceptionBreakPointsRequest(e,t,n){this.sendResponse(e)}configurationDoneRequest(e,t,n){this.sendResponse(e)}continueRequest(e,t,n){this.sendResponse(e)}nextRequest(e,t,n){this.sendResponse(e)}stepInRequest(e,t,n){this.sendResponse(e)}stepOutRequest(e,t,n){this.sendResponse(e)}stepBackRequest(e,t,n){this.sendResponse(e)}reverseContinueRequest(e,t,n){this.sendResponse(e)}restartFrameRequest(e,t,n){this.sendResponse(e)}gotoRequest(e,t,n){this.sendResponse(e)}pauseRequest(e,t,n){this.sendResponse(e)}sourceRequest(e,t,n){this.sendResponse(e)}threadsRequest(e,t){this.sendResponse(e)}terminateThreadsRequest(e,t,n){this.sendResponse(e)}stackTraceRequest(e,t,n){this.sendResponse(e)}scopesRequest(e,t,n){this.sendResponse(e)}variablesRequest(e,t,n){this.sendResponse(e)}setVariableRequest(e,t,n){this.sendResponse(e)}setExpressionRequest(e,t,n){this.sendResponse(e)}evaluateRequest(e,t,n){this.sendResponse(e)}stepInTargetsRequest(e,t,n){this.sendResponse(e)}gotoTargetsRequest(e,t,n){this.sendResponse(e)}completionsRequest(e,t,n){this.sendResponse(e)}exceptionInfoRequest(e,t,n){this.sendResponse(e)}loadedSourcesRequest(e,t,n){this.sendResponse(e)}dataBreakpointInfoRequest(e,t,n){this.sendResponse(e)}setDataBreakpointsRequest(e,t,n){this.sendResponse(e)}readMemoryRequest(e,t,n){this.sendResponse(e)}writeMemoryRequest(e,t,n){this.sendResponse(e)}disassembleRequest(e,t,n){this.sendResponse(e)}cancelRequest(e,t,n){this.sendResponse(e)}breakpointLocationsRequest(e,t,n){this.sendResponse(e)}setInstructionBreakpointsRequest(e,t,n){this.sendResponse(e)}customRequest(e,t,n,i){this.sendErrorResponse(t,1014,"unrecognized request",null,dr.Telemetry)}convertClientLineToDebugger(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e+1:this._clientLinesStartAt1?e-1:e}convertDebuggerLineToClient(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e-1:this._clientLinesStartAt1?e+1:e}convertClientColumnToDebugger(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e+1:this._clientColumnsStartAt1?e-1:e}convertDebuggerColumnToClient(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e-1:this._clientColumnsStartAt1?e+1:e}convertClientPathToDebugger(e){return this._clientPathsAreURIs!==this._debuggerPathsAreURIs?this._clientPathsAreURIs?r.uri2path(e):r.path2uri(e):e}convertDebuggerPathToClient(e){return this._debuggerPathsAreURIs!==this._clientPathsAreURIs?this._debuggerPathsAreURIs?r.uri2path(e):r.path2uri(e):e}static path2uri(e){process.platform==="win32"&&(/^[A-Z]:/.test(e)&&(e=e[0].toLowerCase()+e.substr(1)),e=e.replace(/\\/g,"/")),e=encodeURI(e);let t=new jc.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new jc.URL(e),n=decodeURIComponent(t.pathname);return process.platform==="win32"&&(/^\/[a-zA-Z]:/.test(n)&&(n=n[1].toLowerCase()+n.substr(2)),n=n.replace(/\//g,"\\")),n}static formatPII(e,t,n){return e.replace(r._formatPIIRegexp,function(i,o){return t&&o.length>0&&o[0]!=="_"?i:n[o]&&n.hasOwnProperty(o)?n[o]:i})}};$.DebugSession=Yn;Yn._formatPIIRegexp=/{([^}]+)}/g});var Kc=B(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.InternalLogger=void 0;var Qc=tt("fs"),_c=tt("path"),lt=Jn(),Yo=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=lt.LogLevel.Warn,this.disposeCallback=(n,i)=>{this.dispose(),i=i||2,i+=128,process.exit(i)}}async setup(e){if(this._minLogLevel=e.consoleMinLogLevel,this._prependTimestamp=e.prependTimestamp,e.logFilePath)if(!_c.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,lt.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
|
|
12
|
+
`,lt.LogLevel.Error);try{await Qc.promises.mkdir(_c.dirname(e.logFilePath),{recursive:!0}),this.log(`Verbose logs are written to:
|
|
13
|
+
`,lt.LogLevel.Warn),this.log(e.logFilePath+`
|
|
14
|
+
`,lt.LogLevel.Warn),this._logFileStream=Qc.createWriteStream(e.logFilePath),this.logDateTime(),this.setupShutdownListeners(),this._logFileStream.on("error",n=>{t(n)})}catch(n){t(n)}}}logDateTime(){let e=new Date,n=e.getUTCFullYear()+`-${e.getUTCMonth()+1}-`+e.getUTCDate()+", "+Gc();this.log(n+`
|
|
15
|
+
`,lt.LogLevel.Verbose,!1)}setupShutdownListeners(){process.on("beforeExit",this.beforeExitCallback),process.on("SIGTERM",this.disposeCallback),process.on("SIGINT",this.disposeCallback)}removeShutdownListeners(){process.removeListener("beforeExit",this.beforeExitCallback),process.removeListener("SIGTERM",this.disposeCallback),process.removeListener("SIGINT",this.disposeCallback)}dispose(){return new Promise(e=>{this.removeShutdownListeners(),this._logFileStream?(this._logFileStream.end(e),this._logFileStream=null):e()})}log(e,t,n=!0){if(this._minLogLevel!==lt.LogLevel.Stop){if(t>=this._minLogLevel&&this.sendLog(e,t),this._logToConsole){let i=t===lt.LogLevel.Error?console.error:t===lt.LogLevel.Warn?console.warn:null;i&&i((0,lt.trimLastNewline)(e))}t===lt.LogLevel.Error&&(e=`[${lt.LogLevel[t]}] ${e}`),this._prependTimestamp&&n&&(e="["+Gc()+"] "+e),this._logFileStream&&this._logFileStream.write(e)}}sendLog(e,t){if(e.length>1500){let n=!!e.match(/(\n|\r\n)$/);e=e.substr(0,1500)+"[...]",n&&(e=e+`
|
|
16
|
+
`)}if(this._logCallback){let n=new lt.LogOutputEvent(e,t);this._logCallback(n)}}};Hn.InternalLogger=Yo;function Gc(){let r=new Date,e=Wn(2,String(r.getUTCHours())),t=Wn(2,String(r.getUTCMinutes())),n=Wn(2,String(r.getUTCSeconds())),i=Wn(3,String(r.getUTCMilliseconds()));return e+":"+t+":"+n+"."+i+" UTC"}function Wn(r,e){return e.length>=r?e:String("0".repeat(r)+e).slice(-r)}});var Jn=B(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.trimLastNewline=dt.LogOutputEvent=dt.logger=dt.Logger=dt.LogLevel=void 0;var Xp=Kc(),zp=Vn(),Vt;(function(r){r[r.Verbose=0]="Verbose",r[r.Log=1]="Log",r[r.Warn=2]="Warn",r[r.Error=3]="Error",r[r.Stop=4]="Stop"})(Vt=dt.LogLevel||(dt.LogLevel={}));var Zn=class{constructor(){this._pendingLogQ=[]}log(e,t=Vt.Log){e=e+`
|
|
17
|
+
`,this._write(e,t)}verbose(e){this.log(e,Vt.Verbose)}warn(e){this.log(e,Vt.Warn)}error(e){this.log(e,Vt.Error)}dispose(){if(this._currentLogger){let e=this._currentLogger.dispose();return this._currentLogger=null,e}else return Promise.resolve()}_write(e,t=Vt.Log){e=e+"",this._pendingLogQ?this._pendingLogQ.push({msg:e,level:t}):this._currentLogger&&this._currentLogger.log(e,t)}setup(e,t,n=!0){let i=typeof t=="string"?t:t&&this._logFilePathFromInit;if(this._currentLogger){let o={consoleMinLogLevel:e,logFilePath:i,prependTimestamp:n};this._currentLogger.setup(o).then(()=>{if(this._pendingLogQ){let s=this._pendingLogQ;this._pendingLogQ=null,s.forEach(c=>this._write(c.msg,c.level))}})}}init(e,t,n){this._pendingLogQ=this._pendingLogQ||[],this._currentLogger=new Xp.InternalLogger(e,n),this._logFilePathFromInit=t}};dt.Logger=Zn;dt.logger=new Zn;var Vo=class extends zp.OutputEvent{constructor(e,t){let n=t===Vt.Error?"stderr":t===Vt.Warn?"console":"stdout";super(e,n)}};dt.LogOutputEvent=Vo;function $p(r){return r.replace(/(\n|\r\n)$/,"")}dt.trimLastNewline=$p});var Wc=B(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});Xn.LoggingDebugSession=void 0;var Vc=Jn(),Pr=Vc.logger,Yc=Vn(),Wo=class extends Yc.DebugSession{constructor(e,t,n){super(t,n),this.obsolete_logFilePath=e,this.on("error",i=>{Pr.error(i.body)})}start(e,t){super.start(e,t),Pr.init(n=>this.sendEvent(n),this.obsolete_logFilePath,this._isServer)}sendEvent(e){if(!(e instanceof Vc.LogOutputEvent)){let t=e;e instanceof Yc.OutputEvent&&e.body&&e.body.data&&e.body.data.doNotLogOutput&&(delete e.body.data.doNotLogOutput,t={...e},t.body={...e.body,output:"<output not logged>"}),Pr.verbose(`To client: ${JSON.stringify(t)}`)}super.sendEvent(e)}sendRequest(e,t,n,i){Pr.verbose(`To client: ${JSON.stringify(e)}(${JSON.stringify(t)}), timeout: ${n}`),super.sendRequest(e,t,n,i)}sendResponse(e){Pr.verbose(`To client: ${JSON.stringify(e)}`),super.sendResponse(e)}dispatchRequest(e){Pr.verbose(`From client: ${e.command}(${JSON.stringify(e.arguments)})`),super.dispatchRequest(e)}};Xn.LoggingDebugSession=Wo});var Hc=B(zn=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});zn.Handles=void 0;var Ho=class{constructor(e){this.START_HANDLE=1e3,this._handleMap=new Map,this._nextHandle=typeof e=="number"?e:this.START_HANDLE}reset(){this._nextHandle=this.START_HANDLE,this._handleMap=new Map}create(e){var t=this._nextHandle++;return this._handleMap.set(t,e),t}get(e,t){return this._handleMap.get(e)||t}};zn.Handles=Ho});var Xc=B(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.Handles=J.Response=J.Event=J.ErrorDestination=J.CompletionItem=J.Module=J.Source=J.Breakpoint=J.Variable=J.Scope=J.StackFrame=J.Thread=J.MemoryEvent=J.InvalidatedEvent=J.ProgressEndEvent=J.ProgressUpdateEvent=J.ProgressStartEvent=J.CapabilitiesEvent=J.LoadedSourceEvent=J.ModuleEvent=J.BreakpointEvent=J.ThreadEvent=J.OutputEvent=J.ContinuedEvent=J.StoppedEvent=J.ExitedEvent=J.TerminatedEvent=J.InitializedEvent=J.logger=J.Logger=J.LoggingDebugSession=J.DebugSession=void 0;var Ee=Vn();Object.defineProperty(J,"DebugSession",{enumerable:!0,get:function(){return Ee.DebugSession}});Object.defineProperty(J,"InitializedEvent",{enumerable:!0,get:function(){return Ee.InitializedEvent}});Object.defineProperty(J,"TerminatedEvent",{enumerable:!0,get:function(){return Ee.TerminatedEvent}});Object.defineProperty(J,"ExitedEvent",{enumerable:!0,get:function(){return Ee.ExitedEvent}});Object.defineProperty(J,"StoppedEvent",{enumerable:!0,get:function(){return Ee.StoppedEvent}});Object.defineProperty(J,"ContinuedEvent",{enumerable:!0,get:function(){return Ee.ContinuedEvent}});Object.defineProperty(J,"OutputEvent",{enumerable:!0,get:function(){return Ee.OutputEvent}});Object.defineProperty(J,"ThreadEvent",{enumerable:!0,get:function(){return Ee.ThreadEvent}});Object.defineProperty(J,"BreakpointEvent",{enumerable:!0,get:function(){return Ee.BreakpointEvent}});Object.defineProperty(J,"ModuleEvent",{enumerable:!0,get:function(){return Ee.ModuleEvent}});Object.defineProperty(J,"LoadedSourceEvent",{enumerable:!0,get:function(){return Ee.LoadedSourceEvent}});Object.defineProperty(J,"CapabilitiesEvent",{enumerable:!0,get:function(){return Ee.CapabilitiesEvent}});Object.defineProperty(J,"ProgressStartEvent",{enumerable:!0,get:function(){return Ee.ProgressStartEvent}});Object.defineProperty(J,"ProgressUpdateEvent",{enumerable:!0,get:function(){return Ee.ProgressUpdateEvent}});Object.defineProperty(J,"ProgressEndEvent",{enumerable:!0,get:function(){return Ee.ProgressEndEvent}});Object.defineProperty(J,"InvalidatedEvent",{enumerable:!0,get:function(){return Ee.InvalidatedEvent}});Object.defineProperty(J,"MemoryEvent",{enumerable:!0,get:function(){return Ee.MemoryEvent}});Object.defineProperty(J,"Thread",{enumerable:!0,get:function(){return Ee.Thread}});Object.defineProperty(J,"StackFrame",{enumerable:!0,get:function(){return Ee.StackFrame}});Object.defineProperty(J,"Scope",{enumerable:!0,get:function(){return Ee.Scope}});Object.defineProperty(J,"Variable",{enumerable:!0,get:function(){return Ee.Variable}});Object.defineProperty(J,"Breakpoint",{enumerable:!0,get:function(){return Ee.Breakpoint}});Object.defineProperty(J,"Source",{enumerable:!0,get:function(){return Ee.Source}});Object.defineProperty(J,"Module",{enumerable:!0,get:function(){return Ee.Module}});Object.defineProperty(J,"CompletionItem",{enumerable:!0,get:function(){return Ee.CompletionItem}});Object.defineProperty(J,"ErrorDestination",{enumerable:!0,get:function(){return Ee.ErrorDestination}});var em=Wc();Object.defineProperty(J,"LoggingDebugSession",{enumerable:!0,get:function(){return em.LoggingDebugSession}});var Jc=Jn();J.Logger=Jc;var Zc=Qn();Object.defineProperty(J,"Event",{enumerable:!0,get:function(){return Zc.Event}});Object.defineProperty(J,"Response",{enumerable:!0,get:function(){return Zc.Response}});var tm=Hc();Object.defineProperty(J,"Handles",{enumerable:!0,get:function(){return tm.Handles}});var rm=Jc.logger;J.logger=rm});var nn=B((Rw,zc)=>{"use strict";var nm="2.0.0",im=Number.MAX_SAFE_INTEGER||9007199254740991,om=16,sm=250,am=["major","premajor","minor","preminor","patch","prepatch","prerelease"];zc.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:om,MAX_SAFE_BUILD_LENGTH:sm,MAX_SAFE_INTEGER:im,RELEASE_TYPES:am,SEMVER_SPEC_VERSION:nm,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var on=B((Pw,$c)=>{"use strict";var cm=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};$c.exports=cm});var Sr=B((Ct,eu)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Jo,MAX_SAFE_BUILD_LENGTH:um,MAX_LENGTH:lm}=nn(),dm=on();Ct=eu.exports={};var fm=Ct.re=[],hm=Ct.safeRe=[],W=Ct.src=[],gm=Ct.safeSrc=[],H=Ct.t={},pm=0,Zo="[a-zA-Z0-9-]",mm=[["\\s",1],["\\d",lm],[Zo,um]],Am=r=>{for(let[e,t]of mm)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},oe=(r,e,t)=>{let n=Am(e),i=pm++;dm(r,i,e),H[r]=i,W[i]=e,gm[i]=n,fm[i]=new RegExp(e,t?"g":void 0),hm[i]=new RegExp(n,t?"g":void 0)};oe("NUMERICIDENTIFIER","0|[1-9]\\d*");oe("NUMERICIDENTIFIERLOOSE","\\d+");oe("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Zo}*`);oe("MAINVERSION",`(${W[H.NUMERICIDENTIFIER]})\\.(${W[H.NUMERICIDENTIFIER]})\\.(${W[H.NUMERICIDENTIFIER]})`);oe("MAINVERSIONLOOSE",`(${W[H.NUMERICIDENTIFIERLOOSE]})\\.(${W[H.NUMERICIDENTIFIERLOOSE]})\\.(${W[H.NUMERICIDENTIFIERLOOSE]})`);oe("PRERELEASEIDENTIFIER",`(?:${W[H.NONNUMERICIDENTIFIER]}|${W[H.NUMERICIDENTIFIER]})`);oe("PRERELEASEIDENTIFIERLOOSE",`(?:${W[H.NONNUMERICIDENTIFIER]}|${W[H.NUMERICIDENTIFIERLOOSE]})`);oe("PRERELEASE",`(?:-(${W[H.PRERELEASEIDENTIFIER]}(?:\\.${W[H.PRERELEASEIDENTIFIER]})*))`);oe("PRERELEASELOOSE",`(?:-?(${W[H.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${W[H.PRERELEASEIDENTIFIERLOOSE]})*))`);oe("BUILDIDENTIFIER",`${Zo}+`);oe("BUILD",`(?:\\+(${W[H.BUILDIDENTIFIER]}(?:\\.${W[H.BUILDIDENTIFIER]})*))`);oe("FULLPLAIN",`v?${W[H.MAINVERSION]}${W[H.PRERELEASE]}?${W[H.BUILD]}?`);oe("FULL",`^${W[H.FULLPLAIN]}$`);oe("LOOSEPLAIN",`[v=\\s]*${W[H.MAINVERSIONLOOSE]}${W[H.PRERELEASELOOSE]}?${W[H.BUILD]}?`);oe("LOOSE",`^${W[H.LOOSEPLAIN]}$`);oe("GTLT","((?:<|>)?=?)");oe("XRANGEIDENTIFIERLOOSE",`${W[H.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);oe("XRANGEIDENTIFIER",`${W[H.NUMERICIDENTIFIER]}|x|X|\\*`);oe("XRANGEPLAIN",`[v=\\s]*(${W[H.XRANGEIDENTIFIER]})(?:\\.(${W[H.XRANGEIDENTIFIER]})(?:\\.(${W[H.XRANGEIDENTIFIER]})(?:${W[H.PRERELEASE]})?${W[H.BUILD]}?)?)?`);oe("XRANGEPLAINLOOSE",`[v=\\s]*(${W[H.XRANGEIDENTIFIERLOOSE]})(?:\\.(${W[H.XRANGEIDENTIFIERLOOSE]})(?:\\.(${W[H.XRANGEIDENTIFIERLOOSE]})(?:${W[H.PRERELEASELOOSE]})?${W[H.BUILD]}?)?)?`);oe("XRANGE",`^${W[H.GTLT]}\\s*${W[H.XRANGEPLAIN]}$`);oe("XRANGELOOSE",`^${W[H.GTLT]}\\s*${W[H.XRANGEPLAINLOOSE]}$`);oe("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Jo}})(?:\\.(\\d{1,${Jo}}))?(?:\\.(\\d{1,${Jo}}))?`);oe("COERCE",`${W[H.COERCEPLAIN]}(?:$|[^\\d])`);oe("COERCEFULL",W[H.COERCEPLAIN]+`(?:${W[H.PRERELEASE]})?(?:${W[H.BUILD]})?(?:$|[^\\d])`);oe("COERCERTL",W[H.COERCE],!0);oe("COERCERTLFULL",W[H.COERCEFULL],!0);oe("LONETILDE","(?:~>?)");oe("TILDETRIM",`(\\s*)${W[H.LONETILDE]}\\s+`,!0);Ct.tildeTrimReplace="$1~";oe("TILDE",`^${W[H.LONETILDE]}${W[H.XRANGEPLAIN]}$`);oe("TILDELOOSE",`^${W[H.LONETILDE]}${W[H.XRANGEPLAINLOOSE]}$`);oe("LONECARET","(?:\\^)");oe("CARETTRIM",`(\\s*)${W[H.LONECARET]}\\s+`,!0);Ct.caretTrimReplace="$1^";oe("CARET",`^${W[H.LONECARET]}${W[H.XRANGEPLAIN]}$`);oe("CARETLOOSE",`^${W[H.LONECARET]}${W[H.XRANGEPLAINLOOSE]}$`);oe("COMPARATORLOOSE",`^${W[H.GTLT]}\\s*(${W[H.LOOSEPLAIN]})$|^$`);oe("COMPARATOR",`^${W[H.GTLT]}\\s*(${W[H.FULLPLAIN]})$|^$`);oe("COMPARATORTRIM",`(\\s*)${W[H.GTLT]}\\s*(${W[H.LOOSEPLAIN]}|${W[H.XRANGEPLAIN]})`,!0);Ct.comparatorTrimReplace="$1$2$3";oe("HYPHENRANGE",`^\\s*(${W[H.XRANGEPLAIN]})\\s+-\\s+(${W[H.XRANGEPLAIN]})\\s*$`);oe("HYPHENRANGELOOSE",`^\\s*(${W[H.XRANGEPLAINLOOSE]})\\s+-\\s+(${W[H.XRANGEPLAINLOOSE]})\\s*$`);oe("STAR","(<|>)?=?\\s*\\*");oe("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");oe("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var $n=B((Sw,tu)=>{"use strict";var ym=Object.freeze({loose:!0}),bm=Object.freeze({}),vm=r=>r?typeof r!="object"?ym:r:bm;tu.exports=vm});var Xo=B((Iw,iu)=>{"use strict";var ru=/^[0-9]+$/,nu=(r,e)=>{let t=ru.test(r),n=ru.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},wm=(r,e)=>nu(e,r);iu.exports={compareIdentifiers:nu,rcompareIdentifiers:wm}});var Ve=B((Lw,su)=>{"use strict";var ei=on(),{MAX_LENGTH:ou,MAX_SAFE_INTEGER:ti}=nn(),{safeRe:ri,t:ni}=Sr(),Em=$n(),{compareIdentifiers:Ir}=Xo(),zo=class r{constructor(e,t){if(t=Em(t),e instanceof r){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>ou)throw new TypeError(`version is longer than ${ou} characters`);ei("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?ri[ni.LOOSE]:ri[ni.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>ti||this.major<0)throw new TypeError("Invalid major version");if(this.minor>ti||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>ti||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let o=+i;if(o>=0&&o<ti)return o}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(ei("SemVer.compare",this.version,this.options,e),!(e instanceof r)){if(typeof e=="string"&&e===this.version)return 0;e=new r(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),Ir(this.major,e.major)||Ir(this.minor,e.minor)||Ir(this.patch,e.patch)}comparePre(e){if(e instanceof r||(e=new r(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],i=e.prerelease[t];if(ei("prerelease compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Ir(n,i)}while(++t)}compareBuild(e){e instanceof r||(e=new r(e,this.options));let t=0;do{let n=this.build[t],i=e.build[t];if(ei("build compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Ir(n,i)}while(++t)}inc(e,t,n){if(e.startsWith("pre")){if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let i=`-${t}`.match(this.options.loose?ri[ni.PRERELEASELOOSE]:ri[ni.PRERELEASE]);if(!i||i[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let o=[t,i];n===!1&&(o=[t]),Ir(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};su.exports=zo});var fr=B((Cw,cu)=>{"use strict";var au=Ve(),Dm=(r,e,t=!1)=>{if(r instanceof au)return r;try{return new au(r,e)}catch(n){if(!t)return null;throw n}};cu.exports=Dm});var lu=B((kw,uu)=>{"use strict";var Rm=fr(),Pm=(r,e)=>{let t=Rm(r,e);return t?t.version:null};uu.exports=Pm});var fu=B((Bw,du)=>{"use strict";var Sm=fr(),Im=(r,e)=>{let t=Sm(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};du.exports=Im});var pu=B((Mw,gu)=>{"use strict";var hu=Ve(),Lm=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new hu(r instanceof hu?r.version:r,t).inc(e,n,i).version}catch{return null}};gu.exports=Lm});var yu=B((Tw,Au)=>{"use strict";var mu=fr(),Cm=(r,e)=>{let t=mu(r,null,!0),n=mu(e,null,!0),i=t.compare(n);if(i===0)return null;let o=i>0,s=o?t:n,c=o?n:t,d=!!s.prerelease.length;if(!!c.prerelease.length&&!d){if(!c.patch&&!c.minor)return"major";if(c.compareMain(s)===0)return c.minor&&!c.patch?"minor":"patch"}let g=d?"pre":"";return t.major!==n.major?g+"major":t.minor!==n.minor?g+"minor":t.patch!==n.patch?g+"patch":"prerelease"};Au.exports=Cm});var vu=B((xw,bu)=>{"use strict";var km=Ve(),Bm=(r,e)=>new km(r,e).major;bu.exports=Bm});var Eu=B((Ow,wu)=>{"use strict";var Mm=Ve(),Tm=(r,e)=>new Mm(r,e).minor;wu.exports=Tm});var Ru=B((Fw,Du)=>{"use strict";var xm=Ve(),Om=(r,e)=>new xm(r,e).patch;Du.exports=Om});var Su=B((Nw,Pu)=>{"use strict";var Fm=fr(),Nm=(r,e)=>{let t=Fm(r,e);return t&&t.prerelease.length?t.prerelease:null};Pu.exports=Nm});var mt=B((qw,Lu)=>{"use strict";var Iu=Ve(),qm=(r,e,t)=>new Iu(r,t).compare(new Iu(e,t));Lu.exports=qm});var ku=B((Uw,Cu)=>{"use strict";var Um=mt(),jm=(r,e,t)=>Um(e,r,t);Cu.exports=jm});var Mu=B((jw,Bu)=>{"use strict";var Qm=mt(),_m=(r,e)=>Qm(r,e,!0);Bu.exports=_m});var ii=B((Qw,xu)=>{"use strict";var Tu=Ve(),Gm=(r,e,t)=>{let n=new Tu(r,t),i=new Tu(e,t);return n.compare(i)||n.compareBuild(i)};xu.exports=Gm});var Fu=B((_w,Ou)=>{"use strict";var Km=ii(),Ym=(r,e)=>r.sort((t,n)=>Km(t,n,e));Ou.exports=Ym});var qu=B((Gw,Nu)=>{"use strict";var Vm=ii(),Wm=(r,e)=>r.sort((t,n)=>Vm(n,t,e));Nu.exports=Wm});var sn=B((Kw,Uu)=>{"use strict";var Hm=mt(),Jm=(r,e,t)=>Hm(r,e,t)>0;Uu.exports=Jm});var oi=B((Yw,ju)=>{"use strict";var Zm=mt(),Xm=(r,e,t)=>Zm(r,e,t)<0;ju.exports=Xm});var $o=B((Vw,Qu)=>{"use strict";var zm=mt(),$m=(r,e,t)=>zm(r,e,t)===0;Qu.exports=$m});var es=B((Ww,_u)=>{"use strict";var eA=mt(),tA=(r,e,t)=>eA(r,e,t)!==0;_u.exports=tA});var si=B((Hw,Gu)=>{"use strict";var rA=mt(),nA=(r,e,t)=>rA(r,e,t)>=0;Gu.exports=nA});var ai=B((Jw,Ku)=>{"use strict";var iA=mt(),oA=(r,e,t)=>iA(r,e,t)<=0;Ku.exports=oA});var ts=B((Zw,Yu)=>{"use strict";var sA=$o(),aA=es(),cA=sn(),uA=si(),lA=oi(),dA=ai(),fA=(r,e,t,n)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return sA(r,t,n);case"!=":return aA(r,t,n);case">":return cA(r,t,n);case">=":return uA(r,t,n);case"<":return lA(r,t,n);case"<=":return dA(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Yu.exports=fA});var Wu=B((Xw,Vu)=>{"use strict";var hA=Ve(),gA=fr(),{safeRe:ci,t:ui}=Sr(),pA=(r,e)=>{if(r instanceof hA)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(e.includePrerelease?ci[ui.COERCEFULL]:ci[ui.COERCE]);else{let d=e.includePrerelease?ci[ui.COERCERTLFULL]:ci[ui.COERCERTL],l;for(;(l=d.exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||l.index+l[0].length!==t.index+t[0].length)&&(t=l),d.lastIndex=l.index+l[1].length+l[2].length;d.lastIndex=-1}if(t===null)return null;let n=t[2],i=t[3]||"0",o=t[4]||"0",s=e.includePrerelease&&t[5]?`-${t[5]}`:"",c=e.includePrerelease&&t[6]?`+${t[6]}`:"";return gA(`${n}.${i}.${o}${s}${c}`,e)};Vu.exports=pA});var Ju=B((zw,Hu)=>{"use strict";var rs=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};Hu.exports=rs});var At=B(($w,$u)=>{"use strict";var mA=/\s+/g,ns=class r{constructor(e,t){if(t=yA(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof is)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(mA," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!Xu(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&PA(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&DA)|(this.options.loose&&RA))+":"+e,i=Zu.get(n);if(i)return i;let o=this.options.loose,s=o?rt[Xe.HYPHENRANGELOOSE]:rt[Xe.HYPHENRANGE];e=e.replace(s,OA(this.options.includePrerelease)),Le("hyphen replace",e),e=e.replace(rt[Xe.COMPARATORTRIM],vA),Le("comparator trim",e),e=e.replace(rt[Xe.TILDETRIM],wA),Le("tilde trim",e),e=e.replace(rt[Xe.CARETTRIM],EA),Le("caret trim",e);let c=e.split(" ").map(b=>SA(b,this.options)).join(" ").split(/\s+/).map(b=>xA(b,this.options));o&&(c=c.filter(b=>(Le("loose invalid filter",b,this.options),!!b.match(rt[Xe.COMPARATORLOOSE])))),Le("range list",c);let d=new Map,l=c.map(b=>new is(b,this.options));for(let b of l){if(Xu(b))return[b];d.set(b.value,b)}d.size>1&&d.has("")&&d.delete("");let g=[...d.values()];return Zu.set(n,g),g}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>zu(n,t)&&e.set.some(i=>zu(i,t)&&n.every(o=>i.every(s=>o.intersects(s,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new bA(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(FA(this.set[t],e,this.options))return!0;return!1}};$u.exports=ns;var AA=Ju(),Zu=new AA,yA=$n(),is=an(),Le=on(),bA=Ve(),{safeRe:rt,t:Xe,comparatorTrimReplace:vA,tildeTrimReplace:wA,caretTrimReplace:EA}=Sr(),{FLAG_INCLUDE_PRERELEASE:DA,FLAG_LOOSE:RA}=nn(),Xu=r=>r.value==="<0.0.0-0",PA=r=>r.value==="",zu=(r,e)=>{let t=!0,n=r.slice(),i=n.pop();for(;t&&n.length;)t=n.every(o=>i.intersects(o,e)),i=n.pop();return t},SA=(r,e)=>(Le("comp",r,e),r=CA(r,e),Le("caret",r),r=IA(r,e),Le("tildes",r),r=BA(r,e),Le("xrange",r),r=TA(r,e),Le("stars",r),r),ze=r=>!r||r.toLowerCase()==="x"||r==="*",IA=(r,e)=>r.trim().split(/\s+/).map(t=>LA(t,e)).join(" "),LA=(r,e)=>{let t=e.loose?rt[Xe.TILDELOOSE]:rt[Xe.TILDE];return r.replace(t,(n,i,o,s,c)=>{Le("tilde",r,n,i,o,s,c);let d;return ze(i)?d="":ze(o)?d=`>=${i}.0.0 <${+i+1}.0.0-0`:ze(s)?d=`>=${i}.${o}.0 <${i}.${+o+1}.0-0`:c?(Le("replaceTilde pr",c),d=`>=${i}.${o}.${s}-${c} <${i}.${+o+1}.0-0`):d=`>=${i}.${o}.${s} <${i}.${+o+1}.0-0`,Le("tilde return",d),d})},CA=(r,e)=>r.trim().split(/\s+/).map(t=>kA(t,e)).join(" "),kA=(r,e)=>{Le("caret",r,e);let t=e.loose?rt[Xe.CARETLOOSE]:rt[Xe.CARET],n=e.includePrerelease?"-0":"";return r.replace(t,(i,o,s,c,d)=>{Le("caret",r,i,o,s,c,d);let l;return ze(o)?l="":ze(s)?l=`>=${o}.0.0${n} <${+o+1}.0.0-0`:ze(c)?o==="0"?l=`>=${o}.${s}.0${n} <${o}.${+s+1}.0-0`:l=`>=${o}.${s}.0${n} <${+o+1}.0.0-0`:d?(Le("replaceCaret pr",d),o==="0"?s==="0"?l=`>=${o}.${s}.${c}-${d} <${o}.${s}.${+c+1}-0`:l=`>=${o}.${s}.${c}-${d} <${o}.${+s+1}.0-0`:l=`>=${o}.${s}.${c}-${d} <${+o+1}.0.0-0`):(Le("no pr"),o==="0"?s==="0"?l=`>=${o}.${s}.${c}${n} <${o}.${s}.${+c+1}-0`:l=`>=${o}.${s}.${c}${n} <${o}.${+s+1}.0-0`:l=`>=${o}.${s}.${c} <${+o+1}.0.0-0`),Le("caret return",l),l})},BA=(r,e)=>(Le("replaceXRanges",r,e),r.split(/\s+/).map(t=>MA(t,e)).join(" ")),MA=(r,e)=>{r=r.trim();let t=e.loose?rt[Xe.XRANGELOOSE]:rt[Xe.XRANGE];return r.replace(t,(n,i,o,s,c,d)=>{Le("xRange",r,n,i,o,s,c,d);let l=ze(o),g=l||ze(s),b=g||ze(c),P=b;return i==="="&&P&&(i=""),d=e.includePrerelease?"-0":"",l?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&P?(g&&(s=0),c=0,i===">"?(i=">=",g?(o=+o+1,s=0,c=0):(s=+s+1,c=0)):i==="<="&&(i="<",g?o=+o+1:s=+s+1),i==="<"&&(d="-0"),n=`${i+o}.${s}.${c}${d}`):g?n=`>=${o}.0.0${d} <${+o+1}.0.0-0`:b&&(n=`>=${o}.${s}.0${d} <${o}.${+s+1}.0-0`),Le("xRange return",n),n})},TA=(r,e)=>(Le("replaceStars",r,e),r.trim().replace(rt[Xe.STAR],"")),xA=(r,e)=>(Le("replaceGTE0",r,e),r.trim().replace(rt[e.includePrerelease?Xe.GTE0PRE:Xe.GTE0],"")),OA=r=>(e,t,n,i,o,s,c,d,l,g,b,P)=>(ze(n)?t="":ze(i)?t=`>=${n}.0.0${r?"-0":""}`:ze(o)?t=`>=${n}.${i}.0${r?"-0":""}`:s?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,ze(l)?d="":ze(g)?d=`<${+l+1}.0.0-0`:ze(b)?d=`<${l}.${+g+1}.0-0`:P?d=`<=${l}.${g}.${b}-${P}`:r?d=`<${l}.${g}.${+b+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),FA=(r,e,t)=>{for(let n=0;n<r.length;n++)if(!r[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<r.length;n++)if(Le(r[n].semver),r[n].semver!==is.ANY&&r[n].semver.prerelease.length>0){let i=r[n].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var an=B((eE,ol)=>{"use strict";var cn=Symbol("SemVer ANY"),as=class r{static get ANY(){return cn}constructor(e,t){if(t=el(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),ss("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===cn?this.value="":this.value=this.operator+this.semver.version,ss("comp",this)}parse(e){let t=this.options.loose?tl[rl.COMPARATORLOOSE]:tl[rl.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new nl(n[2],this.options.loose):this.semver=cn}toString(){return this.value}test(e){if(ss("Comparator.test",e,this.options.loose),this.semver===cn||e===cn)return!0;if(typeof e=="string")try{e=new nl(e,this.options)}catch{return!1}return os(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new il(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new il(this.value,t).test(e.semver):(t=el(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||os(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||os(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};ol.exports=as;var el=$n(),{safeRe:tl,t:rl}=Sr(),os=ts(),ss=on(),nl=Ve(),il=At()});var un=B((tE,sl)=>{"use strict";var NA=At(),qA=(r,e,t)=>{try{e=new NA(e,t)}catch{return!1}return e.test(r)};sl.exports=qA});var cl=B((rE,al)=>{"use strict";var UA=At(),jA=(r,e)=>new UA(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));al.exports=jA});var ll=B((nE,ul)=>{"use strict";var QA=Ve(),_A=At(),GA=(r,e,t)=>{let n=null,i=null,o=null;try{o=new _A(e,t)}catch{return null}return r.forEach(s=>{o.test(s)&&(!n||i.compare(s)===-1)&&(n=s,i=new QA(n,t))}),n};ul.exports=GA});var fl=B((iE,dl)=>{"use strict";var KA=Ve(),YA=At(),VA=(r,e,t)=>{let n=null,i=null,o=null;try{o=new YA(e,t)}catch{return null}return r.forEach(s=>{o.test(s)&&(!n||i.compare(s)===1)&&(n=s,i=new KA(n,t))}),n};dl.exports=VA});var pl=B((oE,gl)=>{"use strict";var cs=Ve(),WA=At(),hl=sn(),HA=(r,e)=>{r=new WA(r,e);let t=new cs("0.0.0");if(r.test(t)||(t=new cs("0.0.0-0"),r.test(t)))return t;t=null;for(let n=0;n<r.set.length;++n){let i=r.set[n],o=null;i.forEach(s=>{let c=new cs(s.semver.version);switch(s.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!o||hl(c,o))&&(o=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),o&&(!t||hl(t,o))&&(t=o)}return t&&r.test(t)?t:null};gl.exports=HA});var Al=B((sE,ml)=>{"use strict";var JA=At(),ZA=(r,e)=>{try{return new JA(r,e).range||"*"}catch{return null}};ml.exports=ZA});var li=B((aE,wl)=>{"use strict";var XA=Ve(),vl=an(),{ANY:zA}=vl,$A=At(),ey=un(),yl=sn(),bl=oi(),ty=ai(),ry=si(),ny=(r,e,t,n)=>{r=new XA(r,n),e=new $A(e,n);let i,o,s,c,d;switch(t){case">":i=yl,o=ty,s=bl,c=">",d=">=";break;case"<":i=bl,o=ry,s=yl,c="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ey(r,e,n))return!1;for(let l=0;l<e.set.length;++l){let g=e.set[l],b=null,P=null;if(g.forEach(v=>{v.semver===zA&&(v=new vl(">=0.0.0")),b=b||v,P=P||v,i(v.semver,b.semver,n)?b=v:s(v.semver,P.semver,n)&&(P=v)}),b.operator===c||b.operator===d||(!P.operator||P.operator===c)&&o(r,P.semver))return!1;if(P.operator===d&&s(r,P.semver))return!1}return!0};wl.exports=ny});var Dl=B((cE,El)=>{"use strict";var iy=li(),oy=(r,e,t)=>iy(r,e,">",t);El.exports=oy});var Pl=B((uE,Rl)=>{"use strict";var sy=li(),ay=(r,e,t)=>sy(r,e,"<",t);Rl.exports=ay});var Ll=B((lE,Il)=>{"use strict";var Sl=At(),cy=(r,e,t)=>(r=new Sl(r,t),e=new Sl(e,t),r.intersects(e,t));Il.exports=cy});var kl=B((dE,Cl)=>{"use strict";var uy=un(),ly=mt();Cl.exports=(r,e,t)=>{let n=[],i=null,o=null,s=r.sort((g,b)=>ly(g,b,t));for(let g of s)uy(g,e,t)?(o=g,i||(i=g)):(o&&n.push([i,o]),o=null,i=null);i&&n.push([i,null]);let c=[];for(let[g,b]of n)g===b?c.push(g):!b&&g===s[0]?c.push("*"):b?g===s[0]?c.push(`<=${b}`):c.push(`${g} - ${b}`):c.push(`>=${g}`);let d=c.join(" || "),l=typeof e.raw=="string"?e.raw:String(e);return d.length<l.length?d:e}});var Fl=B((fE,Ol)=>{"use strict";var Bl=At(),ls=an(),{ANY:us}=ls,ln=un(),ds=mt(),dy=(r,e,t={})=>{if(r===e)return!0;r=new Bl(r,t),e=new Bl(e,t);let n=!1;e:for(let i of r.set){for(let o of e.set){let s=hy(i,o,t);if(n=n||s!==null,s)continue e}if(n)return!1}return!0},fy=[new ls(">=0.0.0-0")],Ml=[new ls(">=0.0.0")],hy=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===us){if(e.length===1&&e[0].semver===us)return!0;t.includePrerelease?r=fy:r=Ml}if(e.length===1&&e[0].semver===us){if(t.includePrerelease)return!0;e=Ml}let n=new Set,i,o;for(let v of r)v.operator===">"||v.operator===">="?i=Tl(i,v,t):v.operator==="<"||v.operator==="<="?o=xl(o,v,t):n.add(v.semver);if(n.size>1)return null;let s;if(i&&o){if(s=ds(i.semver,o.semver,t),s>0)return null;if(s===0&&(i.operator!==">="||o.operator!=="<="))return null}for(let v of n){if(i&&!ln(v,String(i),t)||o&&!ln(v,String(o),t))return null;for(let j of e)if(!ln(v,String(j),t))return!1;return!0}let c,d,l,g,b=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1,P=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;b&&b.prerelease.length===1&&o.operator==="<"&&b.prerelease[0]===0&&(b=!1);for(let v of e){if(g=g||v.operator===">"||v.operator===">=",l=l||v.operator==="<"||v.operator==="<=",i){if(P&&v.semver.prerelease&&v.semver.prerelease.length&&v.semver.major===P.major&&v.semver.minor===P.minor&&v.semver.patch===P.patch&&(P=!1),v.operator===">"||v.operator===">="){if(c=Tl(i,v,t),c===v&&c!==i)return!1}else if(i.operator===">="&&!ln(i.semver,String(v),t))return!1}if(o){if(b&&v.semver.prerelease&&v.semver.prerelease.length&&v.semver.major===b.major&&v.semver.minor===b.minor&&v.semver.patch===b.patch&&(b=!1),v.operator==="<"||v.operator==="<="){if(d=xl(o,v,t),d===v&&d!==o)return!1}else if(o.operator==="<="&&!ln(o.semver,String(v),t))return!1}if(!v.operator&&(o||i)&&s!==0)return!1}return!(i&&l&&!o&&s!==0||o&&g&&!i&&s!==0||P||b)},Tl=(r,e,t)=>{if(!r)return e;let n=ds(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},xl=(r,e,t)=>{if(!r)return e;let n=ds(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};Ol.exports=dy});var jl=B((hE,Ul)=>{"use strict";var fs=Sr(),Nl=nn(),gy=Ve(),ql=Xo(),py=fr(),my=lu(),Ay=fu(),yy=pu(),by=yu(),vy=vu(),wy=Eu(),Ey=Ru(),Dy=Su(),Ry=mt(),Py=ku(),Sy=Mu(),Iy=ii(),Ly=Fu(),Cy=qu(),ky=sn(),By=oi(),My=$o(),Ty=es(),xy=si(),Oy=ai(),Fy=ts(),Ny=Wu(),qy=an(),Uy=At(),jy=un(),Qy=cl(),_y=ll(),Gy=fl(),Ky=pl(),Yy=Al(),Vy=li(),Wy=Dl(),Hy=Pl(),Jy=Ll(),Zy=kl(),Xy=Fl();Ul.exports={parse:py,valid:my,clean:Ay,inc:yy,diff:by,major:vy,minor:wy,patch:Ey,prerelease:Dy,compare:Ry,rcompare:Py,compareLoose:Sy,compareBuild:Iy,sort:Ly,rsort:Cy,gt:ky,lt:By,eq:My,neq:Ty,gte:xy,lte:Oy,cmp:Fy,coerce:Ny,Comparator:qy,Range:Uy,satisfies:jy,toComparators:Qy,maxSatisfying:_y,minSatisfying:Gy,minVersion:Ky,validRange:Yy,outside:Vy,gtr:Wy,ltr:Hy,intersects:Jy,simplifyRange:Zy,subset:Xy,SemVer:gy,re:fs.re,src:fs.src,tokens:fs.t,SEMVER_SPEC_VERSION:Nl.SEMVER_SPEC_VERSION,RELEASE_TYPES:Nl.RELEASE_TYPES,compareIdentifiers:ql.compareIdentifiers,rcompareIdentifiers:ql.rcompareIdentifiers}});var Jl=B((yE,Hl)=>{"use strict";var Wl=tt("child_process"),Kl=Wl.spawn,$y=Wl.exec;Hl.exports=function(r,e,t){if(typeof e=="function"&&t===void 0&&(t=e,e=void 0),r=parseInt(r),Number.isNaN(r)){if(t)return t(new Error("pid must be a number"));throw new Error("pid must be a number")}var n={},i={};switch(n[r]=[],i[r]=1,process.platform){case"win32":$y("taskkill /pid "+r+" /T /F",t);break;case"darwin":hs(r,n,i,function(o){return Kl("pgrep",["-P",o])},function(){Yl(n,e,t)});break;default:hs(r,n,i,function(o){return Kl("ps",["-o","pid","--no-headers","--ppid",o])},function(){Yl(n,e,t)});break}};function Yl(r,e,t){var n={};try{Object.keys(r).forEach(function(i){r[i].forEach(function(o){n[o]||(Vl(o,e),n[o]=1)}),n[i]||(Vl(i,e),n[i]=1)})}catch(i){if(t)return t(i);throw i}if(t)return t()}function Vl(r,e){try{process.kill(parseInt(r,10),e)}catch(t){if(t.code!=="ESRCH")throw t}}function hs(r,e,t,n,i){var o=n(r),s="";o.stdout.on("data",function(l){var l=l.toString("ascii");s+=l});var c=function(d){if(delete t[r],d!=0){Object.keys(t).length==0&&i();return}s.match(/\d+/g).forEach(function(l){l=parseInt(l,10),e[r].push(l),e[l]=[],t[l]=1,hs(l,e,t,n,i)})};o.on("close",c)}});var De=B((t0,Pi)=>{"use strict";var Rs=(function(){var r=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function i(s,c){if(!n[s]){n[s]={};for(var d=0;d<s.length;d++)n[s][s.charAt(d)]=d}return n[s][c]}var o={compressToBase64:function(s){if(s==null)return"";var c=o._compress(s,6,function(d){return e.charAt(d)});switch(c.length%4){default:case 0:return c;case 1:return c+"===";case 2:return c+"==";case 3:return c+"="}},decompressFromBase64:function(s){return s==null?"":s==""?null:o._decompress(s.length,32,function(c){return i(e,s.charAt(c))})},compressToUTF16:function(s){return s==null?"":o._compress(s,15,function(c){return r(c+32)})+" "},decompressFromUTF16:function(s){return s==null?"":s==""?null:o._decompress(s.length,16384,function(c){return s.charCodeAt(c)-32})},compressToUint8Array:function(s){for(var c=o.compress(s),d=new Uint8Array(c.length*2),l=0,g=c.length;l<g;l++){var b=c.charCodeAt(l);d[l*2]=b>>>8,d[l*2+1]=b%256}return d},decompressFromUint8Array:function(s){if(s==null)return o.decompress(s);for(var c=new Array(s.length/2),d=0,l=c.length;d<l;d++)c[d]=s[d*2]*256+s[d*2+1];var g=[];return c.forEach(function(b){g.push(r(b))}),o.decompress(g.join(""))},compressToEncodedURIComponent:function(s){return s==null?"":o._compress(s,6,function(c){return t.charAt(c)})},decompressFromEncodedURIComponent:function(s){return s==null?"":s==""?null:(s=s.replace(/ /g,"+"),o._decompress(s.length,32,function(c){return i(t,s.charAt(c))}))},compress:function(s){return o._compress(s,16,function(c){return r(c)})},_compress:function(s,c,d){if(s==null)return"";var l,g,b={},P={},v="",j="",x="",ee=2,ce=3,Y=2,K=[],O=0,T=0,ae;for(ae=0;ae<s.length;ae+=1)if(v=s.charAt(ae),Object.prototype.hasOwnProperty.call(b,v)||(b[v]=ce++,P[v]=!0),j=x+v,Object.prototype.hasOwnProperty.call(b,j))x=j;else{if(Object.prototype.hasOwnProperty.call(P,x)){if(x.charCodeAt(0)<256){for(l=0;l<Y;l++)O=O<<1,T==c-1?(T=0,K.push(d(O)),O=0):T++;for(g=x.charCodeAt(0),l=0;l<8;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1}else{for(g=1,l=0;l<Y;l++)O=O<<1|g,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=0;for(g=x.charCodeAt(0),l=0;l<16;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1}ee--,ee==0&&(ee=Math.pow(2,Y),Y++),delete P[x]}else for(g=b[x],l=0;l<Y;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1;ee--,ee==0&&(ee=Math.pow(2,Y),Y++),b[j]=ce++,x=String(v)}if(x!==""){if(Object.prototype.hasOwnProperty.call(P,x)){if(x.charCodeAt(0)<256){for(l=0;l<Y;l++)O=O<<1,T==c-1?(T=0,K.push(d(O)),O=0):T++;for(g=x.charCodeAt(0),l=0;l<8;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1}else{for(g=1,l=0;l<Y;l++)O=O<<1|g,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=0;for(g=x.charCodeAt(0),l=0;l<16;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1}ee--,ee==0&&(ee=Math.pow(2,Y),Y++),delete P[x]}else for(g=b[x],l=0;l<Y;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1;ee--,ee==0&&(ee=Math.pow(2,Y),Y++)}for(g=2,l=0;l<Y;l++)O=O<<1|g&1,T==c-1?(T=0,K.push(d(O)),O=0):T++,g=g>>1;for(;;)if(O=O<<1,T==c-1){K.push(d(O));break}else T++;return K.join("")},decompress:function(s){return s==null?"":s==""?null:o._decompress(s.length,32768,function(c){return s.charCodeAt(c)})},_decompress:function(s,c,d){var l=[],g,b=4,P=4,v=3,j="",x=[],ee,ce,Y,K,O,T,ae,_={val:d(0),position:c,index:1};for(ee=0;ee<3;ee+=1)l[ee]=ee;for(Y=0,O=Math.pow(2,2),T=1;T!=O;)K=_.val&_.position,_.position>>=1,_.position==0&&(_.position=c,_.val=d(_.index++)),Y|=(K>0?1:0)*T,T<<=1;switch(g=Y){case 0:for(Y=0,O=Math.pow(2,8),T=1;T!=O;)K=_.val&_.position,_.position>>=1,_.position==0&&(_.position=c,_.val=d(_.index++)),Y|=(K>0?1:0)*T,T<<=1;ae=r(Y);break;case 1:for(Y=0,O=Math.pow(2,16),T=1;T!=O;)K=_.val&_.position,_.position>>=1,_.position==0&&(_.position=c,_.val=d(_.index++)),Y|=(K>0?1:0)*T,T<<=1;ae=r(Y);break;case 2:return""}for(l[3]=ae,ce=ae,x.push(ae);;){if(_.index>s)return"";for(Y=0,O=Math.pow(2,v),T=1;T!=O;)K=_.val&_.position,_.position>>=1,_.position==0&&(_.position=c,_.val=d(_.index++)),Y|=(K>0?1:0)*T,T<<=1;switch(ae=Y){case 0:for(Y=0,O=Math.pow(2,8),T=1;T!=O;)K=_.val&_.position,_.position>>=1,_.position==0&&(_.position=c,_.val=d(_.index++)),Y|=(K>0?1:0)*T,T<<=1;l[P++]=r(Y),ae=P-1,b--;break;case 1:for(Y=0,O=Math.pow(2,16),T=1;T!=O;)K=_.val&_.position,_.position>>=1,_.position==0&&(_.position=c,_.val=d(_.index++)),Y|=(K>0?1:0)*T,T<<=1;l[P++]=r(Y),ae=P-1,b--;break;case 2:return x.join("")}if(b==0&&(b=Math.pow(2,v),v++),l[ae])j=l[ae];else if(ae===P)j=ce+ce.charAt(0);else return null;x.push(j),l[P++]=ce+j.charAt(0),b--,ce=j,b==0&&(b=Math.pow(2,v),v++)}}};return o})();typeof define=="function"&&define.amd?define(function(){return Rs}):typeof Pi<"u"&&Pi!=null?Pi.exports=Rs:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return Rs})});var Od=B((l0,xd)=>{"use strict";var{hasOwnProperty:Xs}=Object.prototype,zs=(r,e={})=>{typeof e=="string"&&(e={section:e}),e.align=e.align===!0,e.newline=e.newline===!0,e.sort=e.sort===!0,e.whitespace=e.whitespace===!0||e.align===!0,e.platform=e.platform||typeof process<"u"&&process.platform,e.bracketedArray=e.bracketedArray!==!1;let t=e.platform==="win32"?`\r
|
|
18
|
+
`:`
|
|
19
|
+
`,n=e.whitespace?" = ":"=",i=[],o=e.sort?Object.keys(r).sort():Object.keys(r),s=0;e.align&&(s=Qt(o.filter(l=>r[l]===null||Array.isArray(r[l])||typeof r[l]!="object").map(l=>Array.isArray(r[l])?`${l}[]`:l).concat([""]).reduce((l,g)=>Qt(l).length>=Qt(g).length?l:g)).length);let c="",d=e.bracketedArray?"[]":"";for(let l of o){let g=r[l];if(g&&Array.isArray(g))for(let b of g)c+=Qt(`${l}${d}`).padEnd(s," ")+n+Qt(b)+t;else g&&typeof g=="object"?i.push(l):c+=Qt(l).padEnd(s," ")+n+Qt(g)+t}e.section&&c.length&&(c="["+Qt(e.section)+"]"+(e.newline?t+t:t)+c);for(let l of i){let g=Md(l,".").join("\\."),b=(e.section?e.section+".":"")+g,P=zs(r[l],{...e,section:b});c.length&&P.length&&(c+=t),c+=P}return c};function Md(r,e){var t=0,n=0,i=0,o=[];do if(i=r.indexOf(e,t),i!==-1){if(t=i+e.length,i>0&&r[i-1]==="\\")continue;o.push(r.slice(n,i)),n=i+e.length}while(i!==-1);return o.push(r.slice(n)),o}var Bd=(r,e={})=>{e.bracketedArray=e.bracketedArray!==!1;let t=Object.create(null),n=t,i=null,o=/^\[([^\]]*)\]\s*$|^([^=]+)(=(.*))?$/i,s=r.split(/[\r\n]+/g),c={};for(let l of s){if(!l||l.match(/^\s*[;#]/)||l.match(/^\s*$/))continue;let g=l.match(o);if(!g)continue;if(g[1]!==void 0){if(i=Ii(g[1]),i==="__proto__"){n=Object.create(null);continue}n=t[i]=t[i]||Object.create(null);continue}let b=Ii(g[2]),P;e.bracketedArray?P=b.length>2&&b.slice(-2)==="[]":(c[b]=(c?.[b]||0)+1,P=c[b]>1);let v=P&&b.endsWith("[]")?b.slice(0,-2):b;if(v==="__proto__")continue;let j=g[3]?Ii(g[4]):!0,x=j==="true"||j==="false"||j==="null"?JSON.parse(j):j;P&&(Xs.call(n,v)?Array.isArray(n[v])||(n[v]=[n[v]]):n[v]=[]),Array.isArray(n[v])?n[v].push(x):n[v]=x}let d=[];for(let l of Object.keys(t)){if(!Xs.call(t,l)||typeof t[l]!="object"||Array.isArray(t[l]))continue;let g=Md(l,".");n=t;let b=g.pop(),P=b.replace(/\\\./g,".");for(let v of g)v!=="__proto__"&&((!Xs.call(n,v)||typeof n[v]!="object")&&(n[v]=Object.create(null)),n=n[v]);n===t&&P===b||(n[P]=t[l],d.push(l))}for(let l of d)delete t[l];return t},Td=r=>r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"),Qt=r=>typeof r!="string"||r.match(/[=\r\n]/)||r.match(/^\[/)||r.length>1&&Td(r)||r!==r.trim()?JSON.stringify(r):r.split(";").join("\\;").split("#").join("\\#"),Ii=r=>{if(r=(r||"").trim(),Td(r)){r.charAt(0)==="'"&&(r=r.slice(1,-1));try{r=JSON.parse(r)}catch{}}else{let e=!1,t="";for(let n=0,i=r.length;n<i;n++){let o=r.charAt(n);if(e)"\\;#".indexOf(o)!==-1?t+=o:t+="\\"+o,e=!1;else{if(";#".indexOf(o)!==-1)break;o==="\\"?e=!0:t+=o}}return e&&(t+="\\"),t.trim()}return r};xd.exports={parse:Bd,decode:Bd,stringify:zs,encode:zs,safe:Qt,unsafe:Ii}});var Gd=B((A0,_d)=>{"use strict";_d.exports=function(r,e){for(var t=[],n=0;n<r.length;n++){var i=e(r[n],n);qb(i)?t.push.apply(t,i):t.push(i)}return t};var qb=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"}});var Hd=B((y0,Wd)=>{"use strict";Wd.exports=Yd;function Yd(r,e,t){r instanceof RegExp&&(r=Kd(r,t)),e instanceof RegExp&&(e=Kd(e,t));var n=Vd(r,e,t);return n&&{start:n[0],end:n[1],pre:t.slice(0,n[0]),body:t.slice(n[0]+r.length,n[1]),post:t.slice(n[1]+e.length)}}function Kd(r,e){var t=e.match(r);return t?t[0]:null}Yd.range=Vd;function Vd(r,e,t){var n,i,o,s,c,d=t.indexOf(r),l=t.indexOf(e,d+1),g=d;if(d>=0&&l>0){if(r===e)return[d,l];for(n=[],o=t.length;g>=0&&!c;)g==d?(n.push(g),d=t.indexOf(r,g+1)):n.length==1?c=[n.pop(),l]:(i=n.pop(),i<o&&(o=i,s=l),l=t.indexOf(e,g+1)),g=d<l&&d>=0?d:l;n.length&&(c=[o,s])}return c}});var rf=B((b0,tf)=>{"use strict";var Ub=Gd(),Jd=Hd();tf.exports=_b;var Zd="\0SLASH"+Math.random()+"\0",Xd="\0OPEN"+Math.random()+"\0",ea="\0CLOSE"+Math.random()+"\0",zd="\0COMMA"+Math.random()+"\0",$d="\0PERIOD"+Math.random()+"\0";function $s(r){return parseInt(r,10)==r?parseInt(r,10):r.charCodeAt(0)}function jb(r){return r.split("\\\\").join(Zd).split("\\{").join(Xd).split("\\}").join(ea).split("\\,").join(zd).split("\\.").join($d)}function Qb(r){return r.split(Zd).join("\\").split(Xd).join("{").split(ea).join("}").split(zd).join(",").split($d).join(".")}function ef(r){if(!r)return[""];var e=[],t=Jd("{","}",r);if(!t)return r.split(",");var n=t.pre,i=t.body,o=t.post,s=n.split(",");s[s.length-1]+="{"+i+"}";var c=ef(o);return o.length&&(s[s.length-1]+=c.shift(),s.push.apply(s,c)),e.push.apply(e,s),e}function _b(r){return r?(r.substr(0,2)==="{}"&&(r="\\{\\}"+r.substr(2)),Mr(jb(r),!0).map(Qb)):[]}function Gb(r){return"{"+r+"}"}function Kb(r){return/^-?0\d/.test(r)}function Yb(r,e){return r<=e}function Vb(r,e){return r>=e}function Mr(r,e){var t=[],n=Jd("{","}",r);if(!n||/\$$/.test(n.pre))return[r];var i=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(n.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(n.body),s=i||o,c=n.body.indexOf(",")>=0;if(!s&&!c)return n.post.match(/,(?!,).*\}/)?(r=n.pre+"{"+n.body+ea+n.post,Mr(r)):[r];var d;if(s)d=n.body.split(/\.\./);else if(d=ef(n.body),d.length===1&&(d=Mr(d[0],!1).map(Gb),d.length===1)){var g=n.post.length?Mr(n.post,!1):[""];return g.map(function(F){return n.pre+d[0]+F})}var l=n.pre,g=n.post.length?Mr(n.post,!1):[""],b;if(s){var P=$s(d[0]),v=$s(d[1]),j=Math.max(d[0].length,d[1].length),x=d.length==3?Math.abs($s(d[2])):1,ee=Yb,ce=v<P;ce&&(x*=-1,ee=Vb);var Y=d.some(Kb);b=[];for(var K=P;ee(K,v);K+=x){var O;if(o)O=String.fromCharCode(K),O==="\\"&&(O="");else if(O=String(K),Y){var T=j-O.length;if(T>0){var ae=new Array(T+1).join("0");K<0?O="-"+ae+O.slice(1):O=ae+O}}b.push(O)}}else b=Ub(d,function(_e){return Mr(_e,!1)});for(var _=0;_<b.length;_++)for(var Pe=0;Pe<g.length;Pe++){var xe=l+b[_]+g[Pe];(!e||s||xe)&&t.push(xe)}return t}});var ov=B((v0,cf)=>{"use strict";cf.exports=ht;ht.Minimatch=Ke;var An=(function(){try{return tt("path")}catch{}})()||{sep:"/"};ht.sep=An.sep;var na=ht.GLOBSTAR=Ke.GLOBSTAR={},Wb=rf(),nf={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},ta="[^/]",ra=ta+"*?",Hb="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Jb="(?:(?!(?:\\/|^)\\.).)*?",of=Zb("().*{}+?[]^$\\!");function Zb(r){return r.split("").reduce(function(e,t){return e[t]=!0,e},{})}var sf=/\/+/;ht.filter=Xb;function Xb(r,e){return e=e||{},function(t,n,i){return ht(t,r,e)}}function $t(r,e){e=e||{};var t={};return Object.keys(r).forEach(function(n){t[n]=r[n]}),Object.keys(e).forEach(function(n){t[n]=e[n]}),t}ht.defaults=function(r){if(!r||typeof r!="object"||!Object.keys(r).length)return ht;var e=ht,t=function(i,o,s){return e(i,o,$t(r,s))};return t.Minimatch=function(i,o){return new e.Minimatch(i,$t(r,o))},t.Minimatch.defaults=function(i){return e.defaults($t(r,i)).Minimatch},t.filter=function(i,o){return e.filter(i,$t(r,o))},t.defaults=function(i){return e.defaults($t(r,i))},t.makeRe=function(i,o){return e.makeRe(i,$t(r,o))},t.braceExpand=function(i,o){return e.braceExpand(i,$t(r,o))},t.match=function(n,i,o){return e.match(n,i,$t(r,o))},t};Ke.defaults=function(r){return ht.defaults(r).Minimatch};function ht(r,e,t){return ki(e),t||(t={}),!t.nocomment&&e.charAt(0)==="#"?!1:new Ke(e,t).match(r)}function Ke(r,e){if(!(this instanceof Ke))return new Ke(r,e);ki(r),e||(e={}),r=r.trim(),!e.allowWindowsEscape&&An.sep!=="/"&&(r=r.split(An.sep).join("/")),this.options=e,this.set=[],this.pattern=r,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.make()}Ke.prototype.debug=function(){};Ke.prototype.make=zb;function zb(){var r=this.pattern,e=this.options;if(!e.nocomment&&r.charAt(0)==="#"){this.comment=!0;return}if(!r){this.empty=!0;return}this.parseNegate();var t=this.globSet=this.braceExpand();e.debug&&(this.debug=function(){console.error.apply(console,arguments)}),this.debug(this.pattern,t),t=this.globParts=t.map(function(n){return n.split(sf)}),this.debug(this.pattern,t),t=t.map(function(n,i,o){return n.map(this.parse,this)},this),this.debug(this.pattern,t),t=t.filter(function(n){return n.indexOf(!1)===-1}),this.debug(this.pattern,t),this.set=t}Ke.prototype.parseNegate=$b;function $b(){var r=this.pattern,e=!1,t=this.options,n=0;if(!t.nonegate){for(var i=0,o=r.length;i<o&&r.charAt(i)==="!";i++)e=!e,n++;n&&(this.pattern=r.substr(n)),this.negate=e}}ht.braceExpand=function(r,e){return af(r,e)};Ke.prototype.braceExpand=af;function af(r,e){return e||(this instanceof Ke?e=this.options:e={}),r=typeof r>"u"?this.pattern:r,ki(r),e.nobrace||!/\{(?:(?!\{).)*\}/.test(r)?[r]:Wb(r)}var ev=1024*64,ki=function(r){if(typeof r!="string")throw new TypeError("invalid pattern");if(r.length>ev)throw new TypeError("pattern is too long")};Ke.prototype.parse=tv;var Ci={};function tv(r,e){ki(r);var t=this.options;if(r==="**")if(t.noglobstar)r="*";else return na;if(r==="")return"";var n="",i=!!t.nocase,o=!1,s=[],c=[],d,l=!1,g=-1,b=-1,P=r.charAt(0)==="."?"":t.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",v=this;function j(){if(d){switch(d){case"*":n+=ra,i=!0;break;case"?":n+=ta,i=!0;break;default:n+="\\"+d;break}v.debug("clearStateChar %j %j",d,n),d=!1}}for(var x=0,ee=r.length,ce;x<ee&&(ce=r.charAt(x));x++){if(this.debug("%s %s %s %j",r,x,n,ce),o&&of[ce]){n+="\\"+ce,o=!1;continue}switch(ce){case"/":return!1;case"\\":j(),o=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s %s %s %j <-- stateChar",r,x,n,ce),l){this.debug(" in class"),ce==="!"&&x===b+1&&(ce="^"),n+=ce;continue}v.debug("call clearStateChar %j",d),j(),d=ce,t.noext&&j();continue;case"(":if(l){n+="(";continue}if(!d){n+="\\(";continue}s.push({type:d,start:x-1,reStart:n.length,open:nf[d].open,close:nf[d].close}),n+=d==="!"?"(?:(?!(?:":"(?:",this.debug("plType %j %j",d,n),d=!1;continue;case")":if(l||!s.length){n+="\\)";continue}j(),i=!0;var Y=s.pop();n+=Y.close,Y.type==="!"&&c.push(Y),Y.reEnd=n.length;continue;case"|":if(l||!s.length||o){n+="\\|",o=!1;continue}j(),n+="|";continue;case"[":if(j(),l){n+="\\"+ce;continue}l=!0,b=x,g=n.length,n+=ce;continue;case"]":if(x===b+1||!l){n+="\\"+ce,o=!1;continue}var K=r.substring(b+1,x);try{RegExp("["+K+"]")}catch{var O=this.parse(K,Ci);n=n.substr(0,g)+"\\["+O[0]+"\\]",i=i||O[1],l=!1;continue}i=!0,l=!1,n+=ce;continue;default:j(),o?o=!1:of[ce]&&!(ce==="^"&&l)&&(n+="\\"),n+=ce}}for(l&&(K=r.substr(b+1),O=this.parse(K,Ci),n=n.substr(0,g)+"\\["+O[0],i=i||O[1]),Y=s.pop();Y;Y=s.pop()){var T=n.slice(Y.reStart+Y.open.length);this.debug("setting tail",n,Y),T=T.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(q,te,ne){return ne||(ne="\\"),te+te+ne+"|"}),this.debug(`tail=%j
|
|
20
|
+
%s`,T,T,Y,n);var ae=Y.type==="*"?ra:Y.type==="?"?ta:"\\"+Y.type;i=!0,n=n.slice(0,Y.reStart)+ae+"\\("+T}j(),o&&(n+="\\\\");var _=!1;switch(n.charAt(0)){case"[":case".":case"(":_=!0}for(var Pe=c.length-1;Pe>-1;Pe--){var xe=c[Pe],_e=n.slice(0,xe.reStart),F=n.slice(xe.reStart,xe.reEnd-8),R=n.slice(xe.reEnd-8,xe.reEnd),Q=n.slice(xe.reEnd);R+=Q;var G=_e.split("(").length-1,S=Q;for(x=0;x<G;x++)S=S.replace(/\)[+*?]?/,"");Q=S;var k="";Q===""&&e!==Ci&&(k="$");var M=_e+F+Q+k+R;n=M}if(n!==""&&i&&(n="(?=.)"+n),_&&(n=P+n),e===Ci)return[n,i];if(!i)return nv(r);var D=t.nocase?"i":"";try{var V=new RegExp("^"+n+"$",D)}catch{return new RegExp("$.")}return V._glob=r,V._src=n,V}ht.makeRe=function(r,e){return new Ke(r,e||{}).makeRe()};Ke.prototype.makeRe=rv;function rv(){if(this.regexp||this.regexp===!1)return this.regexp;var r=this.set;if(!r.length)return this.regexp=!1,this.regexp;var e=this.options,t=e.noglobstar?ra:e.dot?Hb:Jb,n=e.nocase?"i":"",i=r.map(function(o){return o.map(function(s){return s===na?t:typeof s=="string"?iv(s):s._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch{this.regexp=!1}return this.regexp}ht.match=function(r,e,t){t=t||{};var n=new Ke(e,t);return r=r.filter(function(i){return n.match(i)}),n.options.nonull&&!r.length&&r.push(e),r};Ke.prototype.match=function(e,t){if(typeof t>"u"&&(t=this.partial),this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;var n=this.options;An.sep!=="/"&&(e=e.split(An.sep).join("/")),e=e.split(sf),this.debug(this.pattern,"split",e);var i=this.set;this.debug(this.pattern,"set",i);var o,s;for(s=e.length-1;s>=0&&(o=e[s],!o);s--);for(s=0;s<i.length;s++){var c=i[s],d=e;n.matchBase&&c.length===1&&(d=[o]);var l=this.matchOne(d,c,t);if(l)return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate};Ke.prototype.matchOne=function(r,e,t){var n=this.options;this.debug("matchOne",{this:this,file:r,pattern:e}),this.debug("matchOne",r.length,e.length);for(var i=0,o=0,s=r.length,c=e.length;i<s&&o<c;i++,o++){this.debug("matchOne loop");var d=e[o],l=r[i];if(this.debug(e,d,l),d===!1)return!1;if(d===na){this.debug("GLOBSTAR",[e,d,l]);var g=i,b=o+1;if(b===c){for(this.debug("** at the end");i<s;i++)if(r[i]==="."||r[i]===".."||!n.dot&&r[i].charAt(0)===".")return!1;return!0}for(;g<s;){var P=r[g];if(this.debug(`
|
|
21
|
+
globstar while`,r,g,e,b,P),this.matchOne(r.slice(g),e.slice(b),t))return this.debug("globstar found match!",g,s,P),!0;if(P==="."||P===".."||!n.dot&&P.charAt(0)==="."){this.debug("dot detected!",r,g,e,b);break}this.debug("globstar swallow a segment, and continue"),g++}return!!(t&&(this.debug(`
|
|
22
|
+
>>> no match, partial?`,r,g,e,b),g===s))}var v;if(typeof d=="string"?(v=l===d,this.debug("string match",d,l,v)):(v=l.match(d),this.debug("pattern match",d,l,v)),!v)return!1}if(i===s&&o===c)return!0;if(i===s)return t;if(o===c)return i===s-1&&r[i]==="";throw new Error("wtf?")};function nv(r){return r.replace(/\\(.)/g,"$1")}function iv(r){return r.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}});var Tr=B(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.stringArray=He.array=He.func=He.error=He.number=He.string=He.boolean=void 0;function sv(r){return r===!0||r===!1}He.boolean=sv;function uf(r){return typeof r=="string"||r instanceof String}He.string=uf;function av(r){return typeof r=="number"||r instanceof Number}He.number=av;function cv(r){return r instanceof Error}He.error=cv;function uv(r){return typeof r=="function"}He.func=uv;function lf(r){return Array.isArray(r)}He.array=lf;function lv(r){return lf(r)&&r.every(e=>uf(e))}He.stringArray=lv});var La=B(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.Message=z.NotificationType9=z.NotificationType8=z.NotificationType7=z.NotificationType6=z.NotificationType5=z.NotificationType4=z.NotificationType3=z.NotificationType2=z.NotificationType1=z.NotificationType0=z.NotificationType=z.RequestType9=z.RequestType8=z.RequestType7=z.RequestType6=z.RequestType5=z.RequestType4=z.RequestType3=z.RequestType2=z.RequestType1=z.RequestType=z.RequestType0=z.AbstractMessageSignature=z.ParameterStructures=z.ResponseError=z.ErrorCodes=void 0;var mr=Tr(),ia;(function(r){r.ParseError=-32700,r.InvalidRequest=-32600,r.MethodNotFound=-32601,r.InvalidParams=-32602,r.InternalError=-32603,r.jsonrpcReservedErrorRangeStart=-32099,r.serverErrorStart=-32099,r.MessageWriteError=-32099,r.MessageReadError=-32098,r.PendingResponseRejected=-32097,r.ConnectionInactive=-32096,r.ServerNotInitialized=-32002,r.UnknownErrorCode=-32001,r.jsonrpcReservedErrorRangeEnd=-32e3,r.serverErrorEnd=-32e3})(ia||(z.ErrorCodes=ia={}));var oa=class r extends Error{constructor(e,t,n){super(t),this.code=mr.number(e)?e:ia.UnknownErrorCode,this.data=n,Object.setPrototypeOf(this,r.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};z.ResponseError=oa;var ot=class r{constructor(e){this.kind=e}static is(e){return e===r.auto||e===r.byName||e===r.byPosition}toString(){return this.kind}};z.ParameterStructures=ot;ot.auto=new ot("auto");ot.byPosition=new ot("byPosition");ot.byName=new ot("byName");var ke=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return ot.auto}};z.AbstractMessageSignature=ke;var sa=class extends ke{constructor(e){super(e,0)}};z.RequestType0=sa;var aa=class extends ke{constructor(e,t=ot.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};z.RequestType=aa;var ca=class extends ke{constructor(e,t=ot.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};z.RequestType1=ca;var ua=class extends ke{constructor(e){super(e,2)}};z.RequestType2=ua;var la=class extends ke{constructor(e){super(e,3)}};z.RequestType3=la;var da=class extends ke{constructor(e){super(e,4)}};z.RequestType4=da;var fa=class extends ke{constructor(e){super(e,5)}};z.RequestType5=fa;var ha=class extends ke{constructor(e){super(e,6)}};z.RequestType6=ha;var ga=class extends ke{constructor(e){super(e,7)}};z.RequestType7=ga;var pa=class extends ke{constructor(e){super(e,8)}};z.RequestType8=pa;var ma=class extends ke{constructor(e){super(e,9)}};z.RequestType9=ma;var Aa=class extends ke{constructor(e,t=ot.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};z.NotificationType=Aa;var ya=class extends ke{constructor(e){super(e,0)}};z.NotificationType0=ya;var ba=class extends ke{constructor(e,t=ot.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};z.NotificationType1=ba;var va=class extends ke{constructor(e){super(e,2)}};z.NotificationType2=va;var wa=class extends ke{constructor(e){super(e,3)}};z.NotificationType3=wa;var Ea=class extends ke{constructor(e){super(e,4)}};z.NotificationType4=Ea;var Da=class extends ke{constructor(e){super(e,5)}};z.NotificationType5=Da;var Ra=class extends ke{constructor(e){super(e,6)}};z.NotificationType6=Ra;var Pa=class extends ke{constructor(e){super(e,7)}};z.NotificationType7=Pa;var Sa=class extends ke{constructor(e){super(e,8)}};z.NotificationType8=Sa;var Ia=class extends ke{constructor(e){super(e,9)}};z.NotificationType9=Ia;var df;(function(r){function e(i){let o=i;return o&&mr.string(o.method)&&(mr.string(o.id)||mr.number(o.id))}r.isRequest=e;function t(i){let o=i;return o&&mr.string(o.method)&&i.id===void 0}r.isNotification=t;function n(i){let o=i;return o&&(o.result!==void 0||!!o.error)&&(mr.string(o.id)||mr.number(o.id)||o.id===null)}r.isResponse=n})(df||(z.Message=df={}))});var ka=B(er=>{"use strict";var ff;Object.defineProperty(er,"__esModule",{value:!0});er.LRUCache=er.LinkedMap=er.Touch=void 0;var Je;(function(r){r.None=0,r.First=1,r.AsOld=r.First,r.Last=2,r.AsNew=r.Last})(Je||(er.Touch=Je={}));var Bi=class{constructor(){this[ff]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=Je.None){let n=this._map.get(e);if(n)return t!==Je.None&&this.touch(n,t),n.value}set(e,t,n=Je.None){let i=this._map.get(e);if(i)i.value=t,n!==Je.None&&this.touch(i,n);else{switch(i={key:e,value:t,next:void 0,previous:void 0},n){case Je.None:this.addItemLast(i);break;case Je.First:this.addItemFirst(i);break;case Je.Last:this.addItemLast(i);break;default:this.addItemLast(i);break}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let n=this._state,i=this._head;for(;i;){if(t?e.bind(t)(i.value,i.key,this):e(i.value,i.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");i=i.next}}keys(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let i={value:t.key,done:!1};return t=t.next,i}else return{value:void 0,done:!0}}};return n}values(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let i={value:t.value,done:!1};return t=t.next,i}else return{value:void 0,done:!0}}};return n}entries(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let i={value:[t.key,t.value],done:!1};return t=t.next,i}else return{value:void 0,done:!0}}};return n}[(ff=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,n=e.previous;if(!t||!n)throw new Error("Invalid list");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==Je.First&&t!==Je.Last)){if(t===Je.First){if(e===this._head)return;let n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===Je.Last){if(e===this._tail)return;let n=e.next,i=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,n)=>{e.push([n,t])}),e}fromJSON(e){this.clear();for(let[t,n]of e)this.set(t,n)}};er.LinkedMap=Bi;var Ca=class extends Bi{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=Je.AsNew){return super.get(e,t)}peek(e){return super.get(e,Je.None)}set(e,t){return super.set(e,t,Je.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};er.LRUCache=Ca});var gf=B(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.Disposable=void 0;var hf;(function(r){function e(t){return{dispose:t}}r.create=e})(hf||(Mi.Disposable=hf={}))});var tr=B(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});var Ba;function Ma(){if(Ba===void 0)throw new Error("No runtime abstraction layer installed");return Ba}(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");Ba=t}r.install=e})(Ma||(Ma={}));Ta.default=Ma});var Or=B(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.Emitter=xr.Event=void 0;var dv=tr(),pf;(function(r){let e={dispose(){}};r.None=function(){return e}})(pf||(xr.Event=pf={}));var xa=class{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let i=0,o=this._callbacks.length;i<o;i++)if(this._callbacks[i]===e)if(this._contexts[i]===t){this._callbacks.splice(i,1),this._contexts.splice(i,1);return}else n=!0;if(n)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],n=this._callbacks.slice(0),i=this._contexts.slice(0);for(let o=0,s=n.length;o<s;o++)try{t.push(n[o].apply(i[o],e))}catch(c){(0,dv.default)().console.error(c)}return t}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},Ti=class r{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,n)=>{this._callbacks||(this._callbacks=new xa),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let i={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),i.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};xr.Emitter=Ti;Ti._noop=function(){}});var Fi=B(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.CancellationTokenSource=Fr.CancellationToken=void 0;var fv=tr(),hv=Tr(),Oa=Or(),xi;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Oa.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Oa.Event.None});function e(t){let n=t;return n&&(n===r.None||n===r.Cancelled||hv.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}r.is=e})(xi||(Fr.CancellationToken=xi={}));var gv=Object.freeze(function(r,e){let t=(0,fv.default)().timer.setTimeout(r.bind(e),0);return{dispose(){t.dispose()}}}),Oi=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?gv:(this._emitter||(this._emitter=new Oa.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Fa=class{get token(){return this._token||(this._token=new Oi),this._token}cancel(){this._token?this._token.cancel():this._token=xi.Cancelled}dispose(){this._token?this._token instanceof Oi&&this._token.dispose():this._token=xi.None}};Fr.CancellationTokenSource=Fa});var mf=B(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.SharedArrayReceiverStrategy=Nr.SharedArraySenderStrategy=void 0;var pv=Fi(),yn;(function(r){r.Continue=0,r.Cancelled=1})(yn||(yn={}));var Na=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let t=new SharedArrayBuffer(4),n=new Int32Array(t,0,1);n[0]=yn.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let n=this.buffers.get(t);if(n===void 0)return;let i=new Int32Array(n,0,1);Atomics.store(i,0,yn.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};Nr.SharedArraySenderStrategy=Na;var qa=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===yn.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Ua=class{constructor(e){this.token=new qa(e)}cancel(){}dispose(){}},ja=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return t===void 0?new pv.CancellationTokenSource:new Ua(t)}};Nr.SharedArrayReceiverStrategy=ja});var _a=B(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.Semaphore=void 0;var mv=tr(),Qa=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,n)=>{this._waiting.push({thunk:e,resolve:t,reject:n}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,mv.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(n=>{this._active--,e.resolve(n),this.runNext()},n=>{this._active--,e.reject(n),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}};Ni.Semaphore=Qa});var yf=B(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.ReadableStreamMessageReader=rr.AbstractMessageReader=rr.MessageReader=void 0;var Ka=tr(),qr=Tr(),Ga=Or(),Av=_a(),Af;(function(r){function e(t){let n=t;return n&&qr.func(n.listen)&&qr.func(n.dispose)&&qr.func(n.onError)&&qr.func(n.onClose)&&qr.func(n.onPartialMessage)}r.is=e})(Af||(rr.MessageReader=Af={}));var qi=class{constructor(){this.errorEmitter=new Ga.Emitter,this.closeEmitter=new Ga.Emitter,this.partialMessageEmitter=new Ga.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${qr.string(e.message)?e.message:"unknown"}`)}};rr.AbstractMessageReader=qi;var Ya;(function(r){function e(t){let n,i,o,s=new Map,c,d=new Map;if(t===void 0||typeof t=="string")n=t??"utf-8";else{if(n=t.charset??"utf-8",t.contentDecoder!==void 0&&(o=t.contentDecoder,s.set(o.name,o)),t.contentDecoders!==void 0)for(let l of t.contentDecoders)s.set(l.name,l);if(t.contentTypeDecoder!==void 0&&(c=t.contentTypeDecoder,d.set(c.name,c)),t.contentTypeDecoders!==void 0)for(let l of t.contentTypeDecoders)d.set(l.name,l)}return c===void 0&&(c=(0,Ka.default)().applicationJson.decoder,d.set(c.name,c)),{charset:n,contentDecoder:o,contentDecoders:s,contentTypeDecoder:c,contentTypeDecoders:d}}r.fromOptions=e})(Ya||(Ya={}));var Va=class extends qi{constructor(e,t){super(),this.readable=e,this.options=Ya.fromOptions(t),this.buffer=(0,Ka.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new Av.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(n=>{this.onData(n)});return this.readable.onError(n=>this.fireError(n)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let n=this.buffer.tryReadHeaders(!0);if(!n)return;let i=n.get("content-length");if(!i){this.fireError(new Error(`Header must provide a Content-Length property.
|
|
23
|
+
${JSON.stringify(Object.fromEntries(n))}`));return}let o=parseInt(i);if(isNaN(o)){this.fireError(new Error(`Content-Length value must be a number. Got ${i}`));return}this.nextMessageLength=o}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let n=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(t):t,i=await this.options.contentTypeDecoder.decode(n,this.options);this.callback(i)}).catch(n=>{this.fireError(n)})}}catch(t){this.fireError(t)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,Ka.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};rr.ReadableStreamMessageReader=Va});var Df=B(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.WriteableStreamMessageWriter=nr.AbstractMessageWriter=nr.MessageWriter=void 0;var bf=tr(),bn=Tr(),yv=_a(),vf=Or(),bv="Content-Length: ",wf=`\r
|
|
24
|
+
`,Ef;(function(r){function e(t){let n=t;return n&&bn.func(n.dispose)&&bn.func(n.onClose)&&bn.func(n.onError)&&bn.func(n.write)}r.is=e})(Ef||(nr.MessageWriter=Ef={}));var Ui=class{constructor(){this.errorEmitter=new vf.Emitter,this.closeEmitter=new vf.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,n){this.errorEmitter.fire([this.asError(e),t,n])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${bn.string(e.message)?e.message:"unknown"}`)}};nr.AbstractMessageWriter=Ui;var Wa;(function(r){function e(t){return t===void 0||typeof t=="string"?{charset:t??"utf-8",contentTypeEncoder:(0,bf.default)().applicationJson.encoder}:{charset:t.charset??"utf-8",contentEncoder:t.contentEncoder,contentTypeEncoder:t.contentTypeEncoder??(0,bf.default)().applicationJson.encoder}}r.fromOptions=e})(Wa||(Wa={}));var Ha=class extends Ui{constructor(e,t){super(),this.writable=e,this.options=Wa.fromOptions(t),this.errorCount=0,this.writeSemaphore=new yv.Semaphore(1),this.writable.onError(n=>this.fireError(n)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(n=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(n):n).then(n=>{let i=[];return i.push(bv,n.byteLength.toString(),wf),i.push(wf),this.doWrite(e,i,n)},n=>{throw this.fireError(n),n}))}async doWrite(e,t,n){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(n)}catch(i){return this.handleError(i,e),Promise.reject(i)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}};nr.WriteableStreamMessageWriter=Ha});var Rf=B(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.AbstractMessageBuffer=void 0;var vv=13,wv=10,Ev=`\r
|
|
25
|
+
`,Ja=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let t=0,n=0,i=0,o=0;e:for(;n<this._chunks.length;){let l=this._chunks[n];for(i=0;i<l.length;){switch(l[i]){case vv:switch(t){case 0:t=1;break;case 2:t=3;break;default:t=0}break;case wv:switch(t){case 1:t=2;break;case 3:t=4,i++;break e;default:t=0}break;default:t=0}i++}o+=l.byteLength,n++}if(t!==4)return;let s=this._read(o+i),c=new Map,d=this.toString(s,"ascii").split(Ev);if(d.length<2)return c;for(let l=0;l<d.length-2;l++){let g=d[l],b=g.indexOf(":");if(b===-1)throw new Error(`Message header must separate key and value using ':'
|
|
26
|
+
${g}`);let P=g.substr(0,b),v=g.substr(b+1).trim();c.set(e?P.toLowerCase():P,v)}return c}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(e===0)return this.emptyBuffer();if(e>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let o=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(o)}if(this._chunks[0].byteLength>e){let o=this._chunks[0],s=this.asNative(o,e);return this._chunks[0]=o.slice(e),this._totalLength-=e,s}let t=this.allocNative(e),n=0,i=0;for(;e>0;){let o=this._chunks[i];if(o.byteLength>e){let s=o.slice(0,e);t.set(s,n),n+=e,this._chunks[i]=o.slice(e),this._totalLength-=e,e-=e}else t.set(o,n),n+=o.byteLength,this._chunks.shift(),this._totalLength-=o.byteLength,e-=o.byteLength}return t}};ji.AbstractMessageBuffer=Ja});var Cf=B(se=>{"use strict";Object.defineProperty(se,"__esModule",{value:!0});se.createMessageConnection=se.ConnectionOptions=se.MessageStrategy=se.CancellationStrategy=se.CancellationSenderStrategy=se.CancellationReceiverStrategy=se.RequestCancellationReceiverStrategy=se.IdCancellationReceiverStrategy=se.ConnectionStrategy=se.ConnectionError=se.ConnectionErrors=se.LogTraceNotification=se.SetTraceNotification=se.TraceFormat=se.TraceValues=se.Trace=se.NullLogger=se.ProgressType=se.ProgressToken=void 0;var Pf=tr(),Te=Tr(),re=La(),Sf=ka(),vn=Or(),Za=Fi(),Dn;(function(r){r.type=new re.NotificationType("$/cancelRequest")})(Dn||(Dn={}));var Xa;(function(r){function e(t){return typeof t=="string"||typeof t=="number"}r.is=e})(Xa||(se.ProgressToken=Xa={}));var wn;(function(r){r.type=new re.NotificationType("$/progress")})(wn||(wn={}));var za=class{constructor(){}};se.ProgressType=za;var $a;(function(r){function e(t){return Te.func(t)}r.is=e})($a||($a={}));se.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var pe;(function(r){r[r.Off=0]="Off",r[r.Messages=1]="Messages",r[r.Compact=2]="Compact",r[r.Verbose=3]="Verbose"})(pe||(se.Trace=pe={}));var If;(function(r){r.Off="off",r.Messages="messages",r.Compact="compact",r.Verbose="verbose"})(If||(se.TraceValues=If={}));(function(r){function e(n){if(!Te.string(n))return r.Off;switch(n=n.toLowerCase(),n){case"off":return r.Off;case"messages":return r.Messages;case"compact":return r.Compact;case"verbose":return r.Verbose;default:return r.Off}}r.fromString=e;function t(n){switch(n){case r.Off:return"off";case r.Messages:return"messages";case r.Compact:return"compact";case r.Verbose:return"verbose";default:return"off"}}r.toString=t})(pe||(se.Trace=pe={}));var gt;(function(r){r.Text="text",r.JSON="json"})(gt||(se.TraceFormat=gt={}));(function(r){function e(t){return Te.string(t)?(t=t.toLowerCase(),t==="json"?r.JSON:r.Text):r.Text}r.fromString=e})(gt||(se.TraceFormat=gt={}));var ec;(function(r){r.type=new re.NotificationType("$/setTrace")})(ec||(se.SetTraceNotification=ec={}));var Qi;(function(r){r.type=new re.NotificationType("$/logTrace")})(Qi||(se.LogTraceNotification=Qi={}));var En;(function(r){r[r.Closed=1]="Closed",r[r.Disposed=2]="Disposed",r[r.AlreadyListening=3]="AlreadyListening"})(En||(se.ConnectionErrors=En={}));var Ur=class r extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,r.prototype)}};se.ConnectionError=Ur;var tc;(function(r){function e(t){let n=t;return n&&Te.func(n.cancelUndispatched)}r.is=e})(tc||(se.ConnectionStrategy=tc={}));var _i;(function(r){function e(t){let n=t;return n&&(n.kind===void 0||n.kind==="id")&&Te.func(n.createCancellationTokenSource)&&(n.dispose===void 0||Te.func(n.dispose))}r.is=e})(_i||(se.IdCancellationReceiverStrategy=_i={}));var rc;(function(r){function e(t){let n=t;return n&&n.kind==="request"&&Te.func(n.createCancellationTokenSource)&&(n.dispose===void 0||Te.func(n.dispose))}r.is=e})(rc||(se.RequestCancellationReceiverStrategy=rc={}));var Gi;(function(r){r.Message=Object.freeze({createCancellationTokenSource(t){return new Za.CancellationTokenSource}});function e(t){return _i.is(t)||rc.is(t)}r.is=e})(Gi||(se.CancellationReceiverStrategy=Gi={}));var Ki;(function(r){r.Message=Object.freeze({sendCancellation(t,n){return t.sendNotification(Dn.type,{id:n})},cleanup(t){}});function e(t){let n=t;return n&&Te.func(n.sendCancellation)&&Te.func(n.cleanup)}r.is=e})(Ki||(se.CancellationSenderStrategy=Ki={}));var Yi;(function(r){r.Message=Object.freeze({receiver:Gi.Message,sender:Ki.Message});function e(t){let n=t;return n&&Gi.is(n.receiver)&&Ki.is(n.sender)}r.is=e})(Yi||(se.CancellationStrategy=Yi={}));var Vi;(function(r){function e(t){let n=t;return n&&Te.func(n.handleMessage)}r.is=e})(Vi||(se.MessageStrategy=Vi={}));var Lf;(function(r){function e(t){let n=t;return n&&(Yi.is(n.cancellationStrategy)||tc.is(n.connectionStrategy)||Vi.is(n.messageStrategy))}r.is=e})(Lf||(se.ConnectionOptions=Lf={}));var Pt;(function(r){r[r.New=1]="New",r[r.Listening=2]="Listening",r[r.Closed=3]="Closed",r[r.Disposed=4]="Disposed"})(Pt||(Pt={}));function Dv(r,e,t,n){let i=t!==void 0?t:se.NullLogger,o=0,s=0,c=0,d="2.0",l,g=new Map,b,P=new Map,v=new Map,j,x=new Sf.LinkedMap,ee=new Map,ce=new Set,Y=new Map,K=pe.Off,O=gt.Text,T,ae=Pt.New,_=new vn.Emitter,Pe=new vn.Emitter,xe=new vn.Emitter,_e=new vn.Emitter,F=new vn.Emitter,R=n&&n.cancellationStrategy?n.cancellationStrategy:Yi.Message;function Q(p){if(p===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+p.toString()}function G(p){return p===null?"res-unknown-"+(++c).toString():"res-"+p.toString()}function S(){return"not-"+(++s).toString()}function k(p,L){re.Message.isRequest(L)?p.set(Q(L.id),L):re.Message.isResponse(L)?p.set(G(L.id),L):p.set(S(),L)}function M(p){}function D(){return ae===Pt.Listening}function V(){return ae===Pt.Closed}function q(){return ae===Pt.Disposed}function te(){(ae===Pt.New||ae===Pt.Listening)&&(ae=Pt.Closed,Pe.fire(void 0))}function ne(p){_.fire([p,void 0,void 0])}function qe(p){_.fire(p)}r.onClose(te),r.onError(ne),e.onClose(te),e.onError(qe);function ge(){j||x.size===0||(j=(0,Pf.default)().timer.setImmediate(()=>{j=void 0,It()}))}function et(p){re.Message.isRequest(p)?Ln(p):re.Message.isNotification(p)?kn(p):re.Message.isResponse(p)?Cn(p):wr(p)}function It(){if(x.size===0)return;let p=x.shift();try{let L=n?.messageStrategy;Vi.is(L)?L.handleMessage(p,et):et(p)}finally{ge()}}let In=p=>{try{if(re.Message.isNotification(p)&&p.method===Dn.type.method){let L=p.params.id,U=Q(L),Z=x.get(U);if(re.Message.isRequest(Z)){let me=n?.connectionStrategy,Se=me&&me.cancelUndispatched?me.cancelUndispatched(Z,M):void 0;if(Se&&(Se.error!==void 0||Se.result!==void 0)){x.delete(U),Y.delete(L),Se.id=Z.id,ur(Se,p.method,Date.now()),e.write(Se).catch(()=>i.error("Sending response for canceled message failed."));return}}let ye=Y.get(L);if(ye!==void 0){ye.cancel(),Er(p);return}else ce.add(L)}k(x,p)}finally{ge()}};function Ln(p){if(q())return;function L(le,ve,he){let Oe={jsonrpc:d,id:p.id};le instanceof re.ResponseError?Oe.error=le.toJson():Oe.result=le===void 0?null:le,ur(Oe,ve,he),e.write(Oe).catch(()=>i.error("Sending response failed."))}function U(le,ve,he){let Oe={jsonrpc:d,id:p.id,error:le.toJson()};ur(Oe,ve,he),e.write(Oe).catch(()=>i.error("Sending response failed."))}function Z(le,ve,he){le===void 0&&(le=null);let Oe={jsonrpc:d,id:p.id,result:le};ur(Oe,ve,he),e.write(Oe).catch(()=>i.error("Sending response failed."))}Tn(p);let ye=g.get(p.method),me,Se;ye&&(me=ye.type,Se=ye.handler);let Be=Date.now();if(Se||l){let le=p.id??String(Date.now()),ve=_i.is(R.receiver)?R.receiver.createCancellationTokenSource(le):R.receiver.createCancellationTokenSource(p);p.id!==null&&ce.has(p.id)&&ve.cancel(),p.id!==null&&Y.set(le,ve);try{let he;if(Se)if(p.params===void 0){if(me!==void 0&&me.numberOfParams!==0){U(new re.ResponseError(re.ErrorCodes.InvalidParams,`Request ${p.method} defines ${me.numberOfParams} params but received none.`),p.method,Be);return}he=Se(ve.token)}else if(Array.isArray(p.params)){if(me!==void 0&&me.parameterStructures===re.ParameterStructures.byName){U(new re.ResponseError(re.ErrorCodes.InvalidParams,`Request ${p.method} defines parameters by name but received parameters by position`),p.method,Be);return}he=Se(...p.params,ve.token)}else{if(me!==void 0&&me.parameterStructures===re.ParameterStructures.byPosition){U(new re.ResponseError(re.ErrorCodes.InvalidParams,`Request ${p.method} defines parameters by position but received parameters by name`),p.method,Be);return}he=Se(p.params,ve.token)}else l&&(he=l(p.method,p.params,ve.token));let Oe=he;he?Oe.then?Oe.then(je=>{Y.delete(le),L(je,p.method,Be)},je=>{Y.delete(le),je instanceof re.ResponseError?U(je,p.method,Be):je&&Te.string(je.message)?U(new re.ResponseError(re.ErrorCodes.InternalError,`Request ${p.method} failed with message: ${je.message}`),p.method,Be):U(new re.ResponseError(re.ErrorCodes.InternalError,`Request ${p.method} failed unexpectedly without providing any details.`),p.method,Be)}):(Y.delete(le),L(he,p.method,Be)):(Y.delete(le),Z(he,p.method,Be))}catch(he){Y.delete(le),he instanceof re.ResponseError?L(he,p.method,Be):he&&Te.string(he.message)?U(new re.ResponseError(re.ErrorCodes.InternalError,`Request ${p.method} failed with message: ${he.message}`),p.method,Be):U(new re.ResponseError(re.ErrorCodes.InternalError,`Request ${p.method} failed unexpectedly without providing any details.`),p.method,Be)}}else U(new re.ResponseError(re.ErrorCodes.MethodNotFound,`Unhandled method ${p.method}`),p.method,Be)}function Cn(p){if(!q())if(p.id===null)p.error?i.error(`Received response message without id: Error is:
|
|
27
|
+
${JSON.stringify(p.error,void 0,4)}`):i.error("Received response message without id. No further error information provided.");else{let L=p.id,U=ee.get(L);if(xn(p,U),U!==void 0){ee.delete(L);try{if(p.error){let Z=p.error;U.reject(new re.ResponseError(Z.code,Z.message,Z.data))}else if(p.result!==void 0)U.resolve(p.result);else throw new Error("Should never happen.")}catch(Z){Z.message?i.error(`Response handler '${U.method}' failed with message: ${Z.message}`):i.error(`Response handler '${U.method}' failed unexpectedly.`)}}}}function kn(p){if(q())return;let L,U;if(p.method===Dn.type.method){let Z=p.params.id;ce.delete(Z),Er(p);return}else{let Z=P.get(p.method);Z&&(U=Z.handler,L=Z.type)}if(U||b)try{if(Er(p),U)if(p.params===void 0)L!==void 0&&L.numberOfParams!==0&&L.parameterStructures!==re.ParameterStructures.byName&&i.error(`Notification ${p.method} defines ${L.numberOfParams} params but received none.`),U();else if(Array.isArray(p.params)){let Z=p.params;p.method===wn.type.method&&Z.length===2&&Xa.is(Z[0])?U({token:Z[0],value:Z[1]}):(L!==void 0&&(L.parameterStructures===re.ParameterStructures.byName&&i.error(`Notification ${p.method} defines parameters by name but received parameters by position`),L.numberOfParams!==p.params.length&&i.error(`Notification ${p.method} defines ${L.numberOfParams} params but received ${Z.length} arguments`)),U(...Z))}else L!==void 0&&L.parameterStructures===re.ParameterStructures.byPosition&&i.error(`Notification ${p.method} defines parameters by position but received parameters by name`),U(p.params);else b&&b(p.method,p.params)}catch(Z){Z.message?i.error(`Notification handler '${p.method}' failed with message: ${Z.message}`):i.error(`Notification handler '${p.method}' failed unexpectedly.`)}else xe.fire(p)}function wr(p){if(!p){i.error("Received empty message.");return}i.error(`Received message which is neither a response nor a notification message:
|
|
28
|
+
${JSON.stringify(p,null,4)}`);let L=p;if(Te.string(L.id)||Te.number(L.id)){let U=L.id,Z=ee.get(U);Z&&Z.reject(new Error("The received response has neither a result nor an error property."))}}function wt(p){if(p!=null)switch(K){case pe.Verbose:return JSON.stringify(p,null,4);case pe.Compact:return JSON.stringify(p);default:return}}function Bn(p){if(!(K===pe.Off||!T))if(O===gt.Text){let L;(K===pe.Verbose||K===pe.Compact)&&p.params&&(L=`Params: ${wt(p.params)}
|
|
29
|
+
|
|
30
|
+
`),T.log(`Sending request '${p.method} - (${p.id})'.`,L)}else Ot("send-request",p)}function Mn(p){if(!(K===pe.Off||!T))if(O===gt.Text){let L;(K===pe.Verbose||K===pe.Compact)&&(p.params?L=`Params: ${wt(p.params)}
|
|
31
|
+
|
|
32
|
+
`:L=`No parameters provided.
|
|
33
|
+
|
|
34
|
+
`),T.log(`Sending notification '${p.method}'.`,L)}else Ot("send-notification",p)}function ur(p,L,U){if(!(K===pe.Off||!T))if(O===gt.Text){let Z;(K===pe.Verbose||K===pe.Compact)&&(p.error&&p.error.data?Z=`Error data: ${wt(p.error.data)}
|
|
35
|
+
|
|
36
|
+
`:p.result?Z=`Result: ${wt(p.result)}
|
|
37
|
+
|
|
38
|
+
`:p.error===void 0&&(Z=`No result returned.
|
|
39
|
+
|
|
40
|
+
`)),T.log(`Sending response '${L} - (${p.id})'. Processing request took ${Date.now()-U}ms`,Z)}else Ot("send-response",p)}function Tn(p){if(!(K===pe.Off||!T))if(O===gt.Text){let L;(K===pe.Verbose||K===pe.Compact)&&p.params&&(L=`Params: ${wt(p.params)}
|
|
41
|
+
|
|
42
|
+
`),T.log(`Received request '${p.method} - (${p.id})'.`,L)}else Ot("receive-request",p)}function Er(p){if(!(K===pe.Off||!T||p.method===Qi.type.method))if(O===gt.Text){let L;(K===pe.Verbose||K===pe.Compact)&&(p.params?L=`Params: ${wt(p.params)}
|
|
43
|
+
|
|
44
|
+
`:L=`No parameters provided.
|
|
45
|
+
|
|
46
|
+
`),T.log(`Received notification '${p.method}'.`,L)}else Ot("receive-notification",p)}function xn(p,L){if(!(K===pe.Off||!T))if(O===gt.Text){let U;if((K===pe.Verbose||K===pe.Compact)&&(p.error&&p.error.data?U=`Error data: ${wt(p.error.data)}
|
|
47
|
+
|
|
48
|
+
`:p.result?U=`Result: ${wt(p.result)}
|
|
49
|
+
|
|
50
|
+
`:p.error===void 0&&(U=`No result returned.
|
|
51
|
+
|
|
52
|
+
`)),L){let Z=p.error?` Request failed: ${p.error.message} (${p.error.code}).`:"";T.log(`Received response '${L.method} - (${p.id})' in ${Date.now()-L.timerStart}ms.${Z}`,U)}else T.log(`Received response ${p.id} without active response promise.`,U)}else Ot("receive-response",p)}function Ot(p,L){if(!T||K===pe.Off)return;let U={isLSPMessage:!0,type:p,message:L,timestamp:Date.now()};T.log(U)}function Kt(){if(V())throw new Ur(En.Closed,"Connection is closed.");if(q())throw new Ur(En.Disposed,"Connection is disposed.")}function On(){if(D())throw new Ur(En.AlreadyListening,"Connection is already listening")}function Fn(){if(!D())throw new Error("Call listen() first.")}function Lt(p){return p===void 0?null:p}function zr(p){if(p!==null)return p}function $r(p){return p!=null&&!Array.isArray(p)&&typeof p=="object"}function Dr(p,L){switch(p){case re.ParameterStructures.auto:return $r(L)?zr(L):[Lt(L)];case re.ParameterStructures.byName:if(!$r(L))throw new Error("Received parameters by name but param is not an object literal.");return zr(L);case re.ParameterStructures.byPosition:return[Lt(L)];default:throw new Error(`Unknown parameter structure ${p.toString()}`)}}function en(p,L){let U,Z=p.numberOfParams;switch(Z){case 0:U=void 0;break;case 1:U=Dr(p.parameterStructures,L[0]);break;default:U=[];for(let ye=0;ye<L.length&&ye<Z;ye++)U.push(Lt(L[ye]));if(L.length<Z)for(let ye=L.length;ye<Z;ye++)U.push(null);break}return U}let Ft={sendNotification:(p,...L)=>{Kt();let U,Z;if(Te.string(p)){U=p;let me=L[0],Se=0,Be=re.ParameterStructures.auto;re.ParameterStructures.is(me)&&(Se=1,Be=me);let le=L.length,ve=le-Se;switch(ve){case 0:Z=void 0;break;case 1:Z=Dr(Be,L[Se]);break;default:if(Be===re.ParameterStructures.byName)throw new Error(`Received ${ve} parameters for 'by Name' notification parameter structure.`);Z=L.slice(Se,le).map(he=>Lt(he));break}}else{let me=L;U=p.method,Z=en(p,me)}let ye={jsonrpc:d,method:U,params:Z};return Mn(ye),e.write(ye).catch(me=>{throw i.error("Sending notification failed."),me})},onNotification:(p,L)=>{Kt();let U;return Te.func(p)?b=p:L&&(Te.string(p)?(U=p,P.set(p,{type:void 0,handler:L})):(U=p.method,P.set(p.method,{type:p,handler:L}))),{dispose:()=>{U!==void 0?P.delete(U):b=void 0}}},onProgress:(p,L,U)=>{if(v.has(L))throw new Error(`Progress handler for token ${L} already registered`);return v.set(L,U),{dispose:()=>{v.delete(L)}}},sendProgress:(p,L,U)=>Ft.sendNotification(wn.type,{token:L,value:U}),onUnhandledProgress:_e.event,sendRequest:(p,...L)=>{Kt(),Fn();let U,Z,ye;if(Te.string(p)){U=p;let le=L[0],ve=L[L.length-1],he=0,Oe=re.ParameterStructures.auto;re.ParameterStructures.is(le)&&(he=1,Oe=le);let je=L.length;Za.CancellationToken.is(ve)&&(je=je-1,ye=ve);let ut=je-he;switch(ut){case 0:Z=void 0;break;case 1:Z=Dr(Oe,L[he]);break;default:if(Oe===re.ParameterStructures.byName)throw new Error(`Received ${ut} parameters for 'by Name' request parameter structure.`);Z=L.slice(he,je).map(Nn=>Lt(Nn));break}}else{let le=L;U=p.method,Z=en(p,le);let ve=p.numberOfParams;ye=Za.CancellationToken.is(le[ve])?le[ve]:void 0}let me=o++,Se;ye&&(Se=ye.onCancellationRequested(()=>{let le=R.sender.sendCancellation(Ft,me);return le===void 0?(i.log(`Received no promise from cancellation strategy when cancelling id ${me}`),Promise.resolve()):le.catch(()=>{i.log(`Sending cancellation messages for id ${me} failed`)})}));let Be={jsonrpc:d,id:me,method:U,params:Z};return Bn(Be),typeof R.sender.enableCancellation=="function"&&R.sender.enableCancellation(Be),new Promise(async(le,ve)=>{let he=ut=>{le(ut),R.sender.cleanup(me),Se?.dispose()},Oe=ut=>{ve(ut),R.sender.cleanup(me),Se?.dispose()},je={method:U,timerStart:Date.now(),resolve:he,reject:Oe};try{await e.write(Be),ee.set(me,je)}catch(ut){throw i.error("Sending request failed."),je.reject(new re.ResponseError(re.ErrorCodes.MessageWriteError,ut.message?ut.message:"Unknown reason")),ut}})},onRequest:(p,L)=>{Kt();let U=null;return $a.is(p)?(U=void 0,l=p):Te.string(p)?(U=null,L!==void 0&&(U=p,g.set(p,{handler:L,type:void 0}))):L!==void 0&&(U=p.method,g.set(p.method,{type:p,handler:L})),{dispose:()=>{U!==null&&(U!==void 0?g.delete(U):l=void 0)}}},hasPendingResponse:()=>ee.size>0,trace:async(p,L,U)=>{let Z=!1,ye=gt.Text;U!==void 0&&(Te.boolean(U)?Z=U:(Z=U.sendNotification||!1,ye=U.traceFormat||gt.Text)),K=p,O=ye,K===pe.Off?T=void 0:T=L,Z&&!V()&&!q()&&await Ft.sendNotification(ec.type,{value:pe.toString(p)})},onError:_.event,onClose:Pe.event,onUnhandledNotification:xe.event,onDispose:F.event,end:()=>{e.end()},dispose:()=>{if(q())return;ae=Pt.Disposed,F.fire(void 0);let p=new re.ResponseError(re.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let L of ee.values())L.reject(p);ee=new Map,Y=new Map,ce=new Set,x=new Sf.LinkedMap,Te.func(e.dispose)&&e.dispose(),Te.func(r.dispose)&&r.dispose()},listen:()=>{Kt(),On(),ae=Pt.Listening,r.listen(In)},inspect:()=>{(0,Pf.default)().console.log("inspect")}};return Ft.onNotification(Qi.type,p=>{if(K===pe.Off||!T)return;let L=K===pe.Verbose||K===pe.Compact;T.log(p.message,L?p.verbose:void 0)}),Ft.onNotification(wn.type,p=>{let L=v.get(p.token);L?L(p.value):_e.fire(p)}),Ft}se.createMessageConnection=Dv});var Wi=B(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.ProgressType=I.ProgressToken=I.createMessageConnection=I.NullLogger=I.ConnectionOptions=I.ConnectionStrategy=I.AbstractMessageBuffer=I.WriteableStreamMessageWriter=I.AbstractMessageWriter=I.MessageWriter=I.ReadableStreamMessageReader=I.AbstractMessageReader=I.MessageReader=I.SharedArrayReceiverStrategy=I.SharedArraySenderStrategy=I.CancellationToken=I.CancellationTokenSource=I.Emitter=I.Event=I.Disposable=I.LRUCache=I.Touch=I.LinkedMap=I.ParameterStructures=I.NotificationType9=I.NotificationType8=I.NotificationType7=I.NotificationType6=I.NotificationType5=I.NotificationType4=I.NotificationType3=I.NotificationType2=I.NotificationType1=I.NotificationType0=I.NotificationType=I.ErrorCodes=I.ResponseError=I.RequestType9=I.RequestType8=I.RequestType7=I.RequestType6=I.RequestType5=I.RequestType4=I.RequestType3=I.RequestType2=I.RequestType1=I.RequestType0=I.RequestType=I.Message=I.RAL=void 0;I.MessageStrategy=I.CancellationStrategy=I.CancellationSenderStrategy=I.CancellationReceiverStrategy=I.ConnectionError=I.ConnectionErrors=I.LogTraceNotification=I.SetTraceNotification=I.TraceFormat=I.TraceValues=I.Trace=void 0;var Re=La();Object.defineProperty(I,"Message",{enumerable:!0,get:function(){return Re.Message}});Object.defineProperty(I,"RequestType",{enumerable:!0,get:function(){return Re.RequestType}});Object.defineProperty(I,"RequestType0",{enumerable:!0,get:function(){return Re.RequestType0}});Object.defineProperty(I,"RequestType1",{enumerable:!0,get:function(){return Re.RequestType1}});Object.defineProperty(I,"RequestType2",{enumerable:!0,get:function(){return Re.RequestType2}});Object.defineProperty(I,"RequestType3",{enumerable:!0,get:function(){return Re.RequestType3}});Object.defineProperty(I,"RequestType4",{enumerable:!0,get:function(){return Re.RequestType4}});Object.defineProperty(I,"RequestType5",{enumerable:!0,get:function(){return Re.RequestType5}});Object.defineProperty(I,"RequestType6",{enumerable:!0,get:function(){return Re.RequestType6}});Object.defineProperty(I,"RequestType7",{enumerable:!0,get:function(){return Re.RequestType7}});Object.defineProperty(I,"RequestType8",{enumerable:!0,get:function(){return Re.RequestType8}});Object.defineProperty(I,"RequestType9",{enumerable:!0,get:function(){return Re.RequestType9}});Object.defineProperty(I,"ResponseError",{enumerable:!0,get:function(){return Re.ResponseError}});Object.defineProperty(I,"ErrorCodes",{enumerable:!0,get:function(){return Re.ErrorCodes}});Object.defineProperty(I,"NotificationType",{enumerable:!0,get:function(){return Re.NotificationType}});Object.defineProperty(I,"NotificationType0",{enumerable:!0,get:function(){return Re.NotificationType0}});Object.defineProperty(I,"NotificationType1",{enumerable:!0,get:function(){return Re.NotificationType1}});Object.defineProperty(I,"NotificationType2",{enumerable:!0,get:function(){return Re.NotificationType2}});Object.defineProperty(I,"NotificationType3",{enumerable:!0,get:function(){return Re.NotificationType3}});Object.defineProperty(I,"NotificationType4",{enumerable:!0,get:function(){return Re.NotificationType4}});Object.defineProperty(I,"NotificationType5",{enumerable:!0,get:function(){return Re.NotificationType5}});Object.defineProperty(I,"NotificationType6",{enumerable:!0,get:function(){return Re.NotificationType6}});Object.defineProperty(I,"NotificationType7",{enumerable:!0,get:function(){return Re.NotificationType7}});Object.defineProperty(I,"NotificationType8",{enumerable:!0,get:function(){return Re.NotificationType8}});Object.defineProperty(I,"NotificationType9",{enumerable:!0,get:function(){return Re.NotificationType9}});Object.defineProperty(I,"ParameterStructures",{enumerable:!0,get:function(){return Re.ParameterStructures}});var nc=ka();Object.defineProperty(I,"LinkedMap",{enumerable:!0,get:function(){return nc.LinkedMap}});Object.defineProperty(I,"LRUCache",{enumerable:!0,get:function(){return nc.LRUCache}});Object.defineProperty(I,"Touch",{enumerable:!0,get:function(){return nc.Touch}});var Rv=gf();Object.defineProperty(I,"Disposable",{enumerable:!0,get:function(){return Rv.Disposable}});var kf=Or();Object.defineProperty(I,"Event",{enumerable:!0,get:function(){return kf.Event}});Object.defineProperty(I,"Emitter",{enumerable:!0,get:function(){return kf.Emitter}});var Bf=Fi();Object.defineProperty(I,"CancellationTokenSource",{enumerable:!0,get:function(){return Bf.CancellationTokenSource}});Object.defineProperty(I,"CancellationToken",{enumerable:!0,get:function(){return Bf.CancellationToken}});var Mf=mf();Object.defineProperty(I,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return Mf.SharedArraySenderStrategy}});Object.defineProperty(I,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return Mf.SharedArrayReceiverStrategy}});var ic=yf();Object.defineProperty(I,"MessageReader",{enumerable:!0,get:function(){return ic.MessageReader}});Object.defineProperty(I,"AbstractMessageReader",{enumerable:!0,get:function(){return ic.AbstractMessageReader}});Object.defineProperty(I,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return ic.ReadableStreamMessageReader}});var oc=Df();Object.defineProperty(I,"MessageWriter",{enumerable:!0,get:function(){return oc.MessageWriter}});Object.defineProperty(I,"AbstractMessageWriter",{enumerable:!0,get:function(){return oc.AbstractMessageWriter}});Object.defineProperty(I,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return oc.WriteableStreamMessageWriter}});var Pv=Rf();Object.defineProperty(I,"AbstractMessageBuffer",{enumerable:!0,get:function(){return Pv.AbstractMessageBuffer}});var Ye=Cf();Object.defineProperty(I,"ConnectionStrategy",{enumerable:!0,get:function(){return Ye.ConnectionStrategy}});Object.defineProperty(I,"ConnectionOptions",{enumerable:!0,get:function(){return Ye.ConnectionOptions}});Object.defineProperty(I,"NullLogger",{enumerable:!0,get:function(){return Ye.NullLogger}});Object.defineProperty(I,"createMessageConnection",{enumerable:!0,get:function(){return Ye.createMessageConnection}});Object.defineProperty(I,"ProgressToken",{enumerable:!0,get:function(){return Ye.ProgressToken}});Object.defineProperty(I,"ProgressType",{enumerable:!0,get:function(){return Ye.ProgressType}});Object.defineProperty(I,"Trace",{enumerable:!0,get:function(){return Ye.Trace}});Object.defineProperty(I,"TraceValues",{enumerable:!0,get:function(){return Ye.TraceValues}});Object.defineProperty(I,"TraceFormat",{enumerable:!0,get:function(){return Ye.TraceFormat}});Object.defineProperty(I,"SetTraceNotification",{enumerable:!0,get:function(){return Ye.SetTraceNotification}});Object.defineProperty(I,"LogTraceNotification",{enumerable:!0,get:function(){return Ye.LogTraceNotification}});Object.defineProperty(I,"ConnectionErrors",{enumerable:!0,get:function(){return Ye.ConnectionErrors}});Object.defineProperty(I,"ConnectionError",{enumerable:!0,get:function(){return Ye.ConnectionError}});Object.defineProperty(I,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return Ye.CancellationReceiverStrategy}});Object.defineProperty(I,"CancellationSenderStrategy",{enumerable:!0,get:function(){return Ye.CancellationSenderStrategy}});Object.defineProperty(I,"CancellationStrategy",{enumerable:!0,get:function(){return Ye.CancellationStrategy}});Object.defineProperty(I,"MessageStrategy",{enumerable:!0,get:function(){return Ye.MessageStrategy}});var Sv=tr();I.RAL=Sv.default});var Of=B(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Tf=tt("util"),_t=Wi(),Hi=class r extends _t.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return r.emptyBuffer}fromString(e,t){return Buffer.from(e,t)}toString(e,t){return e instanceof Buffer?e.toString(t):new Tf.TextDecoder(t).decode(e)}asNative(e,t){return t===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,t):Buffer.from(e,0,t)}allocNative(e){return Buffer.allocUnsafe(e)}};Hi.emptyBuffer=Buffer.allocUnsafe(0);var sc=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),_t.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),_t.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),_t.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),_t.Disposable.create(()=>this.stream.off("data",e))}},ac=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),_t.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),_t.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),_t.Disposable.create(()=>this.stream.off("end",e))}write(e,t){return new Promise((n,i)=>{let o=s=>{s==null?n():i(s)};typeof e=="string"?this.stream.write(e,t,o):this.stream.write(e,o)})}end(){this.stream.end()}},xf=Object.freeze({messageBuffer:Object.freeze({create:r=>new Hi(r)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(r,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(r,void 0,0),e.charset))}catch(t){return Promise.reject(t)}}}),decoder:Object.freeze({name:"application/json",decode:(r,e)=>{try{return r instanceof Buffer?Promise.resolve(JSON.parse(r.toString(e.charset))):Promise.resolve(JSON.parse(new Tf.TextDecoder(e.charset).decode(r)))}catch(t){return Promise.reject(t)}}})}),stream:Object.freeze({asReadableStream:r=>new sc(r),asWritableStream:r=>new ac(r)}),console,timer:Object.freeze({setTimeout(r,e,...t){let n=setTimeout(r,e,...t);return{dispose:()=>clearTimeout(n)}},setImmediate(r,...e){let t=setImmediate(r,...e);return{dispose:()=>clearImmediate(t)}},setInterval(r,e,...t){let n=setInterval(r,e,...t);return{dispose:()=>clearInterval(n)}}})});function cc(){return xf}(function(r){function e(){_t.RAL.install(xf)}r.install=e})(cc||(cc={}));uc.default=cc});var br=B(fe=>{"use strict";var Iv=fe&&fe.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),Lv=fe&&fe.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Iv(e,r,t)};Object.defineProperty(fe,"__esModule",{value:!0});fe.createMessageConnection=fe.createServerSocketTransport=fe.createClientSocketTransport=fe.createServerPipeTransport=fe.createClientPipeTransport=fe.generateRandomPipeName=fe.StreamMessageWriter=fe.StreamMessageReader=fe.SocketMessageWriter=fe.SocketMessageReader=fe.PortMessageWriter=fe.PortMessageReader=fe.IPCMessageWriter=fe.IPCMessageReader=void 0;var jr=Of();jr.default.install();var Ff=tt("path"),Cv=tt("os"),kv=tt("crypto"),Xi=tt("net"),pt=Wi();Lv(Wi(),fe);var lc=class extends pt.AbstractMessageReader{constructor(e){super(),this.process=e;let t=this.process;t.on("error",n=>this.fireError(n)),t.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),pt.Disposable.create(()=>this.process.off("message",e))}};fe.IPCMessageReader=lc;var dc=class extends pt.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let t=this.process;t.on("error",n=>this.fireError(n)),t.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,t=>{t?(this.errorCount++,this.handleError(t,e)):this.errorCount=0}),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};fe.IPCMessageWriter=dc;var fc=class extends pt.AbstractMessageReader{constructor(e){super(),this.onData=new pt.Emitter,e.on("close",()=>this.fireClose),e.on("error",t=>this.fireError(t)),e.on("message",t=>{this.onData.fire(t)})}listen(e){return this.onData.event(e)}};fe.PortMessageReader=fc;var hc=class extends pt.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",t=>this.fireError(t))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};fe.PortMessageWriter=hc;var Ar=class extends pt.ReadableStreamMessageReader{constructor(e,t="utf-8"){super((0,jr.default)().stream.asReadableStream(e),t)}};fe.SocketMessageReader=Ar;var yr=class extends pt.WriteableStreamMessageWriter{constructor(e,t){super((0,jr.default)().stream.asWritableStream(e),t),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};fe.SocketMessageWriter=yr;var Ji=class extends pt.ReadableStreamMessageReader{constructor(e,t){super((0,jr.default)().stream.asReadableStream(e),t)}};fe.StreamMessageReader=Ji;var Zi=class extends pt.WriteableStreamMessageWriter{constructor(e,t){super((0,jr.default)().stream.asWritableStream(e),t)}};fe.StreamMessageWriter=Zi;var Nf=process.env.XDG_RUNTIME_DIR,Bv=new Map([["linux",107],["darwin",103]]);function Mv(){let r=(0,kv.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${r}-sock`;let e;Nf?e=Ff.join(Nf,`vscode-ipc-${r}.sock`):e=Ff.join(Cv.tmpdir(),`vscode-${r}.sock`);let t=Bv.get(process.platform);return t!==void 0&&e.length>t&&(0,jr.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${t} characters.`),e}fe.generateRandomPipeName=Mv;function Tv(r,e="utf-8"){let t,n=new Promise((i,o)=>{t=i});return new Promise((i,o)=>{let s=(0,Xi.createServer)(c=>{s.close(),t([new Ar(c,e),new yr(c,e)])});s.on("error",o),s.listen(r,()=>{s.removeListener("error",o),i({onConnected:()=>n})})})}fe.createClientPipeTransport=Tv;function xv(r,e="utf-8"){let t=(0,Xi.createConnection)(r);return[new Ar(t,e),new yr(t,e)]}fe.createServerPipeTransport=xv;function Ov(r,e="utf-8"){let t,n=new Promise((i,o)=>{t=i});return new Promise((i,o)=>{let s=(0,Xi.createServer)(c=>{s.close(),t([new Ar(c,e),new yr(c,e)])});s.on("error",o),s.listen(r,"127.0.0.1",()=>{s.removeListener("error",o),i({onConnected:()=>n})})})}fe.createClientSocketTransport=Ov;function Fv(r,e="utf-8"){let t=(0,Xi.createConnection)(r,"127.0.0.1");return[new Ar(t,e),new yr(t,e)]}fe.createServerSocketTransport=Fv;function Nv(r){let e=r;return e.read!==void 0&&e.addListener!==void 0}function qv(r){let e=r;return e.write!==void 0&&e.addListener!==void 0}function Uv(r,e,t,n){t||(t=pt.NullLogger);let i=Nv(r)?new Ji(r):r,o=qv(e)?new Zi(e):e;return pt.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,pt.createMessageConnection)(i,o,t,n)}fe.createMessageConnection=Uv});var gc=B((N0,qf)=>{"use strict";qf.exports=br()});var $i=B((Uf,zi)=>{"use strict";(function(r){if(typeof zi=="object"&&typeof zi.exports=="object"){var e=r(tt,Uf);e!==void 0&&(zi.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],r)})(function(r,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var t;(function(u){function m(y){return typeof y=="string"}u.is=m})(t||(e.DocumentUri=t={}));var n;(function(u){function m(y){return typeof y=="string"}u.is=m})(n||(e.URI=n={}));var i;(function(u){u.MIN_VALUE=-2147483648,u.MAX_VALUE=2147483647;function m(y){return typeof y=="number"&&u.MIN_VALUE<=y&&y<=u.MAX_VALUE}u.is=m})(i||(e.integer=i={}));var o;(function(u){u.MIN_VALUE=0,u.MAX_VALUE=2147483647;function m(y){return typeof y=="number"&&u.MIN_VALUE<=y&&y<=u.MAX_VALUE}u.is=m})(o||(e.uinteger=o={}));var s;(function(u){function m(f,a){return f===Number.MAX_VALUE&&(f=o.MAX_VALUE),a===Number.MAX_VALUE&&(a=o.MAX_VALUE),{line:f,character:a}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&E.uinteger(a.line)&&E.uinteger(a.character)}u.is=y})(s||(e.Position=s={}));var c;(function(u){function m(f,a,w,C){if(E.uinteger(f)&&E.uinteger(a)&&E.uinteger(w)&&E.uinteger(C))return{start:s.create(f,a),end:s.create(w,C)};if(s.is(f)&&s.is(a))return{start:f,end:a};throw new Error("Range#create called with invalid arguments[".concat(f,", ").concat(a,", ").concat(w,", ").concat(C,"]"))}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&s.is(a.start)&&s.is(a.end)}u.is=y})(c||(e.Range=c={}));var d;(function(u){function m(f,a){return{uri:f,range:a}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&c.is(a.range)&&(E.string(a.uri)||E.undefined(a.uri))}u.is=y})(d||(e.Location=d={}));var l;(function(u){function m(f,a,w,C){return{targetUri:f,targetRange:a,targetSelectionRange:w,originSelectionRange:C}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&c.is(a.targetRange)&&E.string(a.targetUri)&&c.is(a.targetSelectionRange)&&(c.is(a.originSelectionRange)||E.undefined(a.originSelectionRange))}u.is=y})(l||(e.LocationLink=l={}));var g;(function(u){function m(f,a,w,C){return{red:f,green:a,blue:w,alpha:C}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&E.numberRange(a.red,0,1)&&E.numberRange(a.green,0,1)&&E.numberRange(a.blue,0,1)&&E.numberRange(a.alpha,0,1)}u.is=y})(g||(e.Color=g={}));var b;(function(u){function m(f,a){return{range:f,color:a}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&c.is(a.range)&&g.is(a.color)}u.is=y})(b||(e.ColorInformation=b={}));var P;(function(u){function m(f,a,w){return{label:f,textEdit:a,additionalTextEdits:w}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&E.string(a.label)&&(E.undefined(a.textEdit)||T.is(a))&&(E.undefined(a.additionalTextEdits)||E.typedArray(a.additionalTextEdits,T.is))}u.is=y})(P||(e.ColorPresentation=P={}));var v;(function(u){u.Comment="comment",u.Imports="imports",u.Region="region"})(v||(e.FoldingRangeKind=v={}));var j;(function(u){function m(f,a,w,C,ie,Fe){var we={startLine:f,endLine:a};return E.defined(w)&&(we.startCharacter=w),E.defined(C)&&(we.endCharacter=C),E.defined(ie)&&(we.kind=ie),E.defined(Fe)&&(we.collapsedText=Fe),we}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&E.uinteger(a.startLine)&&E.uinteger(a.startLine)&&(E.undefined(a.startCharacter)||E.uinteger(a.startCharacter))&&(E.undefined(a.endCharacter)||E.uinteger(a.endCharacter))&&(E.undefined(a.kind)||E.string(a.kind))}u.is=y})(j||(e.FoldingRange=j={}));var x;(function(u){function m(f,a){return{location:f,message:a}}u.create=m;function y(f){var a=f;return E.defined(a)&&d.is(a.location)&&E.string(a.message)}u.is=y})(x||(e.DiagnosticRelatedInformation=x={}));var ee;(function(u){u.Error=1,u.Warning=2,u.Information=3,u.Hint=4})(ee||(e.DiagnosticSeverity=ee={}));var ce;(function(u){u.Unnecessary=1,u.Deprecated=2})(ce||(e.DiagnosticTag=ce={}));var Y;(function(u){function m(y){var f=y;return E.objectLiteral(f)&&E.string(f.href)}u.is=m})(Y||(e.CodeDescription=Y={}));var K;(function(u){function m(f,a,w,C,ie,Fe){var we={range:f,message:a};return E.defined(w)&&(we.severity=w),E.defined(C)&&(we.code=C),E.defined(ie)&&(we.source=ie),E.defined(Fe)&&(we.relatedInformation=Fe),we}u.create=m;function y(f){var a,w=f;return E.defined(w)&&c.is(w.range)&&E.string(w.message)&&(E.number(w.severity)||E.undefined(w.severity))&&(E.integer(w.code)||E.string(w.code)||E.undefined(w.code))&&(E.undefined(w.codeDescription)||E.string((a=w.codeDescription)===null||a===void 0?void 0:a.href))&&(E.string(w.source)||E.undefined(w.source))&&(E.undefined(w.relatedInformation)||E.typedArray(w.relatedInformation,x.is))}u.is=y})(K||(e.Diagnostic=K={}));var O;(function(u){function m(f,a){for(var w=[],C=2;C<arguments.length;C++)w[C-2]=arguments[C];var ie={title:f,command:a};return E.defined(w)&&w.length>0&&(ie.arguments=w),ie}u.create=m;function y(f){var a=f;return E.defined(a)&&E.string(a.title)&&E.string(a.command)}u.is=y})(O||(e.Command=O={}));var T;(function(u){function m(w,C){return{range:w,newText:C}}u.replace=m;function y(w,C){return{range:{start:w,end:w},newText:C}}u.insert=y;function f(w){return{range:w,newText:""}}u.del=f;function a(w){var C=w;return E.objectLiteral(C)&&E.string(C.newText)&&c.is(C.range)}u.is=a})(T||(e.TextEdit=T={}));var ae;(function(u){function m(f,a,w){var C={label:f};return a!==void 0&&(C.needsConfirmation=a),w!==void 0&&(C.description=w),C}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&E.string(a.label)&&(E.boolean(a.needsConfirmation)||a.needsConfirmation===void 0)&&(E.string(a.description)||a.description===void 0)}u.is=y})(ae||(e.ChangeAnnotation=ae={}));var _;(function(u){function m(y){var f=y;return E.string(f)}u.is=m})(_||(e.ChangeAnnotationIdentifier=_={}));var Pe;(function(u){function m(w,C,ie){return{range:w,newText:C,annotationId:ie}}u.replace=m;function y(w,C,ie){return{range:{start:w,end:w},newText:C,annotationId:ie}}u.insert=y;function f(w,C){return{range:w,newText:"",annotationId:C}}u.del=f;function a(w){var C=w;return T.is(C)&&(ae.is(C.annotationId)||_.is(C.annotationId))}u.is=a})(Pe||(e.AnnotatedTextEdit=Pe={}));var xe;(function(u){function m(f,a){return{textDocument:f,edits:a}}u.create=m;function y(f){var a=f;return E.defined(a)&&V.is(a.textDocument)&&Array.isArray(a.edits)}u.is=y})(xe||(e.TextDocumentEdit=xe={}));var _e;(function(u){function m(f,a,w){var C={kind:"create",uri:f};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(C.options=a),w!==void 0&&(C.annotationId=w),C}u.create=m;function y(f){var a=f;return a&&a.kind==="create"&&E.string(a.uri)&&(a.options===void 0||(a.options.overwrite===void 0||E.boolean(a.options.overwrite))&&(a.options.ignoreIfExists===void 0||E.boolean(a.options.ignoreIfExists)))&&(a.annotationId===void 0||_.is(a.annotationId))}u.is=y})(_e||(e.CreateFile=_e={}));var F;(function(u){function m(f,a,w,C){var ie={kind:"rename",oldUri:f,newUri:a};return w!==void 0&&(w.overwrite!==void 0||w.ignoreIfExists!==void 0)&&(ie.options=w),C!==void 0&&(ie.annotationId=C),ie}u.create=m;function y(f){var a=f;return a&&a.kind==="rename"&&E.string(a.oldUri)&&E.string(a.newUri)&&(a.options===void 0||(a.options.overwrite===void 0||E.boolean(a.options.overwrite))&&(a.options.ignoreIfExists===void 0||E.boolean(a.options.ignoreIfExists)))&&(a.annotationId===void 0||_.is(a.annotationId))}u.is=y})(F||(e.RenameFile=F={}));var R;(function(u){function m(f,a,w){var C={kind:"delete",uri:f};return a!==void 0&&(a.recursive!==void 0||a.ignoreIfNotExists!==void 0)&&(C.options=a),w!==void 0&&(C.annotationId=w),C}u.create=m;function y(f){var a=f;return a&&a.kind==="delete"&&E.string(a.uri)&&(a.options===void 0||(a.options.recursive===void 0||E.boolean(a.options.recursive))&&(a.options.ignoreIfNotExists===void 0||E.boolean(a.options.ignoreIfNotExists)))&&(a.annotationId===void 0||_.is(a.annotationId))}u.is=y})(R||(e.DeleteFile=R={}));var Q;(function(u){function m(y){var f=y;return f&&(f.changes!==void 0||f.documentChanges!==void 0)&&(f.documentChanges===void 0||f.documentChanges.every(function(a){return E.string(a.kind)?_e.is(a)||F.is(a)||R.is(a):xe.is(a)}))}u.is=m})(Q||(e.WorkspaceEdit=Q={}));var G=(function(){function u(m,y){this.edits=m,this.changeAnnotations=y}return u.prototype.insert=function(m,y,f){var a,w;if(f===void 0?a=T.insert(m,y):_.is(f)?(w=f,a=Pe.insert(m,y,f)):(this.assertChangeAnnotations(this.changeAnnotations),w=this.changeAnnotations.manage(f),a=Pe.insert(m,y,w)),this.edits.push(a),w!==void 0)return w},u.prototype.replace=function(m,y,f){var a,w;if(f===void 0?a=T.replace(m,y):_.is(f)?(w=f,a=Pe.replace(m,y,f)):(this.assertChangeAnnotations(this.changeAnnotations),w=this.changeAnnotations.manage(f),a=Pe.replace(m,y,w)),this.edits.push(a),w!==void 0)return w},u.prototype.delete=function(m,y){var f,a;if(y===void 0?f=T.del(m):_.is(y)?(a=y,f=Pe.del(m,y)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(y),f=Pe.del(m,a)),this.edits.push(f),a!==void 0)return a},u.prototype.add=function(m){this.edits.push(m)},u.prototype.all=function(){return this.edits},u.prototype.clear=function(){this.edits.splice(0,this.edits.length)},u.prototype.assertChangeAnnotations=function(m){if(m===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},u})(),S=(function(){function u(m){this._annotations=m===void 0?Object.create(null):m,this._counter=0,this._size=0}return u.prototype.all=function(){return this._annotations},Object.defineProperty(u.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),u.prototype.manage=function(m,y){var f;if(_.is(m)?f=m:(f=this.nextId(),y=m),this._annotations[f]!==void 0)throw new Error("Id ".concat(f," is already in use."));if(y===void 0)throw new Error("No annotation provided for id ".concat(f));return this._annotations[f]=y,this._size++,f},u.prototype.nextId=function(){return this._counter++,this._counter.toString()},u})(),k=(function(){function u(m){var y=this;this._textEditChanges=Object.create(null),m!==void 0?(this._workspaceEdit=m,m.documentChanges?(this._changeAnnotations=new S(m.changeAnnotations),m.changeAnnotations=this._changeAnnotations.all(),m.documentChanges.forEach(function(f){if(xe.is(f)){var a=new G(f.edits,y._changeAnnotations);y._textEditChanges[f.textDocument.uri]=a}})):m.changes&&Object.keys(m.changes).forEach(function(f){var a=new G(m.changes[f]);y._textEditChanges[f]=a})):this._workspaceEdit={}}return Object.defineProperty(u.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),u.prototype.getTextEditChange=function(m){if(V.is(m)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var y={uri:m.uri,version:m.version},f=this._textEditChanges[y.uri];if(!f){var a=[],w={textDocument:y,edits:a};this._workspaceEdit.documentChanges.push(w),f=new G(a,this._changeAnnotations),this._textEditChanges[y.uri]=f}return f}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var f=this._textEditChanges[m];if(!f){var a=[];this._workspaceEdit.changes[m]=a,f=new G(a),this._textEditChanges[m]=f}return f}},u.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new S,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},u.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},u.prototype.createFile=function(m,y,f){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var a;ae.is(y)||_.is(y)?a=y:f=y;var w,C;if(a===void 0?w=_e.create(m,f):(C=_.is(a)?a:this._changeAnnotations.manage(a),w=_e.create(m,f,C)),this._workspaceEdit.documentChanges.push(w),C!==void 0)return C},u.prototype.renameFile=function(m,y,f,a){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var w;ae.is(f)||_.is(f)?w=f:a=f;var C,ie;if(w===void 0?C=F.create(m,y,a):(ie=_.is(w)?w:this._changeAnnotations.manage(w),C=F.create(m,y,a,ie)),this._workspaceEdit.documentChanges.push(C),ie!==void 0)return ie},u.prototype.deleteFile=function(m,y,f){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var a;ae.is(y)||_.is(y)?a=y:f=y;var w,C;if(a===void 0?w=R.create(m,f):(C=_.is(a)?a:this._changeAnnotations.manage(a),w=R.create(m,f,C)),this._workspaceEdit.documentChanges.push(w),C!==void 0)return C},u})();e.WorkspaceChange=k;var M;(function(u){function m(f){return{uri:f}}u.create=m;function y(f){var a=f;return E.defined(a)&&E.string(a.uri)}u.is=y})(M||(e.TextDocumentIdentifier=M={}));var D;(function(u){function m(f,a){return{uri:f,version:a}}u.create=m;function y(f){var a=f;return E.defined(a)&&E.string(a.uri)&&E.integer(a.version)}u.is=y})(D||(e.VersionedTextDocumentIdentifier=D={}));var V;(function(u){function m(f,a){return{uri:f,version:a}}u.create=m;function y(f){var a=f;return E.defined(a)&&E.string(a.uri)&&(a.version===null||E.integer(a.version))}u.is=y})(V||(e.OptionalVersionedTextDocumentIdentifier=V={}));var q;(function(u){function m(f,a,w,C){return{uri:f,languageId:a,version:w,text:C}}u.create=m;function y(f){var a=f;return E.defined(a)&&E.string(a.uri)&&E.string(a.languageId)&&E.integer(a.version)&&E.string(a.text)}u.is=y})(q||(e.TextDocumentItem=q={}));var te;(function(u){u.PlainText="plaintext",u.Markdown="markdown";function m(y){var f=y;return f===u.PlainText||f===u.Markdown}u.is=m})(te||(e.MarkupKind=te={}));var ne;(function(u){function m(y){var f=y;return E.objectLiteral(y)&&te.is(f.kind)&&E.string(f.value)}u.is=m})(ne||(e.MarkupContent=ne={}));var qe;(function(u){u.Text=1,u.Method=2,u.Function=3,u.Constructor=4,u.Field=5,u.Variable=6,u.Class=7,u.Interface=8,u.Module=9,u.Property=10,u.Unit=11,u.Value=12,u.Enum=13,u.Keyword=14,u.Snippet=15,u.Color=16,u.File=17,u.Reference=18,u.Folder=19,u.EnumMember=20,u.Constant=21,u.Struct=22,u.Event=23,u.Operator=24,u.TypeParameter=25})(qe||(e.CompletionItemKind=qe={}));var ge;(function(u){u.PlainText=1,u.Snippet=2})(ge||(e.InsertTextFormat=ge={}));var et;(function(u){u.Deprecated=1})(et||(e.CompletionItemTag=et={}));var It;(function(u){function m(f,a,w){return{newText:f,insert:a,replace:w}}u.create=m;function y(f){var a=f;return a&&E.string(a.newText)&&c.is(a.insert)&&c.is(a.replace)}u.is=y})(It||(e.InsertReplaceEdit=It={}));var In;(function(u){u.asIs=1,u.adjustIndentation=2})(In||(e.InsertTextMode=In={}));var Ln;(function(u){function m(y){var f=y;return f&&(E.string(f.detail)||f.detail===void 0)&&(E.string(f.description)||f.description===void 0)}u.is=m})(Ln||(e.CompletionItemLabelDetails=Ln={}));var Cn;(function(u){function m(y){return{label:y}}u.create=m})(Cn||(e.CompletionItem=Cn={}));var kn;(function(u){function m(y,f){return{items:y||[],isIncomplete:!!f}}u.create=m})(kn||(e.CompletionList=kn={}));var wr;(function(u){function m(f){return f.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}u.fromPlainText=m;function y(f){var a=f;return E.string(a)||E.objectLiteral(a)&&E.string(a.language)&&E.string(a.value)}u.is=y})(wr||(e.MarkedString=wr={}));var wt;(function(u){function m(y){var f=y;return!!f&&E.objectLiteral(f)&&(ne.is(f.contents)||wr.is(f.contents)||E.typedArray(f.contents,wr.is))&&(y.range===void 0||c.is(y.range))}u.is=m})(wt||(e.Hover=wt={}));var Bn;(function(u){function m(y,f){return f?{label:y,documentation:f}:{label:y}}u.create=m})(Bn||(e.ParameterInformation=Bn={}));var Mn;(function(u){function m(y,f){for(var a=[],w=2;w<arguments.length;w++)a[w-2]=arguments[w];var C={label:y};return E.defined(f)&&(C.documentation=f),E.defined(a)?C.parameters=a:C.parameters=[],C}u.create=m})(Mn||(e.SignatureInformation=Mn={}));var ur;(function(u){u.Text=1,u.Read=2,u.Write=3})(ur||(e.DocumentHighlightKind=ur={}));var Tn;(function(u){function m(y,f){var a={range:y};return E.number(f)&&(a.kind=f),a}u.create=m})(Tn||(e.DocumentHighlight=Tn={}));var Er;(function(u){u.File=1,u.Module=2,u.Namespace=3,u.Package=4,u.Class=5,u.Method=6,u.Property=7,u.Field=8,u.Constructor=9,u.Enum=10,u.Interface=11,u.Function=12,u.Variable=13,u.Constant=14,u.String=15,u.Number=16,u.Boolean=17,u.Array=18,u.Object=19,u.Key=20,u.Null=21,u.EnumMember=22,u.Struct=23,u.Event=24,u.Operator=25,u.TypeParameter=26})(Er||(e.SymbolKind=Er={}));var xn;(function(u){u.Deprecated=1})(xn||(e.SymbolTag=xn={}));var Ot;(function(u){function m(y,f,a,w,C){var ie={name:y,kind:f,location:{uri:w,range:a}};return C&&(ie.containerName=C),ie}u.create=m})(Ot||(e.SymbolInformation=Ot={}));var Kt;(function(u){function m(y,f,a,w){return w!==void 0?{name:y,kind:f,location:{uri:a,range:w}}:{name:y,kind:f,location:{uri:a}}}u.create=m})(Kt||(e.WorkspaceSymbol=Kt={}));var On;(function(u){function m(f,a,w,C,ie,Fe){var we={name:f,detail:a,kind:w,range:C,selectionRange:ie};return Fe!==void 0&&(we.children=Fe),we}u.create=m;function y(f){var a=f;return a&&E.string(a.name)&&E.number(a.kind)&&c.is(a.range)&&c.is(a.selectionRange)&&(a.detail===void 0||E.string(a.detail))&&(a.deprecated===void 0||E.boolean(a.deprecated))&&(a.children===void 0||Array.isArray(a.children))&&(a.tags===void 0||Array.isArray(a.tags))}u.is=y})(On||(e.DocumentSymbol=On={}));var Fn;(function(u){u.Empty="",u.QuickFix="quickfix",u.Refactor="refactor",u.RefactorExtract="refactor.extract",u.RefactorInline="refactor.inline",u.RefactorRewrite="refactor.rewrite",u.Source="source",u.SourceOrganizeImports="source.organizeImports",u.SourceFixAll="source.fixAll"})(Fn||(e.CodeActionKind=Fn={}));var Lt;(function(u){u.Invoked=1,u.Automatic=2})(Lt||(e.CodeActionTriggerKind=Lt={}));var zr;(function(u){function m(f,a,w){var C={diagnostics:f};return a!=null&&(C.only=a),w!=null&&(C.triggerKind=w),C}u.create=m;function y(f){var a=f;return E.defined(a)&&E.typedArray(a.diagnostics,K.is)&&(a.only===void 0||E.typedArray(a.only,E.string))&&(a.triggerKind===void 0||a.triggerKind===Lt.Invoked||a.triggerKind===Lt.Automatic)}u.is=y})(zr||(e.CodeActionContext=zr={}));var $r;(function(u){function m(f,a,w){var C={title:f},ie=!0;return typeof a=="string"?(ie=!1,C.kind=a):O.is(a)?C.command=a:C.edit=a,ie&&w!==void 0&&(C.kind=w),C}u.create=m;function y(f){var a=f;return a&&E.string(a.title)&&(a.diagnostics===void 0||E.typedArray(a.diagnostics,K.is))&&(a.kind===void 0||E.string(a.kind))&&(a.edit!==void 0||a.command!==void 0)&&(a.command===void 0||O.is(a.command))&&(a.isPreferred===void 0||E.boolean(a.isPreferred))&&(a.edit===void 0||Q.is(a.edit))}u.is=y})($r||(e.CodeAction=$r={}));var Dr;(function(u){function m(f,a){var w={range:f};return E.defined(a)&&(w.data=a),w}u.create=m;function y(f){var a=f;return E.defined(a)&&c.is(a.range)&&(E.undefined(a.command)||O.is(a.command))}u.is=y})(Dr||(e.CodeLens=Dr={}));var en;(function(u){function m(f,a){return{tabSize:f,insertSpaces:a}}u.create=m;function y(f){var a=f;return E.defined(a)&&E.uinteger(a.tabSize)&&E.boolean(a.insertSpaces)}u.is=y})(en||(e.FormattingOptions=en={}));var Ft;(function(u){function m(f,a,w){return{range:f,target:a,data:w}}u.create=m;function y(f){var a=f;return E.defined(a)&&c.is(a.range)&&(E.undefined(a.target)||E.string(a.target))}u.is=y})(Ft||(e.DocumentLink=Ft={}));var p;(function(u){function m(f,a){return{range:f,parent:a}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&c.is(a.range)&&(a.parent===void 0||u.is(a.parent))}u.is=y})(p||(e.SelectionRange=p={}));var L;(function(u){u.namespace="namespace",u.type="type",u.class="class",u.enum="enum",u.interface="interface",u.struct="struct",u.typeParameter="typeParameter",u.parameter="parameter",u.variable="variable",u.property="property",u.enumMember="enumMember",u.event="event",u.function="function",u.method="method",u.macro="macro",u.keyword="keyword",u.modifier="modifier",u.comment="comment",u.string="string",u.number="number",u.regexp="regexp",u.operator="operator",u.decorator="decorator"})(L||(e.SemanticTokenTypes=L={}));var U;(function(u){u.declaration="declaration",u.definition="definition",u.readonly="readonly",u.static="static",u.deprecated="deprecated",u.abstract="abstract",u.async="async",u.modification="modification",u.documentation="documentation",u.defaultLibrary="defaultLibrary"})(U||(e.SemanticTokenModifiers=U={}));var Z;(function(u){function m(y){var f=y;return E.objectLiteral(f)&&(f.resultId===void 0||typeof f.resultId=="string")&&Array.isArray(f.data)&&(f.data.length===0||typeof f.data[0]=="number")}u.is=m})(Z||(e.SemanticTokens=Z={}));var ye;(function(u){function m(f,a){return{range:f,text:a}}u.create=m;function y(f){var a=f;return a!=null&&c.is(a.range)&&E.string(a.text)}u.is=y})(ye||(e.InlineValueText=ye={}));var me;(function(u){function m(f,a,w){return{range:f,variableName:a,caseSensitiveLookup:w}}u.create=m;function y(f){var a=f;return a!=null&&c.is(a.range)&&E.boolean(a.caseSensitiveLookup)&&(E.string(a.variableName)||a.variableName===void 0)}u.is=y})(me||(e.InlineValueVariableLookup=me={}));var Se;(function(u){function m(f,a){return{range:f,expression:a}}u.create=m;function y(f){var a=f;return a!=null&&c.is(a.range)&&(E.string(a.expression)||a.expression===void 0)}u.is=y})(Se||(e.InlineValueEvaluatableExpression=Se={}));var Be;(function(u){function m(f,a){return{frameId:f,stoppedLocation:a}}u.create=m;function y(f){var a=f;return E.defined(a)&&c.is(f.stoppedLocation)}u.is=y})(Be||(e.InlineValueContext=Be={}));var le;(function(u){u.Type=1,u.Parameter=2;function m(y){return y===1||y===2}u.is=m})(le||(e.InlayHintKind=le={}));var ve;(function(u){function m(f){return{value:f}}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&(a.tooltip===void 0||E.string(a.tooltip)||ne.is(a.tooltip))&&(a.location===void 0||d.is(a.location))&&(a.command===void 0||O.is(a.command))}u.is=y})(ve||(e.InlayHintLabelPart=ve={}));var he;(function(u){function m(f,a,w){var C={position:f,label:a};return w!==void 0&&(C.kind=w),C}u.create=m;function y(f){var a=f;return E.objectLiteral(a)&&s.is(a.position)&&(E.string(a.label)||E.typedArray(a.label,ve.is))&&(a.kind===void 0||le.is(a.kind))&&a.textEdits===void 0||E.typedArray(a.textEdits,T.is)&&(a.tooltip===void 0||E.string(a.tooltip)||ne.is(a.tooltip))&&(a.paddingLeft===void 0||E.boolean(a.paddingLeft))&&(a.paddingRight===void 0||E.boolean(a.paddingRight))}u.is=y})(he||(e.InlayHint=he={}));var Oe;(function(u){function m(y){return{kind:"snippet",value:y}}u.createSnippet=m})(Oe||(e.StringValue=Oe={}));var je;(function(u){function m(y,f,a,w){return{insertText:y,filterText:f,range:a,command:w}}u.create=m})(je||(e.InlineCompletionItem=je={}));var ut;(function(u){function m(y){return{items:y}}u.create=m})(ut||(e.InlineCompletionList=ut={}));var Nn;(function(u){u.Invoked=0,u.Automatic=1})(Nn||(e.InlineCompletionTriggerKind=Nn={}));var Bc;(function(u){function m(y,f){return{range:y,text:f}}u.create=m})(Bc||(e.SelectedCompletionInfo=Bc={}));var Mc;(function(u){function m(y,f){return{triggerKind:y,selectedCompletionInfo:f}}u.create=m})(Mc||(e.InlineCompletionContext=Mc={}));var Tc;(function(u){function m(y){var f=y;return E.objectLiteral(f)&&n.is(f.uri)&&E.string(f.name)}u.is=m})(Tc||(e.WorkspaceFolder=Tc={})),e.EOL=[`
|
|
53
|
+
`,`\r
|
|
54
|
+
`,"\r"];var xc;(function(u){function m(w,C,ie,Fe){return new jp(w,C,ie,Fe)}u.create=m;function y(w){var C=w;return!!(E.defined(C)&&E.string(C.uri)&&(E.undefined(C.languageId)||E.string(C.languageId))&&E.uinteger(C.lineCount)&&E.func(C.getText)&&E.func(C.positionAt)&&E.func(C.offsetAt))}u.is=y;function f(w,C){for(var ie=w.getText(),Fe=a(C,function(Rr,qn){var Oc=Rr.range.start.line-qn.range.start.line;return Oc===0?Rr.range.start.character-qn.range.start.character:Oc}),we=ie.length,Et=Fe.length-1;Et>=0;Et--){var Dt=Fe[Et],Nt=w.offsetAt(Dt.range.start),de=w.offsetAt(Dt.range.end);if(de<=we)ie=ie.substring(0,Nt)+Dt.newText+ie.substring(de,ie.length);else throw new Error("Overlapping edit");we=Nt}return ie}u.applyEdits=f;function a(w,C){if(w.length<=1)return w;var ie=w.length/2|0,Fe=w.slice(0,ie),we=w.slice(ie);a(Fe,C),a(we,C);for(var Et=0,Dt=0,Nt=0;Et<Fe.length&&Dt<we.length;){var de=C(Fe[Et],we[Dt]);de<=0?w[Nt++]=Fe[Et++]:w[Nt++]=we[Dt++]}for(;Et<Fe.length;)w[Nt++]=Fe[Et++];for(;Dt<we.length;)w[Nt++]=we[Dt++];return w}})(xc||(e.TextDocument=xc={}));var jp=(function(){function u(m,y,f,a){this._uri=m,this._languageId=y,this._version=f,this._content=a,this._lineOffsets=void 0}return Object.defineProperty(u.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),u.prototype.getText=function(m){if(m){var y=this.offsetAt(m.start),f=this.offsetAt(m.end);return this._content.substring(y,f)}return this._content},u.prototype.update=function(m,y){this._content=m.text,this._version=y,this._lineOffsets=void 0},u.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var m=[],y=this._content,f=!0,a=0;a<y.length;a++){f&&(m.push(a),f=!1);var w=y.charAt(a);f=w==="\r"||w===`
|
|
55
|
+
`,w==="\r"&&a+1<y.length&&y.charAt(a+1)===`
|
|
56
|
+
`&&a++}f&&y.length>0&&m.push(y.length),this._lineOffsets=m}return this._lineOffsets},u.prototype.positionAt=function(m){m=Math.max(Math.min(m,this._content.length),0);var y=this.getLineOffsets(),f=0,a=y.length;if(a===0)return s.create(0,m);for(;f<a;){var w=Math.floor((f+a)/2);y[w]>m?a=w:f=w+1}var C=f-1;return s.create(C,m-y[C])},u.prototype.offsetAt=function(m){var y=this.getLineOffsets();if(m.line>=y.length)return this._content.length;if(m.line<0)return 0;var f=y[m.line],a=m.line+1<y.length?y[m.line+1]:this._content.length;return Math.max(Math.min(f+m.character,a),f)},Object.defineProperty(u.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),u})(),E;(function(u){var m=Object.prototype.toString;function y(de){return typeof de<"u"}u.defined=y;function f(de){return typeof de>"u"}u.undefined=f;function a(de){return de===!0||de===!1}u.boolean=a;function w(de){return m.call(de)==="[object String]"}u.string=w;function C(de){return m.call(de)==="[object Number]"}u.number=C;function ie(de,Rr,qn){return m.call(de)==="[object Number]"&&Rr<=de&&de<=qn}u.numberRange=ie;function Fe(de){return m.call(de)==="[object Number]"&&-2147483648<=de&&de<=2147483647}u.integer=Fe;function we(de){return m.call(de)==="[object Number]"&&0<=de&&de<=2147483647}u.uinteger=we;function Et(de){return m.call(de)==="[object Function]"}u.func=Et;function Dt(de){return de!==null&&typeof de=="object"}u.objectLiteral=Dt;function Nt(de,Rr){return Array.isArray(de)&&de.every(Rr)}u.typedArray=Nt})(E||(E={}))})});var Me=B(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.ProtocolNotificationType=st.ProtocolNotificationType0=st.ProtocolRequestType=st.ProtocolRequestType0=st.RegistrationType=st.MessageDirection=void 0;var Qr=br(),jf;(function(r){r.clientToServer="clientToServer",r.serverToClient="serverToClient",r.both="both"})(jf||(st.MessageDirection=jf={}));var pc=class{constructor(e){this.method=e}};st.RegistrationType=pc;var mc=class extends Qr.RequestType0{constructor(e){super(e)}};st.ProtocolRequestType0=mc;var Ac=class extends Qr.RequestType{constructor(e){super(e,Qr.ParameterStructures.byName)}};st.ProtocolRequestType=Ac;var yc=class extends Qr.NotificationType0{constructor(e){super(e)}};st.ProtocolNotificationType0=yc;var bc=class extends Qr.NotificationType{constructor(e){super(e,Qr.ParameterStructures.byName)}};st.ProtocolNotificationType=bc});var eo=B(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.objectLiteral=Ue.typedArray=Ue.stringArray=Ue.array=Ue.func=Ue.error=Ue.number=Ue.string=Ue.boolean=void 0;function jv(r){return r===!0||r===!1}Ue.boolean=jv;function Qf(r){return typeof r=="string"||r instanceof String}Ue.string=Qf;function Qv(r){return typeof r=="number"||r instanceof Number}Ue.number=Qv;function _v(r){return r instanceof Error}Ue.error=_v;function Gv(r){return typeof r=="function"}Ue.func=Gv;function _f(r){return Array.isArray(r)}Ue.array=_f;function Kv(r){return _f(r)&&r.every(e=>Qf(e))}Ue.stringArray=Kv;function Yv(r,e){return Array.isArray(r)&&r.every(e)}Ue.typedArray=Yv;function Vv(r){return r!==null&&typeof r=="object"}Ue.objectLiteral=Vv});var Yf=B(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.ImplementationRequest=void 0;var Gf=Me(),Kf;(function(r){r.method="textDocument/implementation",r.messageDirection=Gf.MessageDirection.clientToServer,r.type=new Gf.ProtocolRequestType(r.method)})(Kf||(to.ImplementationRequest=Kf={}))});var Hf=B(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.TypeDefinitionRequest=void 0;var Vf=Me(),Wf;(function(r){r.method="textDocument/typeDefinition",r.messageDirection=Vf.MessageDirection.clientToServer,r.type=new Vf.ProtocolRequestType(r.method)})(Wf||(ro.TypeDefinitionRequest=Wf={}))});var Xf=B(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.DidChangeWorkspaceFoldersNotification=_r.WorkspaceFoldersRequest=void 0;var no=Me(),Jf;(function(r){r.method="workspace/workspaceFolders",r.messageDirection=no.MessageDirection.serverToClient,r.type=new no.ProtocolRequestType0(r.method)})(Jf||(_r.WorkspaceFoldersRequest=Jf={}));var Zf;(function(r){r.method="workspace/didChangeWorkspaceFolders",r.messageDirection=no.MessageDirection.clientToServer,r.type=new no.ProtocolNotificationType(r.method)})(Zf||(_r.DidChangeWorkspaceFoldersNotification=Zf={}))});var eh=B(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.ConfigurationRequest=void 0;var zf=Me(),$f;(function(r){r.method="workspace/configuration",r.messageDirection=zf.MessageDirection.serverToClient,r.type=new zf.ProtocolRequestType(r.method)})($f||(io.ConfigurationRequest=$f={}))});var nh=B(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.ColorPresentationRequest=Gr.DocumentColorRequest=void 0;var oo=Me(),th;(function(r){r.method="textDocument/documentColor",r.messageDirection=oo.MessageDirection.clientToServer,r.type=new oo.ProtocolRequestType(r.method)})(th||(Gr.DocumentColorRequest=th={}));var rh;(function(r){r.method="textDocument/colorPresentation",r.messageDirection=oo.MessageDirection.clientToServer,r.type=new oo.ProtocolRequestType(r.method)})(rh||(Gr.ColorPresentationRequest=rh={}))});var sh=B(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.FoldingRangeRefreshRequest=Kr.FoldingRangeRequest=void 0;var so=Me(),ih;(function(r){r.method="textDocument/foldingRange",r.messageDirection=so.MessageDirection.clientToServer,r.type=new so.ProtocolRequestType(r.method)})(ih||(Kr.FoldingRangeRequest=ih={}));var oh;(function(r){r.method="workspace/foldingRange/refresh",r.messageDirection=so.MessageDirection.serverToClient,r.type=new so.ProtocolRequestType0(r.method)})(oh||(Kr.FoldingRangeRefreshRequest=oh={}))});var uh=B(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.DeclarationRequest=void 0;var ah=Me(),ch;(function(r){r.method="textDocument/declaration",r.messageDirection=ah.MessageDirection.clientToServer,r.type=new ah.ProtocolRequestType(r.method)})(ch||(ao.DeclarationRequest=ch={}))});var fh=B(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.SelectionRangeRequest=void 0;var lh=Me(),dh;(function(r){r.method="textDocument/selectionRange",r.messageDirection=lh.MessageDirection.clientToServer,r.type=new lh.ProtocolRequestType(r.method)})(dh||(co.SelectionRangeRequest=dh={}))});var mh=B(ir=>{"use strict";Object.defineProperty(ir,"__esModule",{value:!0});ir.WorkDoneProgressCancelNotification=ir.WorkDoneProgressCreateRequest=ir.WorkDoneProgress=void 0;var Wv=br(),uo=Me(),hh;(function(r){r.type=new Wv.ProgressType;function e(t){return t===r.type}r.is=e})(hh||(ir.WorkDoneProgress=hh={}));var gh;(function(r){r.method="window/workDoneProgress/create",r.messageDirection=uo.MessageDirection.serverToClient,r.type=new uo.ProtocolRequestType(r.method)})(gh||(ir.WorkDoneProgressCreateRequest=gh={}));var ph;(function(r){r.method="window/workDoneProgress/cancel",r.messageDirection=uo.MessageDirection.clientToServer,r.type=new uo.ProtocolNotificationType(r.method)})(ph||(ir.WorkDoneProgressCancelNotification=ph={}))});var vh=B(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});or.CallHierarchyOutgoingCallsRequest=or.CallHierarchyIncomingCallsRequest=or.CallHierarchyPrepareRequest=void 0;var Yr=Me(),Ah;(function(r){r.method="textDocument/prepareCallHierarchy",r.messageDirection=Yr.MessageDirection.clientToServer,r.type=new Yr.ProtocolRequestType(r.method)})(Ah||(or.CallHierarchyPrepareRequest=Ah={}));var yh;(function(r){r.method="callHierarchy/incomingCalls",r.messageDirection=Yr.MessageDirection.clientToServer,r.type=new Yr.ProtocolRequestType(r.method)})(yh||(or.CallHierarchyIncomingCallsRequest=yh={}));var bh;(function(r){r.method="callHierarchy/outgoingCalls",r.messageDirection=Yr.MessageDirection.clientToServer,r.type=new Yr.ProtocolRequestType(r.method)})(bh||(or.CallHierarchyOutgoingCallsRequest=bh={}))});var Sh=B(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.SemanticTokensRefreshRequest=at.SemanticTokensRangeRequest=at.SemanticTokensDeltaRequest=at.SemanticTokensRequest=at.SemanticTokensRegistrationType=at.TokenFormat=void 0;var Gt=Me(),wh;(function(r){r.Relative="relative"})(wh||(at.TokenFormat=wh={}));var Rn;(function(r){r.method="textDocument/semanticTokens",r.type=new Gt.RegistrationType(r.method)})(Rn||(at.SemanticTokensRegistrationType=Rn={}));var Eh;(function(r){r.method="textDocument/semanticTokens/full",r.messageDirection=Gt.MessageDirection.clientToServer,r.type=new Gt.ProtocolRequestType(r.method),r.registrationMethod=Rn.method})(Eh||(at.SemanticTokensRequest=Eh={}));var Dh;(function(r){r.method="textDocument/semanticTokens/full/delta",r.messageDirection=Gt.MessageDirection.clientToServer,r.type=new Gt.ProtocolRequestType(r.method),r.registrationMethod=Rn.method})(Dh||(at.SemanticTokensDeltaRequest=Dh={}));var Rh;(function(r){r.method="textDocument/semanticTokens/range",r.messageDirection=Gt.MessageDirection.clientToServer,r.type=new Gt.ProtocolRequestType(r.method),r.registrationMethod=Rn.method})(Rh||(at.SemanticTokensRangeRequest=Rh={}));var Ph;(function(r){r.method="workspace/semanticTokens/refresh",r.messageDirection=Gt.MessageDirection.serverToClient,r.type=new Gt.ProtocolRequestType0(r.method)})(Ph||(at.SemanticTokensRefreshRequest=Ph={}))});var Ch=B(lo=>{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.ShowDocumentRequest=void 0;var Ih=Me(),Lh;(function(r){r.method="window/showDocument",r.messageDirection=Ih.MessageDirection.serverToClient,r.type=new Ih.ProtocolRequestType(r.method)})(Lh||(lo.ShowDocumentRequest=Lh={}))});var Mh=B(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.LinkedEditingRangeRequest=void 0;var kh=Me(),Bh;(function(r){r.method="textDocument/linkedEditingRange",r.messageDirection=kh.MessageDirection.clientToServer,r.type=new kh.ProtocolRequestType(r.method)})(Bh||(fo.LinkedEditingRangeRequest=Bh={}))});var jh=B(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.WillDeleteFilesRequest=Ze.DidDeleteFilesNotification=Ze.DidRenameFilesNotification=Ze.WillRenameFilesRequest=Ze.DidCreateFilesNotification=Ze.WillCreateFilesRequest=Ze.FileOperationPatternKind=void 0;var bt=Me(),Th;(function(r){r.file="file",r.folder="folder"})(Th||(Ze.FileOperationPatternKind=Th={}));var xh;(function(r){r.method="workspace/willCreateFiles",r.messageDirection=bt.MessageDirection.clientToServer,r.type=new bt.ProtocolRequestType(r.method)})(xh||(Ze.WillCreateFilesRequest=xh={}));var Oh;(function(r){r.method="workspace/didCreateFiles",r.messageDirection=bt.MessageDirection.clientToServer,r.type=new bt.ProtocolNotificationType(r.method)})(Oh||(Ze.DidCreateFilesNotification=Oh={}));var Fh;(function(r){r.method="workspace/willRenameFiles",r.messageDirection=bt.MessageDirection.clientToServer,r.type=new bt.ProtocolRequestType(r.method)})(Fh||(Ze.WillRenameFilesRequest=Fh={}));var Nh;(function(r){r.method="workspace/didRenameFiles",r.messageDirection=bt.MessageDirection.clientToServer,r.type=new bt.ProtocolNotificationType(r.method)})(Nh||(Ze.DidRenameFilesNotification=Nh={}));var qh;(function(r){r.method="workspace/didDeleteFiles",r.messageDirection=bt.MessageDirection.clientToServer,r.type=new bt.ProtocolNotificationType(r.method)})(qh||(Ze.DidDeleteFilesNotification=qh={}));var Uh;(function(r){r.method="workspace/willDeleteFiles",r.messageDirection=bt.MessageDirection.clientToServer,r.type=new bt.ProtocolRequestType(r.method)})(Uh||(Ze.WillDeleteFilesRequest=Uh={}))});var Yh=B(sr=>{"use strict";Object.defineProperty(sr,"__esModule",{value:!0});sr.MonikerRequest=sr.MonikerKind=sr.UniquenessLevel=void 0;var Qh=Me(),_h;(function(r){r.document="document",r.project="project",r.group="group",r.scheme="scheme",r.global="global"})(_h||(sr.UniquenessLevel=_h={}));var Gh;(function(r){r.$import="import",r.$export="export",r.local="local"})(Gh||(sr.MonikerKind=Gh={}));var Kh;(function(r){r.method="textDocument/moniker",r.messageDirection=Qh.MessageDirection.clientToServer,r.type=new Qh.ProtocolRequestType(r.method)})(Kh||(sr.MonikerRequest=Kh={}))});var Jh=B(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.TypeHierarchySubtypesRequest=ar.TypeHierarchySupertypesRequest=ar.TypeHierarchyPrepareRequest=void 0;var Vr=Me(),Vh;(function(r){r.method="textDocument/prepareTypeHierarchy",r.messageDirection=Vr.MessageDirection.clientToServer,r.type=new Vr.ProtocolRequestType(r.method)})(Vh||(ar.TypeHierarchyPrepareRequest=Vh={}));var Wh;(function(r){r.method="typeHierarchy/supertypes",r.messageDirection=Vr.MessageDirection.clientToServer,r.type=new Vr.ProtocolRequestType(r.method)})(Wh||(ar.TypeHierarchySupertypesRequest=Wh={}));var Hh;(function(r){r.method="typeHierarchy/subtypes",r.messageDirection=Vr.MessageDirection.clientToServer,r.type=new Vr.ProtocolRequestType(r.method)})(Hh||(ar.TypeHierarchySubtypesRequest=Hh={}))});var zh=B(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.InlineValueRefreshRequest=Wr.InlineValueRequest=void 0;var ho=Me(),Zh;(function(r){r.method="textDocument/inlineValue",r.messageDirection=ho.MessageDirection.clientToServer,r.type=new ho.ProtocolRequestType(r.method)})(Zh||(Wr.InlineValueRequest=Zh={}));var Xh;(function(r){r.method="workspace/inlineValue/refresh",r.messageDirection=ho.MessageDirection.serverToClient,r.type=new ho.ProtocolRequestType0(r.method)})(Xh||(Wr.InlineValueRefreshRequest=Xh={}))});var rg=B(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});cr.InlayHintRefreshRequest=cr.InlayHintResolveRequest=cr.InlayHintRequest=void 0;var Hr=Me(),$h;(function(r){r.method="textDocument/inlayHint",r.messageDirection=Hr.MessageDirection.clientToServer,r.type=new Hr.ProtocolRequestType(r.method)})($h||(cr.InlayHintRequest=$h={}));var eg;(function(r){r.method="inlayHint/resolve",r.messageDirection=Hr.MessageDirection.clientToServer,r.type=new Hr.ProtocolRequestType(r.method)})(eg||(cr.InlayHintResolveRequest=eg={}));var tg;(function(r){r.method="workspace/inlayHint/refresh",r.messageDirection=Hr.MessageDirection.serverToClient,r.type=new Hr.ProtocolRequestType0(r.method)})(tg||(cr.InlayHintRefreshRequest=tg={}))});var ug=B(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.DiagnosticRefreshRequest=vt.WorkspaceDiagnosticRequest=vt.DocumentDiagnosticRequest=vt.DocumentDiagnosticReportKind=vt.DiagnosticServerCancellationData=void 0;var cg=br(),Hv=eo(),Jr=Me(),ng;(function(r){function e(t){let n=t;return n&&Hv.boolean(n.retriggerRequest)}r.is=e})(ng||(vt.DiagnosticServerCancellationData=ng={}));var ig;(function(r){r.Full="full",r.Unchanged="unchanged"})(ig||(vt.DocumentDiagnosticReportKind=ig={}));var og;(function(r){r.method="textDocument/diagnostic",r.messageDirection=Jr.MessageDirection.clientToServer,r.type=new Jr.ProtocolRequestType(r.method),r.partialResult=new cg.ProgressType})(og||(vt.DocumentDiagnosticRequest=og={}));var sg;(function(r){r.method="workspace/diagnostic",r.messageDirection=Jr.MessageDirection.clientToServer,r.type=new Jr.ProtocolRequestType(r.method),r.partialResult=new cg.ProgressType})(sg||(vt.WorkspaceDiagnosticRequest=sg={}));var ag;(function(r){r.method="workspace/diagnostic/refresh",r.messageDirection=Jr.MessageDirection.serverToClient,r.type=new Jr.ProtocolRequestType0(r.method)})(ag||(vt.DiagnosticRefreshRequest=ag={}))});var mg=B(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.DidCloseNotebookDocumentNotification=Ne.DidSaveNotebookDocumentNotification=Ne.DidChangeNotebookDocumentNotification=Ne.NotebookCellArrayChange=Ne.DidOpenNotebookDocumentNotification=Ne.NotebookDocumentSyncRegistrationType=Ne.NotebookDocument=Ne.NotebookCell=Ne.ExecutionSummary=Ne.NotebookCellKind=void 0;var Pn=$i(),St=eo(),Mt=Me(),vc;(function(r){r.Markup=1,r.Code=2;function e(t){return t===1||t===2}r.is=e})(vc||(Ne.NotebookCellKind=vc={}));var wc;(function(r){function e(i,o){let s={executionOrder:i};return(o===!0||o===!1)&&(s.success=o),s}r.create=e;function t(i){let o=i;return St.objectLiteral(o)&&Pn.uinteger.is(o.executionOrder)&&(o.success===void 0||St.boolean(o.success))}r.is=t;function n(i,o){return i===o?!0:i==null||o===null||o===void 0?!1:i.executionOrder===o.executionOrder&&i.success===o.success}r.equals=n})(wc||(Ne.ExecutionSummary=wc={}));var go;(function(r){function e(o,s){return{kind:o,document:s}}r.create=e;function t(o){let s=o;return St.objectLiteral(s)&&vc.is(s.kind)&&Pn.DocumentUri.is(s.document)&&(s.metadata===void 0||St.objectLiteral(s.metadata))}r.is=t;function n(o,s){let c=new Set;return o.document!==s.document&&c.add("document"),o.kind!==s.kind&&c.add("kind"),o.executionSummary!==s.executionSummary&&c.add("executionSummary"),(o.metadata!==void 0||s.metadata!==void 0)&&!i(o.metadata,s.metadata)&&c.add("metadata"),(o.executionSummary!==void 0||s.executionSummary!==void 0)&&!wc.equals(o.executionSummary,s.executionSummary)&&c.add("executionSummary"),c}r.diff=n;function i(o,s){if(o===s)return!0;if(o==null||s===null||s===void 0||typeof o!=typeof s||typeof o!="object")return!1;let c=Array.isArray(o),d=Array.isArray(s);if(c!==d)return!1;if(c&&d){if(o.length!==s.length)return!1;for(let l=0;l<o.length;l++)if(!i(o[l],s[l]))return!1}if(St.objectLiteral(o)&&St.objectLiteral(s)){let l=Object.keys(o),g=Object.keys(s);if(l.length!==g.length||(l.sort(),g.sort(),!i(l,g)))return!1;for(let b=0;b<l.length;b++){let P=l[b];if(!i(o[P],s[P]))return!1}}return!0}})(go||(Ne.NotebookCell=go={}));var lg;(function(r){function e(n,i,o,s){return{uri:n,notebookType:i,version:o,cells:s}}r.create=e;function t(n){let i=n;return St.objectLiteral(i)&&St.string(i.uri)&&Pn.integer.is(i.version)&&St.typedArray(i.cells,go.is)}r.is=t})(lg||(Ne.NotebookDocument=lg={}));var Zr;(function(r){r.method="notebookDocument/sync",r.messageDirection=Mt.MessageDirection.clientToServer,r.type=new Mt.RegistrationType(r.method)})(Zr||(Ne.NotebookDocumentSyncRegistrationType=Zr={}));var dg;(function(r){r.method="notebookDocument/didOpen",r.messageDirection=Mt.MessageDirection.clientToServer,r.type=new Mt.ProtocolNotificationType(r.method),r.registrationMethod=Zr.method})(dg||(Ne.DidOpenNotebookDocumentNotification=dg={}));var fg;(function(r){function e(n){let i=n;return St.objectLiteral(i)&&Pn.uinteger.is(i.start)&&Pn.uinteger.is(i.deleteCount)&&(i.cells===void 0||St.typedArray(i.cells,go.is))}r.is=e;function t(n,i,o){let s={start:n,deleteCount:i};return o!==void 0&&(s.cells=o),s}r.create=t})(fg||(Ne.NotebookCellArrayChange=fg={}));var hg;(function(r){r.method="notebookDocument/didChange",r.messageDirection=Mt.MessageDirection.clientToServer,r.type=new Mt.ProtocolNotificationType(r.method),r.registrationMethod=Zr.method})(hg||(Ne.DidChangeNotebookDocumentNotification=hg={}));var gg;(function(r){r.method="notebookDocument/didSave",r.messageDirection=Mt.MessageDirection.clientToServer,r.type=new Mt.ProtocolNotificationType(r.method),r.registrationMethod=Zr.method})(gg||(Ne.DidSaveNotebookDocumentNotification=gg={}));var pg;(function(r){r.method="notebookDocument/didClose",r.messageDirection=Mt.MessageDirection.clientToServer,r.type=new Mt.ProtocolNotificationType(r.method),r.registrationMethod=Zr.method})(pg||(Ne.DidCloseNotebookDocumentNotification=pg={}))});var bg=B(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.InlineCompletionRequest=void 0;var Ag=Me(),yg;(function(r){r.method="textDocument/inlineCompletion",r.messageDirection=Ag.MessageDirection.clientToServer,r.type=new Ag.ProtocolRequestType(r.method)})(yg||(po.InlineCompletionRequest=yg={}))});var Mp=B(h=>{"use strict";Object.defineProperty(h,"__esModule",{value:!0});h.WorkspaceSymbolRequest=h.CodeActionResolveRequest=h.CodeActionRequest=h.DocumentSymbolRequest=h.DocumentHighlightRequest=h.ReferencesRequest=h.DefinitionRequest=h.SignatureHelpRequest=h.SignatureHelpTriggerKind=h.HoverRequest=h.CompletionResolveRequest=h.CompletionRequest=h.CompletionTriggerKind=h.PublishDiagnosticsNotification=h.WatchKind=h.RelativePattern=h.FileChangeType=h.DidChangeWatchedFilesNotification=h.WillSaveTextDocumentWaitUntilRequest=h.WillSaveTextDocumentNotification=h.TextDocumentSaveReason=h.DidSaveTextDocumentNotification=h.DidCloseTextDocumentNotification=h.DidChangeTextDocumentNotification=h.TextDocumentContentChangeEvent=h.DidOpenTextDocumentNotification=h.TextDocumentSyncKind=h.TelemetryEventNotification=h.LogMessageNotification=h.ShowMessageRequest=h.ShowMessageNotification=h.MessageType=h.DidChangeConfigurationNotification=h.ExitNotification=h.ShutdownRequest=h.InitializedNotification=h.InitializeErrorCodes=h.InitializeRequest=h.WorkDoneProgressOptions=h.TextDocumentRegistrationOptions=h.StaticRegistrationOptions=h.PositionEncodingKind=h.FailureHandlingKind=h.ResourceOperationKind=h.UnregistrationRequest=h.RegistrationRequest=h.DocumentSelector=h.NotebookCellTextDocumentFilter=h.NotebookDocumentFilter=h.TextDocumentFilter=void 0;h.MonikerRequest=h.MonikerKind=h.UniquenessLevel=h.WillDeleteFilesRequest=h.DidDeleteFilesNotification=h.WillRenameFilesRequest=h.DidRenameFilesNotification=h.WillCreateFilesRequest=h.DidCreateFilesNotification=h.FileOperationPatternKind=h.LinkedEditingRangeRequest=h.ShowDocumentRequest=h.SemanticTokensRegistrationType=h.SemanticTokensRefreshRequest=h.SemanticTokensRangeRequest=h.SemanticTokensDeltaRequest=h.SemanticTokensRequest=h.TokenFormat=h.CallHierarchyPrepareRequest=h.CallHierarchyOutgoingCallsRequest=h.CallHierarchyIncomingCallsRequest=h.WorkDoneProgressCancelNotification=h.WorkDoneProgressCreateRequest=h.WorkDoneProgress=h.SelectionRangeRequest=h.DeclarationRequest=h.FoldingRangeRefreshRequest=h.FoldingRangeRequest=h.ColorPresentationRequest=h.DocumentColorRequest=h.ConfigurationRequest=h.DidChangeWorkspaceFoldersNotification=h.WorkspaceFoldersRequest=h.TypeDefinitionRequest=h.ImplementationRequest=h.ApplyWorkspaceEditRequest=h.ExecuteCommandRequest=h.PrepareRenameRequest=h.RenameRequest=h.PrepareSupportDefaultBehavior=h.DocumentOnTypeFormattingRequest=h.DocumentRangesFormattingRequest=h.DocumentRangeFormattingRequest=h.DocumentFormattingRequest=h.DocumentLinkResolveRequest=h.DocumentLinkRequest=h.CodeLensRefreshRequest=h.CodeLensResolveRequest=h.CodeLensRequest=h.WorkspaceSymbolResolveRequest=void 0;h.InlineCompletionRequest=h.DidCloseNotebookDocumentNotification=h.DidSaveNotebookDocumentNotification=h.DidChangeNotebookDocumentNotification=h.NotebookCellArrayChange=h.DidOpenNotebookDocumentNotification=h.NotebookDocumentSyncRegistrationType=h.NotebookDocument=h.NotebookCell=h.ExecutionSummary=h.NotebookCellKind=h.DiagnosticRefreshRequest=h.WorkspaceDiagnosticRequest=h.DocumentDiagnosticRequest=h.DocumentDiagnosticReportKind=h.DiagnosticServerCancellationData=h.InlayHintRefreshRequest=h.InlayHintResolveRequest=h.InlayHintRequest=h.InlineValueRefreshRequest=h.InlineValueRequest=h.TypeHierarchySupertypesRequest=h.TypeHierarchySubtypesRequest=h.TypeHierarchyPrepareRequest=void 0;var N=Me(),vg=$i(),Qe=eo(),Jv=Yf();Object.defineProperty(h,"ImplementationRequest",{enumerable:!0,get:function(){return Jv.ImplementationRequest}});var Zv=Hf();Object.defineProperty(h,"TypeDefinitionRequest",{enumerable:!0,get:function(){return Zv.TypeDefinitionRequest}});var Lp=Xf();Object.defineProperty(h,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Lp.WorkspaceFoldersRequest}});Object.defineProperty(h,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Lp.DidChangeWorkspaceFoldersNotification}});var Xv=eh();Object.defineProperty(h,"ConfigurationRequest",{enumerable:!0,get:function(){return Xv.ConfigurationRequest}});var Cp=nh();Object.defineProperty(h,"DocumentColorRequest",{enumerable:!0,get:function(){return Cp.DocumentColorRequest}});Object.defineProperty(h,"ColorPresentationRequest",{enumerable:!0,get:function(){return Cp.ColorPresentationRequest}});var kp=sh();Object.defineProperty(h,"FoldingRangeRequest",{enumerable:!0,get:function(){return kp.FoldingRangeRequest}});Object.defineProperty(h,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return kp.FoldingRangeRefreshRequest}});var zv=uh();Object.defineProperty(h,"DeclarationRequest",{enumerable:!0,get:function(){return zv.DeclarationRequest}});var $v=fh();Object.defineProperty(h,"SelectionRangeRequest",{enumerable:!0,get:function(){return $v.SelectionRangeRequest}});var Sc=mh();Object.defineProperty(h,"WorkDoneProgress",{enumerable:!0,get:function(){return Sc.WorkDoneProgress}});Object.defineProperty(h,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return Sc.WorkDoneProgressCreateRequest}});Object.defineProperty(h,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return Sc.WorkDoneProgressCancelNotification}});var Ic=vh();Object.defineProperty(h,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return Ic.CallHierarchyIncomingCallsRequest}});Object.defineProperty(h,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return Ic.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(h,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return Ic.CallHierarchyPrepareRequest}});var Xr=Sh();Object.defineProperty(h,"TokenFormat",{enumerable:!0,get:function(){return Xr.TokenFormat}});Object.defineProperty(h,"SemanticTokensRequest",{enumerable:!0,get:function(){return Xr.SemanticTokensRequest}});Object.defineProperty(h,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Xr.SemanticTokensDeltaRequest}});Object.defineProperty(h,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Xr.SemanticTokensRangeRequest}});Object.defineProperty(h,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Xr.SemanticTokensRefreshRequest}});Object.defineProperty(h,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Xr.SemanticTokensRegistrationType}});var ew=Ch();Object.defineProperty(h,"ShowDocumentRequest",{enumerable:!0,get:function(){return ew.ShowDocumentRequest}});var tw=Mh();Object.defineProperty(h,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return tw.LinkedEditingRangeRequest}});var vr=jh();Object.defineProperty(h,"FileOperationPatternKind",{enumerable:!0,get:function(){return vr.FileOperationPatternKind}});Object.defineProperty(h,"DidCreateFilesNotification",{enumerable:!0,get:function(){return vr.DidCreateFilesNotification}});Object.defineProperty(h,"WillCreateFilesRequest",{enumerable:!0,get:function(){return vr.WillCreateFilesRequest}});Object.defineProperty(h,"DidRenameFilesNotification",{enumerable:!0,get:function(){return vr.DidRenameFilesNotification}});Object.defineProperty(h,"WillRenameFilesRequest",{enumerable:!0,get:function(){return vr.WillRenameFilesRequest}});Object.defineProperty(h,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return vr.DidDeleteFilesNotification}});Object.defineProperty(h,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return vr.WillDeleteFilesRequest}});var Lc=Yh();Object.defineProperty(h,"UniquenessLevel",{enumerable:!0,get:function(){return Lc.UniquenessLevel}});Object.defineProperty(h,"MonikerKind",{enumerable:!0,get:function(){return Lc.MonikerKind}});Object.defineProperty(h,"MonikerRequest",{enumerable:!0,get:function(){return Lc.MonikerRequest}});var Cc=Jh();Object.defineProperty(h,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Cc.TypeHierarchyPrepareRequest}});Object.defineProperty(h,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Cc.TypeHierarchySubtypesRequest}});Object.defineProperty(h,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Cc.TypeHierarchySupertypesRequest}});var Bp=zh();Object.defineProperty(h,"InlineValueRequest",{enumerable:!0,get:function(){return Bp.InlineValueRequest}});Object.defineProperty(h,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Bp.InlineValueRefreshRequest}});var kc=rg();Object.defineProperty(h,"InlayHintRequest",{enumerable:!0,get:function(){return kc.InlayHintRequest}});Object.defineProperty(h,"InlayHintResolveRequest",{enumerable:!0,get:function(){return kc.InlayHintResolveRequest}});Object.defineProperty(h,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return kc.InlayHintRefreshRequest}});var Sn=ug();Object.defineProperty(h,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Sn.DiagnosticServerCancellationData}});Object.defineProperty(h,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Sn.DocumentDiagnosticReportKind}});Object.defineProperty(h,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Sn.DocumentDiagnosticRequest}});Object.defineProperty(h,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Sn.WorkspaceDiagnosticRequest}});Object.defineProperty(h,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Sn.DiagnosticRefreshRequest}});var Tt=mg();Object.defineProperty(h,"NotebookCellKind",{enumerable:!0,get:function(){return Tt.NotebookCellKind}});Object.defineProperty(h,"ExecutionSummary",{enumerable:!0,get:function(){return Tt.ExecutionSummary}});Object.defineProperty(h,"NotebookCell",{enumerable:!0,get:function(){return Tt.NotebookCell}});Object.defineProperty(h,"NotebookDocument",{enumerable:!0,get:function(){return Tt.NotebookDocument}});Object.defineProperty(h,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return Tt.NotebookDocumentSyncRegistrationType}});Object.defineProperty(h,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return Tt.DidOpenNotebookDocumentNotification}});Object.defineProperty(h,"NotebookCellArrayChange",{enumerable:!0,get:function(){return Tt.NotebookCellArrayChange}});Object.defineProperty(h,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return Tt.DidChangeNotebookDocumentNotification}});Object.defineProperty(h,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return Tt.DidSaveNotebookDocumentNotification}});Object.defineProperty(h,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return Tt.DidCloseNotebookDocumentNotification}});var rw=bg();Object.defineProperty(h,"InlineCompletionRequest",{enumerable:!0,get:function(){return rw.InlineCompletionRequest}});var Ec;(function(r){function e(t){let n=t;return Qe.string(n)||Qe.string(n.language)||Qe.string(n.scheme)||Qe.string(n.pattern)}r.is=e})(Ec||(h.TextDocumentFilter=Ec={}));var Dc;(function(r){function e(t){let n=t;return Qe.objectLiteral(n)&&(Qe.string(n.notebookType)||Qe.string(n.scheme)||Qe.string(n.pattern))}r.is=e})(Dc||(h.NotebookDocumentFilter=Dc={}));var Rc;(function(r){function e(t){let n=t;return Qe.objectLiteral(n)&&(Qe.string(n.notebook)||Dc.is(n.notebook))&&(n.language===void 0||Qe.string(n.language))}r.is=e})(Rc||(h.NotebookCellTextDocumentFilter=Rc={}));var Pc;(function(r){function e(t){if(!Array.isArray(t))return!1;for(let n of t)if(!Qe.string(n)&&!Ec.is(n)&&!Rc.is(n))return!1;return!0}r.is=e})(Pc||(h.DocumentSelector=Pc={}));var wg;(function(r){r.method="client/registerCapability",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolRequestType(r.method)})(wg||(h.RegistrationRequest=wg={}));var Eg;(function(r){r.method="client/unregisterCapability",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolRequestType(r.method)})(Eg||(h.UnregistrationRequest=Eg={}));var Dg;(function(r){r.Create="create",r.Rename="rename",r.Delete="delete"})(Dg||(h.ResourceOperationKind=Dg={}));var Rg;(function(r){r.Abort="abort",r.Transactional="transactional",r.TextOnlyTransactional="textOnlyTransactional",r.Undo="undo"})(Rg||(h.FailureHandlingKind=Rg={}));var Pg;(function(r){r.UTF8="utf-8",r.UTF16="utf-16",r.UTF32="utf-32"})(Pg||(h.PositionEncodingKind=Pg={}));var Sg;(function(r){function e(t){let n=t;return n&&Qe.string(n.id)&&n.id.length>0}r.hasId=e})(Sg||(h.StaticRegistrationOptions=Sg={}));var Ig;(function(r){function e(t){let n=t;return n&&(n.documentSelector===null||Pc.is(n.documentSelector))}r.is=e})(Ig||(h.TextDocumentRegistrationOptions=Ig={}));var Lg;(function(r){function e(n){let i=n;return Qe.objectLiteral(i)&&(i.workDoneProgress===void 0||Qe.boolean(i.workDoneProgress))}r.is=e;function t(n){let i=n;return i&&Qe.boolean(i.workDoneProgress)}r.hasWorkDoneProgress=t})(Lg||(h.WorkDoneProgressOptions=Lg={}));var Cg;(function(r){r.method="initialize",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Cg||(h.InitializeRequest=Cg={}));var kg;(function(r){r.unknownProtocolVersion=1})(kg||(h.InitializeErrorCodes=kg={}));var Bg;(function(r){r.method="initialized",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Bg||(h.InitializedNotification=Bg={}));var Mg;(function(r){r.method="shutdown",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType0(r.method)})(Mg||(h.ShutdownRequest=Mg={}));var Tg;(function(r){r.method="exit",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType0(r.method)})(Tg||(h.ExitNotification=Tg={}));var xg;(function(r){r.method="workspace/didChangeConfiguration",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(xg||(h.DidChangeConfigurationNotification=xg={}));var Og;(function(r){r.Error=1,r.Warning=2,r.Info=3,r.Log=4,r.Debug=5})(Og||(h.MessageType=Og={}));var Fg;(function(r){r.method="window/showMessage",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolNotificationType(r.method)})(Fg||(h.ShowMessageNotification=Fg={}));var Ng;(function(r){r.method="window/showMessageRequest",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolRequestType(r.method)})(Ng||(h.ShowMessageRequest=Ng={}));var qg;(function(r){r.method="window/logMessage",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolNotificationType(r.method)})(qg||(h.LogMessageNotification=qg={}));var Ug;(function(r){r.method="telemetry/event",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolNotificationType(r.method)})(Ug||(h.TelemetryEventNotification=Ug={}));var jg;(function(r){r.None=0,r.Full=1,r.Incremental=2})(jg||(h.TextDocumentSyncKind=jg={}));var Qg;(function(r){r.method="textDocument/didOpen",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Qg||(h.DidOpenTextDocumentNotification=Qg={}));var _g;(function(r){function e(n){let i=n;return i!=null&&typeof i.text=="string"&&i.range!==void 0&&(i.rangeLength===void 0||typeof i.rangeLength=="number")}r.isIncremental=e;function t(n){let i=n;return i!=null&&typeof i.text=="string"&&i.range===void 0&&i.rangeLength===void 0}r.isFull=t})(_g||(h.TextDocumentContentChangeEvent=_g={}));var Gg;(function(r){r.method="textDocument/didChange",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Gg||(h.DidChangeTextDocumentNotification=Gg={}));var Kg;(function(r){r.method="textDocument/didClose",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Kg||(h.DidCloseTextDocumentNotification=Kg={}));var Yg;(function(r){r.method="textDocument/didSave",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Yg||(h.DidSaveTextDocumentNotification=Yg={}));var Vg;(function(r){r.Manual=1,r.AfterDelay=2,r.FocusOut=3})(Vg||(h.TextDocumentSaveReason=Vg={}));var Wg;(function(r){r.method="textDocument/willSave",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Wg||(h.WillSaveTextDocumentNotification=Wg={}));var Hg;(function(r){r.method="textDocument/willSaveWaitUntil",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Hg||(h.WillSaveTextDocumentWaitUntilRequest=Hg={}));var Jg;(function(r){r.method="workspace/didChangeWatchedFiles",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolNotificationType(r.method)})(Jg||(h.DidChangeWatchedFilesNotification=Jg={}));var Zg;(function(r){r.Created=1,r.Changed=2,r.Deleted=3})(Zg||(h.FileChangeType=Zg={}));var Xg;(function(r){function e(t){let n=t;return Qe.objectLiteral(n)&&(vg.URI.is(n.baseUri)||vg.WorkspaceFolder.is(n.baseUri))&&Qe.string(n.pattern)}r.is=e})(Xg||(h.RelativePattern=Xg={}));var zg;(function(r){r.Create=1,r.Change=2,r.Delete=4})(zg||(h.WatchKind=zg={}));var $g;(function(r){r.method="textDocument/publishDiagnostics",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolNotificationType(r.method)})($g||(h.PublishDiagnosticsNotification=$g={}));var ep;(function(r){r.Invoked=1,r.TriggerCharacter=2,r.TriggerForIncompleteCompletions=3})(ep||(h.CompletionTriggerKind=ep={}));var tp;(function(r){r.method="textDocument/completion",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(tp||(h.CompletionRequest=tp={}));var rp;(function(r){r.method="completionItem/resolve",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(rp||(h.CompletionResolveRequest=rp={}));var np;(function(r){r.method="textDocument/hover",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(np||(h.HoverRequest=np={}));var ip;(function(r){r.Invoked=1,r.TriggerCharacter=2,r.ContentChange=3})(ip||(h.SignatureHelpTriggerKind=ip={}));var op;(function(r){r.method="textDocument/signatureHelp",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(op||(h.SignatureHelpRequest=op={}));var sp;(function(r){r.method="textDocument/definition",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(sp||(h.DefinitionRequest=sp={}));var ap;(function(r){r.method="textDocument/references",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(ap||(h.ReferencesRequest=ap={}));var cp;(function(r){r.method="textDocument/documentHighlight",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(cp||(h.DocumentHighlightRequest=cp={}));var up;(function(r){r.method="textDocument/documentSymbol",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(up||(h.DocumentSymbolRequest=up={}));var lp;(function(r){r.method="textDocument/codeAction",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(lp||(h.CodeActionRequest=lp={}));var dp;(function(r){r.method="codeAction/resolve",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(dp||(h.CodeActionResolveRequest=dp={}));var fp;(function(r){r.method="workspace/symbol",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(fp||(h.WorkspaceSymbolRequest=fp={}));var hp;(function(r){r.method="workspaceSymbol/resolve",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(hp||(h.WorkspaceSymbolResolveRequest=hp={}));var gp;(function(r){r.method="textDocument/codeLens",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(gp||(h.CodeLensRequest=gp={}));var pp;(function(r){r.method="codeLens/resolve",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(pp||(h.CodeLensResolveRequest=pp={}));var mp;(function(r){r.method="workspace/codeLens/refresh",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolRequestType0(r.method)})(mp||(h.CodeLensRefreshRequest=mp={}));var Ap;(function(r){r.method="textDocument/documentLink",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Ap||(h.DocumentLinkRequest=Ap={}));var yp;(function(r){r.method="documentLink/resolve",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(yp||(h.DocumentLinkResolveRequest=yp={}));var bp;(function(r){r.method="textDocument/formatting",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(bp||(h.DocumentFormattingRequest=bp={}));var vp;(function(r){r.method="textDocument/rangeFormatting",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(vp||(h.DocumentRangeFormattingRequest=vp={}));var wp;(function(r){r.method="textDocument/rangesFormatting",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(wp||(h.DocumentRangesFormattingRequest=wp={}));var Ep;(function(r){r.method="textDocument/onTypeFormatting",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Ep||(h.DocumentOnTypeFormattingRequest=Ep={}));var Dp;(function(r){r.Identifier=1})(Dp||(h.PrepareSupportDefaultBehavior=Dp={}));var Rp;(function(r){r.method="textDocument/rename",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Rp||(h.RenameRequest=Rp={}));var Pp;(function(r){r.method="textDocument/prepareRename",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Pp||(h.PrepareRenameRequest=Pp={}));var Sp;(function(r){r.method="workspace/executeCommand",r.messageDirection=N.MessageDirection.clientToServer,r.type=new N.ProtocolRequestType(r.method)})(Sp||(h.ExecuteCommandRequest=Sp={}));var Ip;(function(r){r.method="workspace/applyEdit",r.messageDirection=N.MessageDirection.serverToClient,r.type=new N.ProtocolRequestType("workspace/applyEdit")})(Ip||(h.ApplyWorkspaceEditRequest=Ip={}))});var xp=B(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.createProtocolConnection=void 0;var Tp=br();function nw(r,e,t,n){return Tp.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,Tp.createMessageConnection)(r,e,t,n)}mo.createProtocolConnection=nw});var Fp=B(ct=>{"use strict";var iw=ct&&ct.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),Ao=ct&&ct.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&iw(e,r,t)};Object.defineProperty(ct,"__esModule",{value:!0});ct.LSPErrorCodes=ct.createProtocolConnection=void 0;Ao(br(),ct);Ao($i(),ct);Ao(Me(),ct);Ao(Mp(),ct);var ow=xp();Object.defineProperty(ct,"createProtocolConnection",{enumerable:!0,get:function(){return ow.createProtocolConnection}});var Op;(function(r){r.lspReservedErrorRangeStart=-32899,r.RequestFailed=-32803,r.ServerCancelled=-32802,r.ContentModified=-32801,r.RequestCancelled=-32800,r.lspReservedErrorRangeEnd=-32800})(Op||(ct.LSPErrorCodes=Op={}))});var qp=B(xt=>{"use strict";var sw=xt&&xt.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),Np=xt&&xt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&sw(e,r,t)};Object.defineProperty(xt,"__esModule",{value:!0});xt.createProtocolConnection=void 0;var aw=gc();Np(gc(),xt);Np(Fp(),xt);function cw(r,e,t,n){return(0,aw.createMessageConnection)(r,e,t,n)}xt.createProtocolConnection=cw});var uw=B((fD,Up)=>{"use strict";Up.exports=qp()});var gw="Factorio Modding Tool Kit",lr="2.0.9";var X=Ae(Xc(),1),ws=Ae(jl(),1);import*as qt from"path";import*as rd from"fs/promises";import*as pr from"os";var Ql;(()=>{"use strict";var r={975:F=>{function R(S){if(typeof S!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(S))}function Q(S,k){for(var M,D="",V=0,q=-1,te=0,ne=0;ne<=S.length;++ne){if(ne<S.length)M=S.charCodeAt(ne);else{if(M===47)break;M=47}if(M===47){if(!(q===ne-1||te===1))if(q!==ne-1&&te===2){if(D.length<2||V!==2||D.charCodeAt(D.length-1)!==46||D.charCodeAt(D.length-2)!==46){if(D.length>2){var qe=D.lastIndexOf("/");if(qe!==D.length-1){qe===-1?(D="",V=0):V=(D=D.slice(0,qe)).length-1-D.lastIndexOf("/"),q=ne,te=0;continue}}else if(D.length===2||D.length===1){D="",V=0,q=ne,te=0;continue}}k&&(D.length>0?D+="/..":D="..",V=2)}else D.length>0?D+="/"+S.slice(q+1,ne):D=S.slice(q+1,ne),V=ne-q-1;q=ne,te=0}else M===46&&te!==-1?++te:te=-1}return D}var G={resolve:function(){for(var S,k="",M=!1,D=arguments.length-1;D>=-1&&!M;D--){var V;D>=0?V=arguments[D]:(S===void 0&&(S=process.cwd()),V=S),R(V),V.length!==0&&(k=V+"/"+k,M=V.charCodeAt(0)===47)}return k=Q(k,!M),M?k.length>0?"/"+k:"/":k.length>0?k:"."},normalize:function(S){if(R(S),S.length===0)return".";var k=S.charCodeAt(0)===47,M=S.charCodeAt(S.length-1)===47;return(S=Q(S,!k)).length!==0||k||(S="."),S.length>0&&M&&(S+="/"),k?"/"+S:S},isAbsolute:function(S){return R(S),S.length>0&&S.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var S,k=0;k<arguments.length;++k){var M=arguments[k];R(M),M.length>0&&(S===void 0?S=M:S+="/"+M)}return S===void 0?".":G.normalize(S)},relative:function(S,k){if(R(S),R(k),S===k||(S=G.resolve(S))===(k=G.resolve(k)))return"";for(var M=1;M<S.length&&S.charCodeAt(M)===47;++M);for(var D=S.length,V=D-M,q=1;q<k.length&&k.charCodeAt(q)===47;++q);for(var te=k.length-q,ne=V<te?V:te,qe=-1,ge=0;ge<=ne;++ge){if(ge===ne){if(te>ne){if(k.charCodeAt(q+ge)===47)return k.slice(q+ge+1);if(ge===0)return k.slice(q+ge)}else V>ne&&(S.charCodeAt(M+ge)===47?qe=ge:ge===0&&(qe=0));break}var et=S.charCodeAt(M+ge);if(et!==k.charCodeAt(q+ge))break;et===47&&(qe=ge)}var It="";for(ge=M+qe+1;ge<=D;++ge)ge!==D&&S.charCodeAt(ge)!==47||(It.length===0?It+="..":It+="/..");return It.length>0?It+k.slice(q+qe):(q+=qe,k.charCodeAt(q)===47&&++q,k.slice(q))},_makeLong:function(S){return S},dirname:function(S){if(R(S),S.length===0)return".";for(var k=S.charCodeAt(0),M=k===47,D=-1,V=!0,q=S.length-1;q>=1;--q)if((k=S.charCodeAt(q))===47){if(!V){D=q;break}}else V=!1;return D===-1?M?"/":".":M&&D===1?"//":S.slice(0,D)},basename:function(S,k){if(k!==void 0&&typeof k!="string")throw new TypeError('"ext" argument must be a string');R(S);var M,D=0,V=-1,q=!0;if(k!==void 0&&k.length>0&&k.length<=S.length){if(k.length===S.length&&k===S)return"";var te=k.length-1,ne=-1;for(M=S.length-1;M>=0;--M){var qe=S.charCodeAt(M);if(qe===47){if(!q){D=M+1;break}}else ne===-1&&(q=!1,ne=M+1),te>=0&&(qe===k.charCodeAt(te)?--te==-1&&(V=M):(te=-1,V=ne))}return D===V?V=ne:V===-1&&(V=S.length),S.slice(D,V)}for(M=S.length-1;M>=0;--M)if(S.charCodeAt(M)===47){if(!q){D=M+1;break}}else V===-1&&(q=!1,V=M+1);return V===-1?"":S.slice(D,V)},extname:function(S){R(S);for(var k=-1,M=0,D=-1,V=!0,q=0,te=S.length-1;te>=0;--te){var ne=S.charCodeAt(te);if(ne!==47)D===-1&&(V=!1,D=te+1),ne===46?k===-1?k=te:q!==1&&(q=1):k!==-1&&(q=-1);else if(!V){M=te+1;break}}return k===-1||D===-1||q===0||q===1&&k===D-1&&k===M+1?"":S.slice(k,D)},format:function(S){if(S===null||typeof S!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof S);return(function(k,M){var D=M.dir||M.root,V=M.base||(M.name||"")+(M.ext||"");return D?D===M.root?D+V:D+"/"+V:V})(0,S)},parse:function(S){R(S);var k={root:"",dir:"",base:"",ext:"",name:""};if(S.length===0)return k;var M,D=S.charCodeAt(0),V=D===47;V?(k.root="/",M=1):M=0;for(var q=-1,te=0,ne=-1,qe=!0,ge=S.length-1,et=0;ge>=M;--ge)if((D=S.charCodeAt(ge))!==47)ne===-1&&(qe=!1,ne=ge+1),D===46?q===-1?q=ge:et!==1&&(et=1):q!==-1&&(et=-1);else if(!qe){te=ge+1;break}return q===-1||ne===-1||et===0||et===1&&q===ne-1&&q===te+1?ne!==-1&&(k.base=k.name=te===0&&V?S.slice(1,ne):S.slice(te,ne)):(te===0&&V?(k.name=S.slice(1,q),k.base=S.slice(1,ne)):(k.name=S.slice(te,q),k.base=S.slice(te,ne)),k.ext=S.slice(q,ne)),te>0?k.dir=S.slice(0,te-1):V&&(k.dir="/"),k},sep:"/",delimiter:":",win32:null,posix:null};G.posix=G,F.exports=G}},e={};function t(F){var R=e[F];if(R!==void 0)return R.exports;var Q=e[F]={exports:{}};return r[F](Q,Q.exports,t),Q.exports}t.d=(F,R)=>{for(var Q in R)t.o(R,Q)&&!t.o(F,Q)&&Object.defineProperty(F,Q,{enumerable:!0,get:R[Q]})},t.o=(F,R)=>Object.prototype.hasOwnProperty.call(F,R),t.r=F=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(F,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(F,"__esModule",{value:!0})};var n={};let i;t.r(n),t.d(n,{URI:()=>P,Utils:()=>_e}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let o=/^\w[\w\d+.-]*$/,s=/^\//,c=/^\/\//;function d(F,R){if(!F.scheme&&R)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${F.authority}", path: "${F.path}", query: "${F.query}", fragment: "${F.fragment}"}`);if(F.scheme&&!o.test(F.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(F.path){if(F.authority){if(!s.test(F.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(c.test(F.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let l="",g="/",b=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class P{static isUri(R){return R instanceof P||!!R&&typeof R.authority=="string"&&typeof R.fragment=="string"&&typeof R.path=="string"&&typeof R.query=="string"&&typeof R.scheme=="string"&&typeof R.fsPath=="string"&&typeof R.with=="function"&&typeof R.toString=="function"}scheme;authority;path;query;fragment;constructor(R,Q,G,S,k,M=!1){typeof R=="object"?(this.scheme=R.scheme||l,this.authority=R.authority||l,this.path=R.path||l,this.query=R.query||l,this.fragment=R.fragment||l):(this.scheme=(function(D,V){return D||V?D:"file"})(R,M),this.authority=Q||l,this.path=(function(D,V){switch(D){case"https":case"http":case"file":V?V[0]!==g&&(V=g+V):V=g}return V})(this.scheme,G||l),this.query=S||l,this.fragment=k||l,d(this,M))}get fsPath(){return Y(this,!1)}with(R){if(!R)return this;let{scheme:Q,authority:G,path:S,query:k,fragment:M}=R;return Q===void 0?Q=this.scheme:Q===null&&(Q=l),G===void 0?G=this.authority:G===null&&(G=l),S===void 0?S=this.path:S===null&&(S=l),k===void 0?k=this.query:k===null&&(k=l),M===void 0?M=this.fragment:M===null&&(M=l),Q===this.scheme&&G===this.authority&&S===this.path&&k===this.query&&M===this.fragment?this:new j(Q,G,S,k,M)}static parse(R,Q=!1){let G=b.exec(R);return G?new j(G[2]||l,ae(G[4]||l),ae(G[5]||l),ae(G[7]||l),ae(G[9]||l),Q):new j(l,l,l,l,l)}static file(R){let Q=l;if(i&&(R=R.replace(/\\/g,g)),R[0]===g&&R[1]===g){let G=R.indexOf(g,2);G===-1?(Q=R.substring(2),R=g):(Q=R.substring(2,G),R=R.substring(G)||g)}return new j("file",Q,R,l,l)}static from(R){let Q=new j(R.scheme,R.authority,R.path,R.query,R.fragment);return d(Q,!0),Q}toString(R=!1){return K(this,R)}toJSON(){return this}static revive(R){if(R){if(R instanceof P)return R;{let Q=new j(R);return Q._formatted=R.external,Q._fsPath=R._sep===v?R.fsPath:null,Q}}return R}}let v=i?1:void 0;class j extends P{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=Y(this,!1)),this._fsPath}toString(R=!1){return R?K(this,!0):(this._formatted||(this._formatted=K(this,!1)),this._formatted)}toJSON(){let R={$mid:1};return this._fsPath&&(R.fsPath=this._fsPath,R._sep=v),this._formatted&&(R.external=this._formatted),this.path&&(R.path=this.path),this.scheme&&(R.scheme=this.scheme),this.authority&&(R.authority=this.authority),this.query&&(R.query=this.query),this.fragment&&(R.fragment=this.fragment),R}}let x={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function ee(F,R,Q){let G,S=-1;for(let k=0;k<F.length;k++){let M=F.charCodeAt(k);if(M>=97&&M<=122||M>=65&&M<=90||M>=48&&M<=57||M===45||M===46||M===95||M===126||R&&M===47||Q&&M===91||Q&&M===93||Q&&M===58)S!==-1&&(G+=encodeURIComponent(F.substring(S,k)),S=-1),G!==void 0&&(G+=F.charAt(k));else{G===void 0&&(G=F.substr(0,k));let D=x[M];D!==void 0?(S!==-1&&(G+=encodeURIComponent(F.substring(S,k)),S=-1),G+=D):S===-1&&(S=k)}}return S!==-1&&(G+=encodeURIComponent(F.substring(S))),G!==void 0?G:F}function ce(F){let R;for(let Q=0;Q<F.length;Q++){let G=F.charCodeAt(Q);G===35||G===63?(R===void 0&&(R=F.substr(0,Q)),R+=x[G]):R!==void 0&&(R+=F[Q])}return R!==void 0?R:F}function Y(F,R){let Q;return Q=F.authority&&F.path.length>1&&F.scheme==="file"?`//${F.authority}${F.path}`:F.path.charCodeAt(0)===47&&(F.path.charCodeAt(1)>=65&&F.path.charCodeAt(1)<=90||F.path.charCodeAt(1)>=97&&F.path.charCodeAt(1)<=122)&&F.path.charCodeAt(2)===58?R?F.path.substr(1):F.path[1].toLowerCase()+F.path.substr(2):F.path,i&&(Q=Q.replace(/\//g,"\\")),Q}function K(F,R){let Q=R?ce:ee,G="",{scheme:S,authority:k,path:M,query:D,fragment:V}=F;if(S&&(G+=S,G+=":"),(k||S==="file")&&(G+=g,G+=g),k){let q=k.indexOf("@");if(q!==-1){let te=k.substr(0,q);k=k.substr(q+1),q=te.lastIndexOf(":"),q===-1?G+=Q(te,!1,!1):(G+=Q(te.substr(0,q),!1,!1),G+=":",G+=Q(te.substr(q+1),!1,!0)),G+="@"}k=k.toLowerCase(),q=k.lastIndexOf(":"),q===-1?G+=Q(k,!1,!0):(G+=Q(k.substr(0,q),!1,!0),G+=k.substr(q))}if(M){if(M.length>=3&&M.charCodeAt(0)===47&&M.charCodeAt(2)===58){let q=M.charCodeAt(1);q>=65&&q<=90&&(M=`/${String.fromCharCode(q+32)}:${M.substr(3)}`)}else if(M.length>=2&&M.charCodeAt(1)===58){let q=M.charCodeAt(0);q>=65&&q<=90&&(M=`${String.fromCharCode(q+32)}:${M.substr(2)}`)}G+=Q(M,!0,!1)}return D&&(G+="?",G+=Q(D,!1,!1)),V&&(G+="#",G+=R?V:ee(V,!1,!1)),G}function O(F){try{return decodeURIComponent(F)}catch{return F.length>3?F.substr(0,3)+O(F.substr(3)):F}}let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ae(F){return F.match(T)?F.replace(T,(R=>O(R))):F}var _=t(975);let Pe=_.posix||_,xe="/";var _e;(function(F){F.joinPath=function(R,...Q){return R.with({path:Pe.join(R.path,...Q)})},F.resolvePath=function(R,...Q){let G=R.path,S=!1;G[0]!==xe&&(G=xe+G,S=!0);let k=Pe.resolve(G,...Q);return S&&k[0]===xe&&!R.authority&&(k=k.substring(1)),R.with({path:k})},F.dirname=function(R){if(R.path.length===0||R.path===xe)return R;let Q=Pe.dirname(R.path);return Q.length===1&&Q.charCodeAt(0)===46&&(Q=""),R.with({path:Q})},F.basename=function(R){return Pe.basename(R.path)},F.extname=function(R){return Pe.extname(R.path)}})(_e||(_e={})),Ql=n})();var{URI:nt,Utils:Rt}=Ql;function hr(r){let e=r.toString().match(/\]=*$/),t="=".repeat((r.toString().match(/\]=*\]/g)||[]).map(n=>n.length-1).reduce((n,i)=>Math.max(n,i),e?e[0].length:0));return Buffer.concat([Buffer.from(`[${t}[`),r,Buffer.from(`]${t}]`)])}function _l(r,e){let t=[],n=r.length,i=0;for(;i<n;)t.push(r.subarray(i,i+=e));return t}function hi(r){switch(typeof r){case"object":let e=[Buffer.from("{")];for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e.push(Buffer.from("[")),e.push(hi(t)),e.push(Buffer.from("]=")),e.push(hi(r[t])),e.push(Buffer.from(",")));return e.push(Buffer.from("}")),Buffer.concat(e);case"string":return Buffer.from(`"${r}"`);case"boolean":case"number":return Buffer.from(`${r}`)}}function Lr(r){if(r>4294967280)throw new Error("Values > 0xFFFFFFF0 are reserved");if(r<0)throw new Error("Value must be positive");r===10?r=4294967295:r===26?r=4294967294:r===13&&(r=4294967293);let e,t,n,i;if(r<128)return Buffer.from([r]);r<2048?(i=2,e=192,t=31,n=6):r<65536?(i=3,e=224,t=15,n=12):r<2097152?(i=4,e=240,t=7,n=18):r<67108864?(i=5,e=248,t=3,n=24):(i=6,e=252,t=3,n=30);let o=Buffer.alloc(i);o[0]=e|r>>n&t;for(let s=n-6,c=1;s>=0;s-=6,c++)o[c]=128|r>>s&63;return o}function fi(r){let e=Buffer.from(r,"utf8"),t=Lr(e.length);return Buffer.concat([t,e])}function di(r){let e=Lr(r.line),t=0,n=new Array;return r.condition&&(t|=1,n.push(fi(r.condition.replace(/[\r\n]+/g," ")))),r.hitCondition&&(t|=2,n.push(fi(r.hitCondition.replace(/[\r\n]+/g," ")))),r.logMessage&&(t|=4,n.push(fi(r.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function Gl(r,e){let t=fi(r),n=e.filter(c=>!c.condition&&!c.hitCondition&&!c.logMessage).map(c=>c.line),i;if(n.length===0)i=Buffer.from([255]);else if(n.length===10){let c=Buffer.from([254]);i=Buffer.concat([c,Buffer.concat(n.map(d=>Lr(d)))])}else if(n.length===26){let c=Buffer.from([253]);i=Buffer.concat([c,Buffer.concat(n.map(d=>Lr(d)))])}else if(n.length===13){let c=Buffer.from([252]);i=Buffer.concat([c,Buffer.concat(n.map(d=>Lr(d)))])}else{let c=Buffer.from([n.length]);i=Buffer.concat([c,Buffer.concat(n.map(d=>Lr(d)))])}let o=e.filter(c=>c.condition||c.hitCondition||c.logMessage),s;if(o.length===0)s=Buffer.from([255]);else if(o.length===10){let c=Buffer.from([254]);s=Buffer.concat([c,Buffer.concat(o.map(d=>di(d)))])}else if(o.length===26){let c=Buffer.from([253]);s=Buffer.concat([c,Buffer.concat(o.map(d=>di(d)))])}else if(o.length===13){let c=Buffer.from([252]);s=Buffer.concat([c,Buffer.concat(o.map(d=>di(d)))])}else{let c=Buffer.from([o.length]);s=Buffer.concat([c,Buffer.concat(o.map(d=>di(d)))])}return Buffer.concat([t,i,s])}import{spawn as eb}from"child_process";import{EventEmitter as tb}from"events";import{EventEmitter as zy}from"events";var dn=class extends zy{buf;matchers;constructor(e,t){super(),this.buf=Buffer.alloc(0),this.matchers=t instanceof Buffer?[t]:t,e.on("close",()=>{this.emit("close")}),e.on("end",()=>{this.emit("end")}),e.on("data",n=>{for(this.buf=Buffer.concat([this.buf,n]);this.buf.length>0;){let i=this.matchers.map(s=>this.buf.indexOf(s instanceof Buffer?s:s.start)),o=i.reduce((s,c)=>s===-1?c:c===-1?s:Math.min(s,c));if(o!==-1){let s=this.matchers[i.indexOf(o)];if(s instanceof Buffer)o>0&&this.emit("segment",this.buf.subarray(0,o)),this.buf=this.buf.subarray(o+s.length);else{let c=s;o>0&&(this.emit("segment",this.buf.subarray(0,o)),this.buf=this.buf.subarray(o));let d=this.buf.indexOf(c.end,c.start.length);if(d!==-1)this.emit("segment",this.buf.subarray(c.start.length,d)),this.buf=this.buf.subarray(d+c.end.length);else return}}else return}})}};var Xl=Ae(Jl(),1);import*as Zl from"path";var rb=[Buffer.from(`
|
|
57
|
+
`),Buffer.from("lua_debug> ")],nb=[Buffer.from(`
|
|
58
|
+
`),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],gi=class extends tb{factorio;hasNativeDebug;constructor(e,t,n){super();let i={cwd:Zl.dirname(e),env:Object.assign({},process.env,n,{SteamAppId:"427520"})};this.factorio=eb(e,t,i),this.factorio.on("exit",(c,d)=>this.emit("exit",c,d)),new dn(this.factorio.stderr,rb).on("segment",c=>{c.length===1&&c[0]===13||this.emit("stderr",c)}),new dn(this.factorio.stdout,nb).on("segment",c=>{c.length===1&&c[0]===13||this.emit("stdout",c)})}writeStdin(e){return this.factorio.stdin.write(e)}kill(){if(this.hasNativeDebug)this.factorio.pid&&(0,Xl.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};import{Readable as ib}from"stream";var Cr=class extends ib{constructor(e){super(),this.push(e),this.push(null)}readUInt8(){return this.read(1).readUInt8()}readUInt16LE(){return this.read(2).readUInt16LE()}readUInt32LE(){return this.read(4).readUInt32LE()}readInt32LE(){return this.read(4).readInt32LE()}readBigInt64LE(){return this.read(8).readBigInt64LE()}readBigUInt64LE(){return this.read(8).readBigUInt64LE()}readDoubleLE(){return this.read(8).readDoubleLE()}readPackedUInt_8_32(){let e=this.readUInt8();return e===255&&(e=this.readUInt32LE()),e}readPackedUInt_16_32(){let e=this.readUInt16LE();return e===65535&&(e=this.readUInt32LE()),e}readString(e){return e===0?"":this.read(e).toString("utf8")}};import*as it from"fs/promises";import*as kt from"path";var zl=jn("UEsDBBQACAAIAGENaFoAAAAAAAAAAAAAAAAeAAAAZGVidWdhZGFwdGVyXzIuMC45L2NvbnRyb2wubHVhdc1BCsIwEAXQfSB3GLpKF9aiC+tSMa49QGCodqqBktQhgRxfmopUwc3AwP/v2x6cD6AQT3SN90PXjoEYPAPihX1vB+ISwoOcFAAjWxdUYZI+m3TcmbSvTdLapKY2qdkW5RTqJqjKV5VSkOukkML2C/EDMj2jZVIFYi608z7iepyjq5t3gf1QDbGdeaYQ2b3dL3WzYBeZ/xv5/V14AVBLBwjEcU+QnQAAABIBAABQSwMEFAAIAAgAMhyhWgAAAAAAAAAAAAAAABsAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvZGF0YS5sdWElizELwjAQRucW+h+OrjWji+AkFAWxoN3lTA4J2iTmLmCR/ndJOnzLe+8zKLijr5Azv6au8iqZA8EeWp1Y/KSsC0naTTYOp2IMPdITDQahqCKxYBTFxGy9W8sXzXemTyKny+MwXMbrcIYObsdTP0IH/XYtUYv1LjfvhAUtTb38AVBLBwj+1kmQgAAAAJgAAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAACEAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvZGF0YXN0cmluZy5sdWHdWN1v2zYQfw+Q/+GAvsSz5Eq24/hhQoe2MbCHDcO6dg9eVlAyHXNVSIekDQdp+rcPxw9RkmXno8AepoeYvDvd7+54dzwljufz05OvkDOt4Ct87C+ZVBrArEtilrjJ7zRFgbd3mn5ODcksh2E5CstxWJ6H5QSXpyf92DzuZ29dbfqd/Gct0TOAC+tNkiQJgF9fzJxnANadZGcfQ3LPs5YGLE09wDSAXcwCmA1YmiYezK12LwGbOIBp8Gw2q4GNHJjFaII9A9eADZ1nqYujWc8cHEqPPZjRfBDsMdz/PEF+GLowDhPrGq5HM+camnZeeYbGP8WzTicN2GhoAcaJRfNnZtBQehLA0meDheXpyenJJyJ/5hpyougCBIePf8ziaQR0pylf0AUshYTlpixhNMyZBsa1AsZhgsWOzJsBaonjqyv8LUVBStCF4AXRkIEmeUkHduu5SkvGryFzi4psNHrqAHcVq1gRGVi4q1hqkweO2uSekTM9GkJmfysi4QtPG+CmYggZ6KLSXqoVW+qKY7eeKZtM6Zie/fny10+QAWelDVD8U1ESpeA90eRDw/NAgQzuH5w4SEoWCgjHmMNSihv0EpQmUqMowcNY0N3AKl8TSbyEVR6oRg7V0GsqLUNSvZHc02BLyg3t5HC60z/j+97a5YYXmgkOv1OysNlzprSMDEgPjcdEtrIFHg2epJGwdvRASEjqUoreQgYF/AjJbpoAnlGKQpZyaSnDQJlZyqhGmRrKuEZ5ZyjnSJl4o9jSYmWQgl5Rbqn4OKcL60U/tRxaKhpkrLFbUuKRE744KyIY/n02jRW97UEMaeU8Plg3LEsjRW/jFBYicPBxWoQ8szl1tiVlBJNeZDW3Y9ZnvQiS3WjW6wU9FNM3bOMYqCrImsJfNcfY0mJlGBPfQtB3Z0KaWD1H5C/r8sPJo/LvG/pHbTtdqNFh65uity7cKGj+hIoYhCyDrJZyvkgKwbdUal8mWgDxDaYQXBPGcalXFCgvBDa0Wqrb6kBDu2rDqdkSiU1Py70C+FMyTV0FbEnZq+f0WtIl20VgRqUbor5EtnKrJlELnsv7ZkbG8XyempEKO2sreKYh1jAxUWvKzF2/r25oJ7S6Pmsm4OkVSS15vdWGky4DJzgBGRZWB7q9/PfhR0fh6UH45BB8OuzEd1f0vgHjowYsDxtwcciAaacB/tret+D8uAXTgxaMDlgwHHd1KoSaHIcqng01SmpVapdYLPpuTV2pzK8aXd1dZkbR/JXqp1d4G5jMxcbnK8Q0PBm6YADtRZVpPd/4sK0aZhbk4kmURPGk0WS7ELHKOvAsVLIbLSuUqsW5enMDzZnq7TeoWheArN4TbIvCT6dcUvJlLczslMG9Ve1eWbKScnJDS8qv9cqFy3Yez7JEMx7xzc26JIxHMJvhcCHAby9NM7eitmXNrywT8rVqqijEzbqku6AkEOpq8rU/0fsQWKsbSsZrCWcUr4iiOy0J3lRJije64AtmOiV+OSU4ja2YLsSGa0sZQwaluP6FKkWua+qMGjW/wjuNcRByQWVUU2fulxXTdlGK6/DqffuetdbWghuS2wSZ7taSKsVErVRd1j6cnjycntjBtjFiLYgmXWPWsWtEaSk2+gUjlk2zMwcbsV6r9vjmJkfIxoji86CMWOPa3FNjb2nWr96pZnSxwXzG+Tq8FG1JGae9Rm1Y0cgo6Lq8q8k2bL4voO9pvrn+TQotClEOPoiNLOjbqsIgFNtLgt3Sdjjsx62oxzJfV2O9raoBFs9jB2PfdW25mgcbIqiBQR/S0I/x+p2CpIrKLV1g8RgNWmDz31KuoZCUmO+HSsj+2yZNXqej18NJNZmYPmkmFyznHnzLoH2l5etBVZSVPwfytWqpbdXDQ6pXTL/7bu3jQ9pD33mS7kbK5+uIHUj2djZmnWn1eAE0mseb2lXw5EKYX72p1YLqTPcgrbzbjfTDyKSNXL7T1DbwDF65N57Wj8LxBBX+YHxcOSvDSbaGi7rC5sXod8fO8VnF25xj8rVq1K9vqu2ajJj/bKx/Ey2Lrq+hPanFoW+shhQ99OXmpL4ZqWUr2XFk+gdfwB4ddX6LPtaMwmD5jO4Xik3NX+VrN47dm9EBMmPwQ+trtlVu/7tQvyh+Pg3bUQ35/til1X0SdY1d0XdFWZWXGSO7mt7bxnjboqA2369q//n6F1BLBwhgUy/9aAYAAFQYAABQSwMEFAAIAAgA2RaZWgAAAAAAAAAAAAAAACQAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvZGVidWctY29udHJvbC5sdWFtj8GqwjAQRfeF/kPIKoXX6Orpw5Vi/QkjobajBHUSMxOJfy/tK+jCzcAd5s49N8I9uQhKWtvDMZ3bvg0M0drZp9TX1MqqLMqCuugCa48WHoCsejg5BNKjomHPrrv8iFPCjp1HoaqyEEKIEB2ykiY3O5M3C5P/5iY3jcnLucnLXzmdjal6nIMTsP8aG6Jnz88ApLtE7G/WYUi8l5/UdQTiNnJNQOQ8ysObS41/plBrt4NtPZWdbKpa/QO8AFBLBwg/EmaivAAAACQBAABQSwMEFAAIAAgA161PWQAAAAAAAAAAAAAAACMAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvZGVidWdhZGFwdGVyLmx1YbVXbYvjNhD+Hsh/GPylSXHc+3bb0vS6192Dg/ZYKOyXpvgUa2yLKJIrydmEZe+3l5Fkx84m6ZVSAn6R5pkXPTPjiSghzx+MLoVEA65GNZ0ASF09J0kKya1zuG0ccnAaDP7VCoPAcd1WjLPGoQGhIEnBFkY0Lttqniu2xRQSeBKuhiZohlrrDTBpkPEDCGUdkxJ58kLGDLrWqOkEFZ9OphNRAmeO9b4sFuHdOlYhFBKZsdCwYsMqzKRmHDms0T0hKiBbNgWr4QkJYGtgUOiGbMKvLQODlbDOHMBpHQItmKRVWIawsgpdJzSbB/uLn92hQbij/dsQ9gh7dwtLumd5fiojyihA0cRI44oPN8ZMv8UCXC0sCAsMKqnXTFIgrkbY2UJzBNw7VFZoBQVTUKEjUoSD0uht9N5fyW/yupDM2pHb8MPoNfvdYdMIVWUP7VqKYjoJMY3jgCXk958eT6IDbeD5hdhZtw62oqod1GyHsCYiOJZCIe8pL7UBixILJ3boE8C0W1QOtprjdHJO/xJOj/NSVNkvUqByH5VDU7ICLwV5d/uQjrcemRFs7XPmBMKKjZ1Oxh5kec5ZA0t4fomEEV63FkqBkluw6GB96OhyGgqtSlG1Bj2NnhxgXTiXgvGYsO31Do9rrbVEprwloeDu9hs72F58m8mWDaFK+8o7Byu0ckZLQlCaCgdcowWlI48EtMdaHWqlLamrd71eVHSKYLCRrBCqgs9SV5+HkA1ioyUfoZ6oJiy6NIhHOPpAn4SUYB1dCyYlaCMqoZh8rdm0SglVvTfINu9Atds1GiipV6EqDp6FGouNT8GGtZbSD6RW1SIioQg5eMp1IO9VHh53fAV0adkww7ZkzdFR/GidEapKmTr8NNz3pXpGItRd2arCUX1v0VQ4czr1AN+GyP1NCjvyvmHC2JnfAu77GIDTf2z+hCXs6HXYW7o2FXr3snvqNkLnhmV86JZDrsam2C02RigS9fd+kZyhRbofDbqaKt8eDc6SPB9+OfL8uyhDKZjMe8vCNswV9VVkJzSG7rpyvortpcZg3DHZModXsZ3QicusO5nLSC8xhtnYmK7iOqFTKDWofwCSSAfro1S72M/7Zn//6RGWoIQkqZNc7+KKEWaR+ZCfY9m0jyfL86Zdz8+o8w00O6ZGlwCj9fPqg0x65DgszC/YGLDZc9Y9XDcwiCLovy5MhzyPc8uFRpHFfglfllAyabGfbS6zJ3XPuK/jK0WE1h1Zft0m+lLJc6EUmq5lDNYNbrXD0D/68FtFbs9288GUslgsPmhThM/Z3S2ED2+YDUuDtgbcoTm4Wqj4BWviYNG3tpMzirgwavnsmiWr/f2H1f7929X++5vkaJ4PJjahBh/FJSRJHLYuMTCQ7s4eXimhM/t4XPlNc0z6bhoNoNplo/EUxrUxS0bTcRgl0SD3DZyQCWTZyHRKtRcvSaGV1RKTedDds8GcY0U8pnMH9Wa1v79f7W/erPY3bzv0yUxIS//rNP1V8zScGZXPDHsAKC32TgsFjHPhU8iFqTjMyKkfatoGyB1K4+gvjcjH8ct/d/3Yo1XuRLHpFTPFoaEhrO/G1lHfYEa3inc6aQax/5puT/XJX6OvZf8/8H9zkf/hXBD/jIzP/W9QSwcIFL+QQskEAAAPDgAAUEsDBBQACAAIAPOi01oAAAAAAAAAAAAAAAAfAAAAZGVidWdhZGFwdGVyXzIuMC45L2Rpc3BhdGNoLmx1YeVYS2/cNhC+G9j/MBB60CISi/YYQHCMuAEKNDk0RS8LR+BKlJawltySlB0jSH97wTf18COoixrtwV5pyHl98w1FcnM28AYPoA6C4FZCBYL8MVJB8qyuW7Ife9zikyKirr93c9Aw4my7Ods4VakEZT1U7iGIj1g1hyBG5jVqGdtQ2d8g7ImirONejty7VivL8o26OxH4ZcS/kiNXxGsJ8wYV5Ho8t6/bqsoU3g8kA8xaEPi2J8qNFVldC3ybbbfAhVMPxho8DAYGY9TomkekB5KsG0FPSqdnHuLACVOhcTS/UUzYDVRQ//Thdy/Rz1ABo4NPrxmwlHCpM7+wqKNLKk8WOIeQe4cKvnyN1uu6xQEGPeDFlDEinMzroih2T3H+xEiiEOT+cXNGOw+SOhC2OQOgnUMDHXlbM3wk8GcFWUqjLEwGjytu25oyRUSHmyXtMkBobrUIUWy1JTJI8pDFif8iwcpqs3ZzZv55FLqRNYpyBlS+x5S9PYzsOjdz7TiFCn6EsgTGgRHSguLQHEhzDZ6+XKS6WjOw1zeJN3Z7wEq/3R7oQECJkUDLbTbOm+sHZzunRfYx29oZtLPDEVMwBqEycuSNm7laCK/gByuIoAHsBcHXTqyBCD+CqFEwZ7KC7Igpy+5Dq8HM9uVbPAwWr7JMmweoBM6GOxhIrxUFP8ItVQfKgNwQpmQBveZMozlHJGiV/aiAs3rguHUG29EsN05Y+EYkn6lU0vSrOhAQnCvgnXmWCjfX2jnjMHDWE2HEOhlofIFcqowr85cTdoNMNFx4F9q2HpvQYhvgKMsSTJrY90UkEjPJCNJTqYggLRx5K23Tn7DARzPVNIxbTT8Y193CkqaaWYeiKkIILtjd5ixMCn2rp14MQ+6tFwihrevUWbkSDnVhUTQ6oZN0GmZVc8soCiNyG0jraXvkrcmnch+CPLGYfZo1eY5ebb/zpDbReXWNeXCz83lcTRgPdtFOPSwSTrgdSR5awC2D0X7u9dLV4ZsLDCNTdADOiKOXNA3+3HXXIkffPecDwWyNCx1l7ZIIZQlK3LmadVRIhRByDFlHZbKAG6c2J4eVN3ogzIEl+KiL2MGJS0n3A4ke/ksc1J/DB2k4m7+Ab0bSFb5OFuUOG/o60C07dSkdU+4hKcgTaWhHG51dyiafrP8+/fMUTWSGEevL13ve5i62IoRSQLKQhSpXi93HKlWLx9r9UXKm205HsMW2BSEX1/Rb7mnsN5gJf3fR4FXyefcaT2HhJMsFG1fgm3LrXnZ9K7fsSSFlgpVQm0Kvd5wvhWC/mchyH+A9JAvxV5U/KyF1oLK2L3+Daen5C6Jx3Ch6Q5x5ufP+r56JnNYe+r8S1G4JO2HST5ioBT+/QJK+04HlLrw1nFIWFbRQuE+4JE8DVe+ssjcyJTZ6BmbTAhTuY0jPuZa+dLrOc38ibe2GJZwNv+wsua5eexZ8jbXdU9ZS1stw8jeK+shpjihEBQ5Ks3sasCJeyXuxfJx859OB7jzY8AM+bCc+1/IlRbWb3GESj6bdBEsf/87CXEG3PIj65phMXeIZ9jwev1nqJyyl7lGpyOlkHzQYuBFcSmg4U+SzKuUttefM/R0csPEIVOkGNifDywu4OQacbYHYeNwTcR6LYizW3s9kruvw1ck1ZVKJaNzC3wwEi3OvCC3p8DiosD9MyuHigLnj6eJix72vtbr1RH10JnLjPRYvOfM+fqejZ81bPLk5S3pyqrjababPynK3e4Oljjm3VC3cj09u+9qhECRXV4u7nizJMCsgzTHlnb/ItBOLCBtUsxIXK1UM+39jXsNjuny235/ZmZuxN4GFuQ1Mtv8zbFZCXDsixCuutMT6Fmml8nMaeh/njmbLUev4PH7E1rglE25F9KL6v0s1s5Yv2CInbHkgal+QJZWmZTbX37FHpxNC4Z9cTLleTJkWMyyOjjJ+1l9QSwcIGolQxrMFAADqFwAAUEsDBBQACAAIAOGUv1gAAAAAAAAAAAAAAAAfAAAAZGVidWdhZGFwdGVyXzIuMC45L2VudW11dGlsLmx1YU1QQW6DMBC8I/GHUU4gQR4QldBLrz2hXqqqcmBJLdw1MgttFOXvFaxTRT7Ynpmd8dj51jiMxoYJle5p4jbw8+X1DRXYujRJk7IsMf2YEfJFGOgywXCHxbiZJniGgZiTo034fCamYFs0eh1NMN+QWiVPkwTL56I5PrJjoN7+1lDykemtEwo1+pmzgS6HOL4Yd2jyw8l7R4Z1IJDMgWNMU6jyWN8b9TO3Yj3D8kJBMik0tdCIPE0A24O9QNaejGhI3K2cuoigwvW2Ar0PGIoFlvXrMsnR+ZX5N1Jr+BBP2VAs+WauMkDkfflAhUwfs0p3u3y/H1QQs+N2byhpsiHrithVW6GK9W5/UEsHCAWuyswHAQAA3AEAAFBLAwQUAAgACABrpNNaAAAAAAAAAAAAAAAAHwAAAGRlYnVnYWRhcHRlcl8yLjAuOS9ldmFsdWF0ZS5sdWHtW1+P2zYSfw/Q7zBQUURGZF229+ark/Z6uSJA764oir4sFru0NbLVlUmHpOzsbbaf/TD8J1KSd7NpWvTu+rJri+TMaGY4/HFm3Io1a+EnJTgsQeKbrpGYZ5eXFa66DavYXqO8vPwTTSjbjmWzT560ZknVqD3T6+29y/ykdOmByYatWlT3rg2zBnxpFizt//Bwg7rhtfDPS/c9HrefognmQZihhjPUcMYGdbc/sLbDmIp7FNMZzlLjWVqyNa7Y+jpMCk/8HKVlw+lN7YfwWHWr8LBU3SoMbJKRTTSkSY+wtP/Dw47vrQDmcWm/htFkLBlZC75mOozZr2H0Zm843ewDow3qHWrmhYi/+in7NWtJ8+a/f/jWP32bPFYpOTVBrhWsgqX5Fzg0vMK3sOydr7SP/IQttnuU5JLuU+C3ls2eXtd++OSJH0B+gCVcvvrnj/4JfYYl8KalWfP5/Mt1y5SCv5GFv7KeXb4iT2A6CPu3r+gJLOH2zq36odlhBQeUqhEcRA1XRgFXJbyu4cqJV64lMo2XeynqpkWZz66gUcAOrGnp/QpoNBwb0tt8Pl8hdAor0AJ2yFQnEfQWAd/iutPERTc7NKzqqxJ+2KJ5IEFIehtDuKqwAqaAcUORVVVDK1kLdSOVBom6kxyMnxdQi7YVR6xgdePFf6qAC7ljrZuqrIr2TLId1FB3fE0E7VNH7duOfede8J1RazS2EqJFls4vy9Lr1dMzb1IZEfJ69skTgKb2RtVb5PQEgGgY34042hHn171jjDUfT5QmrN16fnd2TJdKi72f6YTVhduDuURlhrBVmEzhTVvEoiOvPnli/sT+FTaAjaGXyA+L4UM7v26wreDyct0KhbVkOyQ9kVyxMciz3YaKLESzX1cvoeEaNyjf1axV2FvFzmKtEt8Kcf2av7QkRmabEHZkMjywlublyA+FY1z0pI0qgsUmCXpz4I6sYXWavPay5+bNAv4daZAFUyCvCk/AcHAxLhtt61f8kBW9P1mNaK/K9LHaCql7H/aDTkk+5kdc24bHUue6MCSC7OTVhmbv1JEjZV+YKPOKH15kftD4kf0YlGkZW6PZoRDsONthxCzoyilrwNctgCXk/qOQkEEtZDaDsoQMjDUqS6gXqlUYUX80UWvdjL44GhOv29SRoz6eh6HeHyQVUjhZYd7TLLTscJZw9l+cQXJrEToJyCqNFHyHXH+mXmSzRU1xUif8s9nQGx90sevEjSLvYvzGu5Y/FiO3up71XgEbAWyLrALGK2iF2NtDjoCKibVBn9fkCBkNZkahIcilbgarTsPlN7BmnDS6Rti0YsVaELy9IQbX3b4Ia7cIEglC2DnY62nM+ZuUL8WwRO/32TxQUdjW2WAwmKxfHntL1X+Zz0FvGwW7ZrPVsEJgdJz8a/UTrrVRoN5KcQTBYcUq97IqUqPfbKpbr1GpQqLqWjp5LFSJ/as3kt35dsUpyS2hSamHOpreePM51A2vYCuOUCHu4YjAJIGM2gGJvURl8ErD121XoYIK64YThOV4DP6ljB7oRKMRvcVd8v7zuaXYKAda2+aAClrBNyhBbxkfsstXN7BCImbfFatZMbAIhpciPER2WbfIJFqnrglkGiiuhfVCWuE8ztloaKAGlvA85uKipz8ao/Dpl4i6VhiZ4LhtWgQKE1CJ2GSOg7vNuItM3hRZnc3ieU1tJw1N7imQxmFp5pT0OZ3T1G7C0gHQEl00es01SoJ1Y8Lg3oLIwhzOhqMriew6fZjsjxjgRBY6ImyEBrIDqf7IbqDbm49Kk12Ojd6KThsPJEMft+jxK51pR6Zgy/Z75CHWRcT3UqzYqr0B0WlypgoaXYASaWQzTklO0bsLuQOBNuMDdKOK/TQFC4m5JxUxUENjNPgs1mAyo6m9podGcLb1EMaJ8GzkXvTu6y2urynKulVMD49EL8tZutB5cwJOEudU7mY8sSicLfEC89fdgPuxk1vAL6PDrwh3aX9lz81LFM1s5NFcaLPGHgTGCEPN23lshwvVrfKz4mwGPy8hy7NJd3dzaZdcT04Ar4uif0W6/srOCT5cMBJnLN/YN8b+U3u+yZkXyZCE9aE7+ATFtEMk4SMEIKt0CkKjaDLyoMcb1kmUE+lfatneWsmd9EM0feqcnM8pkJEuj0yaW3VyXkShokcj59cXHwHB2eeHGMJxPE6huOIQ47hK8KcmxIojpUw0xVGD5IQkONbYO5c6AeiEPImyPirCOiHoFS26+m1A1y9BW/M5MK1xR5kFQdIXTjR2k0rBlGo2BsfSxCBuYdDxkY5AO7JnhgvTdCB2qmNtm0TXXsTz6wtKbo11ep8z/25gX4+qzv5AVX+gqv9pVDXpzQlQcnnpR56nv1+I1L8UGehXQ0QRm7Ecob7jVNNPjs7J6bgJ/wVg6mPDKD8vzel8gO2jepiTaqTvaZ1/LNd4LISLApIFbf2x6kiZlL7HP7uJdHySF/5adFxj9b3JwCwIt51fxLl47gNCmoL3MSiJFlNp9mGW3Y6vBdf4Vifp3Ci/3x/bHl9GUNRUn3jTvksKLOKA0tTVqF7gpFtE0kXp+UUQqXByLHo5ip65e1oYjguTMV3E9ZeXhZOgOK3Rd5bGy99GyJeLUPSYLfz9uDAuE6oJJw7+fFzG8IwjbpZNWt8INwOXibd1R1PlcNWsMXjzeTSU+FQB62sd9KQAG70I62jYmpoesLVuDuhhlQtrcWErynlNZwhcqBOd33GTkcvs2GdnaXXhvov+6yqKZMMYlhzuhvUoDm2EFnbIFYamMdMAXAzDxijgTYZFZ5vBzd/KZbMCI6LhQ6TfabDqtdFD1vsg6S9Q/olT5OHz48PUM2mgoX7cv8XCT1wsBs4v5PTt0zGN+wTy27uiLzGeqDHOIrZWUettx6+VJGXn2TL/TM36Uo0PuFSqIdLWRM5AhasKU2jKn7qj42lZRoG4CNQLyHRWGLF9tZrUXludp7QeWt8feQmVPkbwA2ubKpIjHH8UPsxJEJswqkqbQEgVCqflaDu5WcMZiSHNacmUTgr/UZA7sNa3f1gxzE0+VPJJz64rJFgnru2GNZZ3nxehrobC11fKspw9eAe21Hd60LqSWwXP5+fnX7LJEvzFxZDIoAC9s/mJnS7jgSSkJSuMA8RP8tmJOOXrZ8nbmpaevH/nMF/IgZb+X/QTvWeiEjccEQr+mNcUGMy80Ny2aniVZ8MDPytOQYFBt4XScgKGDdst7m2ymIB+LxOag7aCtBZMgHQIX+xMI/E+V1oWp+FLilYcvXgjK9fcFD9rqrf+ohP6Zmyt0/SxGZZZ/tnq9m7mWyqCe1K0iv2Svpsz5/b8bnTkEP9zx5GwfHabpaNWEvfp2dm4c+J22JvQ87t4D353j+V3d5pfWZYjjvM5TTDpFliL3Y6BQvIEjRW0jdLU1WUbQ3yfQkW9C0xuVLKVzPEwucMn3qpvfkAphcwzLlz6hK7EV2VZXqV5tXvfPOpSMeReZCcyOO48tR06IUvz+SiROEROhJq6LE3imkmkNgOcGmV1ciI1RMBpPp3PsTvl/GK8iFQcXP8XF70SHPy4Gz0Jcv6pEecZnKX2C80rtnEv6VuJ79jze9Mvgz3sekRzYllkBYx9IfGmBJuZNbepCGkLVFaWZVZMzvCtWdaY6aS7D3DIUePE4Nbw8MYY7ApqpSSbOQE/+h6JP5qwYRqGTcgsPi/mn89S7D/qNHng9mo7JuznZ3+eOAwMAG7MsZEVw0A9XTcZ6XCk9PeImhMObcnM4mBq4YjBne6N7e6NociDJh3Qfc+oPrRafMFJ20It/cLV46agRnw49zAjfhogxlSHZGhgPrDWMqMJvk/yVLvhbHD3T+Oec6co3JHLN8uzQpc8inTqvDkRf/R5czFEph7HunASxRJfRH2oJdNmibJ4rvFUrlXSAqoTG4R+0KmuuL6YSa3RJyqZZ4U+P7s4XYi4hhdLINVMrz+xkDryr2HCva4LHerLcYUZQPfauktxp2ZygwEnvnM4E3ai8k2HIZ/9ALp8j6yiwjc9kj2VK8utSFN5MYVvohu1thPdDw3cstkQTLp7b5i8hIx3uxXKGEKFyBf2GMH8vxvU78SBgO2zwiugSO7uXjoH2GKOVhXZQwz/IapJdnTVtn8ey5g37cPvSWyzFg9I15UP4Wu90wERx6Nnan42JFHtBVd4q/DNUuGbAlaiulneBomyq6ws3dub88MKNCvL7MrQDT9qMEHFpFcKY/llZqJqVvQB5XusUSJf4/L53d24ZZ5cU5hmwVpR0v+aqtqm4GnFUVBLsXMdhd98/RSrOFqa2dEvNU7c1aY2jmabybvcx91QwbjU2ctR9lvL398029y3v0J4N5H0Oym0WIs2/Gjle2fLv4rqJr3QpVuObWzChm2odvg8colRfTd1oSibN5n4jCi5UJDkOGLo0NShDEL7QeK+Te9OU0sfCYHOiqiAkOTxexwdY8Zfhdnw1Ay5NfsbntEvWsK4x2NJGv8ETntQmxFd93anqzbJUWhnl5zoPifDxw/OJg5Ipzr7IT1lB/A8uVhEuKpHPbOHUHR8SQvCTl6QKTic2/ELl+3/y7332EN4lR4O2d8W5WRoJy/VmpLb/o9uMl0lTIoKkItus6VwNrVPTacHCI5gK447ccAq6bvoVUKyuE8+c/dwIBiiZ2e/IcUyyfsPO8di5zo01OrU/BuzE7nGQHozNvDJnGMsZlP3VGyO0cnoMGKQ4FSrSPilkpQ5zjwM63/XGX7Q2lMyR9WCbq84G96fR3HB/uYxPylXgVIW45tIUvmeMIU5kJGvRTW+H4ULSbSJhls66u51lcJO71BtRrc2F5zdmEFpA350TNjhJWTGTJkxhZvnjRia4y4uSmE+XIYaUxTZTI9iTifIpEsQ4U/tlxfLM3s29TKdn13MlksP1WazSa/TEmvSerJdtWRctbRjR7boNUMrjXjZF2R8Kcsye5HNBlk+O/vnHjIOpOjpvcddNwpl8d7uMZej9l4waliorN3BEssXOZsdnNaSGUvPq97dToiavXZVKgPKqVX1VY9T31N8x+s+PNpzvwt40W1re0j/B1BLBwjDjUH/2A4AACs/AABQSwMEFAAIAAgAGJIxWwAAAAAAAAAAAAAAABwAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvaW5mby5qc29udZFBSwQxDIX/SjbncRBvzm1hWfAgCHoTkWybmam2TUkzI4v436WzXvbgMSFf3kveN2ZKjAN6Pi0TeSrGih2O5Ew0yPvKWoNkHPCuv8UOLVhs84c2D/sLAKMoHP8QeBRfsUNabBbFAT+WaqSUvaSJ+RM7nCVxoantwQ6dZCNnl8JzdRqKXTT3GUIqkRNno9YDGeFa+knFxEncPCTxtYejKCyV4SvYDDYzUK3iAhn7/+Bn1pW1h5c5VAgVCDyvHKWwgonEDrIYJKZsmxA5WyjCRIlLpHMPD9awkI1z80kxnsFzPWcHS640cg8H2ZY0Z8EgZEhLtNBw1n47vXD2nF3gisMr7pysrO1NHe6KyhgiK75tn5UbznRqSYwUK3d4lVN/jz+/UEsHCIEoeGYjAQAA2gEAAFBLAwQUAAgACABWelRYAAAAAAAAAAAAAAAAKQAAAGRlYnVnYWRhcHRlcl8yLjAuOS9pbnN0cnVtZW50LWNvbnRyb2wubHVhjY7BCoMwEETvgv8QPOklFS+1Bw8tted+QGBJdbUBTeyaQKD034sKRQqWXhZmZ+YxAylt40j48iL8aS/8IRW+LIXPU+HzLOJ8rEgNlvemBi17TMKgxptr+XzjJAxUwwDOkzrWcrBIzN5RhwH7enOAyuhGtazYdAyx5+tHlSs9WnI9assKZsnhFCZ8OEUYRwDzKrm0AHZryTsnoyQMsBtx3nwl06hutXebMyzRTUT2PyP7QHT9BlBLBwiLNzFQtQAAAH4BAABQSwMEFAAIAAgAWnpUWAAAAAAAAAAAAAAAACYAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvaW5zdHJ1bWVudC1kYXRhLmx1YX2OvQrCMBSF90Le4ZIpXWKdrEMHxfoUgUu0tzVg03pNICC+u6QuIuhy4Px8cGZ2PihpUns0ab8xaVuZ1LYm1ZVJ9VqWoujoFAe9qCpF4XpAPGS36+wciCFcyIsCvmKNeJ587wZofjYTw+P5B9XO3wPHkXyABgJHymOmW3RMSiIur+ybQlx9Wn2NNt8n370AUEsHCAo3S0OPAAAA5QAAAFBLAwQUAAgACABlelRYAAAAAAAAAAAAAAAAKgAAAGRlYnVnYWRhcHRlcl8yLjAuOS9pbnN0cnVtZW50LXNldHRpbmdzLmx1YX1SwWrDMAy9G/wPIj00YWnWnbYdAutodysMdmyKSWM183DszHFKSsi/j7hJSRnbwUbPen56SJI6SyV8VVpBDAa/a2HQnzPG8VDnKU9Li4ax+54QyTqdB5QsFosXey4R1j3n3WirMy2jrea1xN2eEuk0C4criKGlBKAFwSEGL9MGvRBUWuAEduGUI/GEckIa8S1rVldoJqwR96yOkqM2LhWe0FRCKxAKylSYyi80rwLguhcbXO5mQ3D3sB8dw6WO0xiLOHBJjrLxGLn3jhJUnBLXMDyhsq27Y28o4IVw0PwcD7CjxLU6ytEazEVlzdkPIsbWqw9UdnttojU1UkJJaYSyvpc0m7ekeX1Mmudl0mw2SfO07I8XjILu9gNKxBEYc7NaXeYJ9hNVb/b2OWIs0+oocoj/zGgDbffP10ioypq6QGWvnuG6V96vvZrCfr96+6j4D1BLBwgaFsr1UwEAAJYCAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvaXRlcnV0aWwubHVhrVZba9swFH4P5D+IPqWg+geYOdnYBUaggxW8hxCKGh+nwqpsrOOuo+1/H7ocx5c4yWB5iK1P565zPlmVO6GYhhdkiXvMZ8pB+KcClrgHQY2uxK6woHhQEPnlfEbb919vU2tEKovd3Nx83IOGWu7YmrPUI5WoxRNDb+HDmqeb7bK7U7C1X9aATa3Z2sVU9LB0s2VRFH30/iFjz0I1YCiMvNE7lKV2mk2lYIG8uJ7PGFNtrgW3/88h5VYgOPAS3vzCCV7PZ6AzSksoKQz7Ag/N/lMmKoQ6+gk6g/qbVAg1M1hLvX/TzdMD1KS0U8IcVfpR2WjNL4mPXj8+IeVt5RJUxnLvbTKOE57vwJUIsu8I9R0KhK5h43eNP6XNdux0dd7r1NkH4/dlhaZtg0lrb5cUbNlrj7zRC4zPpMuLeM1DLvGk9+t4veLpik8HsRp1nSFf9661uum6HhvXxmOhOja482fVVXEj4wEamhXT4gkGaLrygzKAT+TGbNCduaAcF8aX0OVDY9U2TeKTiAjoCoWWJZE8dMzISsHDC7ES1dEEn3FsUYxjv5R5q5kkWiqGj6ApbDe5Vur3o1TAsG6AZaWHTpACRdDm6dw4wYMP2mFt/hsKZEtcSBLFELg0Wfvbl1i6TSSsTYtycBOV9AZs48Ld9uUwCFpqX7R9GfILmwm7crN55SvpaEQY9D4umclD5DJ3WhGdfUJd0K/fgH3dUXBqwFHGoAycj2oilH+K4bj7w2sRDq3wQNhxj86VcZj4Y2R4IMJ0eYYr/d3yXwmzp+EWn0uNoNHYgKZdLU9w3y5YaFuZsxEThq+GPmEeGniCQcccOqBQ7BWzu3PB3TVNjW5xCy94tijTNo5T+ZBdMVxMYSzD9qBO/JUqm7RvHN+DauIf78da8cjngESoG7TUFJy9WkX6fgoNbl+5xfuBDM9rIEKN0DtXAvl89v4XUEsHCL2iT8HKAgAAgQoAAFBLAwQUAAgACADhlL9YAAAAAAAAAAAAAAAAGwAAAGRlYnVnYWRhcHRlcl8yLjAuOS9qc29uLmx1YZ1WW4/iNhR+R+I/HFkakVGTaJC2rbqdTLeXWalVxT501BeCkAkO4yU4ke1Q6DL97dXxcS5koN2WB2x/x+d+cYoy4wUYq6XaQOI341FBcF7qHbctHtO5Ja+OVnREPLWk7JnrjoSnlrQx9aoj4akh2axUmdNn+aoQMR0b6u653qC6HbfPMe4bguZ/bARy0aaBlTggiEsDVVxqAwmtrdaydb/ZtqRjhRpxaUVoqVCsW8ejBl4+zn5HZbJALIqid1nBjYGfxKrefL/mlRU6/mhK1TDgHhL49NLJyGuVWVkqECor12KpZBHcjkcAWthaK2CqLgo2Hgm17piEyXgllhjh5Y5XKBJZ5sDSlMECEtykKQsdxDqIeWjVQisWNqx5C+b+mmoR5RHdIrpjtC1oWQjOubzUICGBuxDuDtM8hCmsS7xPDmRYC2h+IJ2zMgdV2qFf82wB9lkovAGXiElTrQFL0/rm7s2BhVShQXbrBLuw+dhFUfShtlVtgTfFT9xWrIEb4PDLbx9mbTtgPiuu+Q72bbcQ6lPjZfQTPMwmXQn2vOjndMImEMfUFEgLYTK/+TM93E2j9DDN05QtJuHQ31tkmbDJRXdUvVsJfdEdIg3d6aOf7w5xte5EEfz4LLIt6oUZn4UQSZUDV2uQKvd5RW1/JW7pculVzudsxmdssXCpKozw9+8TiKjzL7FEP6tcKmmPrxkfErjOd4Ht7EpbSzfx9M2GhdD42S8i34AuHt8O0+Am2MUslKuPIrNQauBa8+MwHY6xDxrLsy3B9+4/tLoWDyclC/hVGgtlDrzQgq+PkRFC0VXzXxPquKgEnUaf1uidG4IkYL7o+lYL4+cXeBMTv5bajzUqC6mzuuAatMiFFioT3/lycLfne15Qa/fSc595pge2WIAPN/QZEsAgEEz2SLN08YQEcu7zKXP/JpBf01ssP4xbqd274MoXEsK6OokieNKCW5c0JzOKIHPlvRVHxASmSq6pvi1I42aWqbhuCqlnDlmKoH+YIIEpAdgt23APUtGbRAbReHRSctg6m3vWDaS3ztJvpQXfNkcXOdpqYeZbjBulO9j304w/tErBF41lnrWNvcw7pWeRenTy6HiWIPcW9nqKzRnOLf/IB1qYEFjI3DBjC3beh2cpUL5n+kGUwyDC9Sii77Lne/PMB9vbJgrOiLfOwGsBQo3yVYD+zelP/+D0C7s8UrDjlmRG+54zJQvW+YAfB/ToMvKlTyPEk11f96k0Q4i4KstCcOXITVQ8iQb8mUqHhOPRy3DY7XlRD4YdjjoaQRuhhJYZPMFbGk0n0nMieSdvw8mF7mwW1gKerkzC/z/9BnMvcHr6ufY58N99RO8Rck/wCZrbhW+P/PVLk7+W/uqpmbD7SRzbOJ484Iverwc0OG7rQPhGc99UjRN0ZS+UXVa63FU2IFvd52nA0sPj+/Tww9fp4Zspi72sQOAHka+4C5Kuivjyc0RoYapSGXFVyleXpYxHPiAo5W9QSwcImV4fGmAEAACXDAAAUEsDBBQACAAIAJOMkU8AAAAAAAAAAAAAAAAaAAAAZGVidWdhZGFwdGVyXzIuMC45L0xJQ0VOU0VdUU2P2yAQvVvyf3jaUytZ23tvrE1iVAciTJrmSGwS0zomMqSr/ffVONl+nRAz8+Z9TBmub7M/Dwkfuo/4fovJznbqw+Xs3I88y7ONMGh856bo6Lt188XH6MMEHzG42R3fcJ7tlFxf4DQ7h3BCN9j57AqkADu94ermGCaEY7J+8tMZFl24vuVZOCENPiKGU3q1s4OdetgYQ+dtcj360N0ubko2EeHJjy7iQxocntoH4unjwtI7O+aZn0DN9x5efRrCLWF2Mc2+oyUF/NSNt55UvLdHf/EPCoIvccQ8SwG36IpFaoFL6P2JXrc4u96Oo49Dgd7T7uMtuQKRiktUBTn5FGZEN4551oWrdxGL3T/6liFSf6VQ0yOmSJXXIVz+9eJjnp1u8+Tj4BZQHxDDwvnddYkqNH8K4xheyV0Xpt6TqfiZDmcGB3sMP93i537yKSTf3UNfznD9c9xHKw52HHF0j9RcDz/B/m1pJgUx2Sl5O+Ia5oXyf6vPi4Sao1Urs2eaQ7TYavVVVLzCE2sh2qcCe2FqtTPYM62ZNAeoFZg84IuQVQH+bat520LpPBObbSN4VUDIstlVQq7xsjOQyqARG2F4BaNAjI9dgre0bcN1WTNp2ItohDkUebYSRtLWldJg2DJtRLlrmMZ2p7eq5WCyglRSyJUWcs03XJpnCAmpwL9yadDWrGmIK8/YztRKk0SUanvQYl0b1KqpuG7xwtEI9tLwO5c8oGyY2BSo2Iat+YJSpuY6z2juLhD7mlONGJkEK41QkpyUShrNSlPAKG1+Y/ei5QWYFi1lstJqU+QZZapWNCMkASW/r6G88c9ZlF7+u5b/3oiKs0bIdUvgxeX79HOe/QJQSwcIW2tQUoUCAABABAAAUEsDBBQACAAIANUR3FoAAAAAAAAAAAAAAAAjAAAAZGVidWdhZGFwdGVyXzIuMC45L2xvY2FsZS9lbi9lbi5jZmeLTi4tLsnP1c3MKygt0c1LzE2N5eVKSU0qTU9MSSwoSS3SLUotLkksKtEtTi0uzszPsw2C8BVcQIoUgiGivFy8XNHJ+XklRfk5xWSaAABQSwcIcCA+Ik4AAACLAAAAUEsDBBQACAAIAOGUv1gAAAAAAAAAAAAAAAAaAAAAZGVidWdhZGFwdGVyXzIuMC45L2xvZy5sdWF9VFFv0zAQfp/U/3DyC4mUGgo8oAoPkBgS0piQJu0FochNrqmZaxfnsmmU8tuR7ThJO20vdXP33X3f3dmnbSU1GOu2Uqs/eNnJa9u5CkGAw9+dcpixsqxx1TWyljtCV5YvH8O57iTLZ2c6pLuTTsmVxvbZLAPqOHjnlKFnAwPiOCggQMRzMDZIyqxtsvP+O/npYefr9EcyNUhbJEleF4ijzwQpy88+2acoB8SJYXaWgGjuvPfi6mYIvbi6AQFGaY+az0HbBnbOElakrAHVQq1aT1aDMvDVtOS6LRqCb7ZGsAa+yIqsUxbOBbzii3f8zduQqLbmBcHK0gYdSCLc7kiZBmiDsLH2FoLnXrU4O1NrMJZOZPOyrKxZq4arkZU2aMAhdc4AmnoszeraSxe+Rq7t0PFbxN3ge4pgBKWwdWdiAwzea9tkW2ybfHYG0LN15C0gwB+jPVn9AMcYtU4OASxMjoE0NQQEt6tfWFFp5BYD4LKT351dK42OgXWQ+dZMxx4ThwwDz4/Fz1wI1pJTpmF5HhrluQdlDtcFOn87xltOTppWS5pohUltPiYoYO8Z5+gc5+ycBRjqFoey/glIzBPeMc9IWGNbObWa8IUhJpErWz+AgH1MUEnCxjpvYS3VtiNWDKl3nX+RPUcwH/zPfD7/GB7Rvg1bYBl1FVB1zqEhrQwuTbddoTv8Dbc+cUf8UY4YO0K0rcYP1ZJU2j/k/g1ni4IRSwOPbh6PSmo96Uyb9tl++MdExjlPWM55zo40g4DFYZhnDEjofPlhCSxNZTr0tGqSwtcF09esn7NvNu9zey+f0D2p8/GezUJsBOSnmk/zHpUwCeScLRnnp3Bv7iuL1yTu2Tj+izs0lPkqil5p6v3kzY9N75dGtGd7xgptq8LfnsN4EfuV0u8QX294/v8BUEsHCGifE8ywAgAAkwYAAFBLAwQUAAgACADVM5taAAAAAAAAAAAAAAAAJAAAAGRlYnVnYWRhcHRlcl8yLjAuOS9sdWFvYmplY3RpbmZvLmx1Yc1bbY8jN3L+PsD8B6Lz4SREkm+NA3K3OTm+21sfjPicAzZwPmgnHKq7WqKHTfaSbGlkefLbgyLZbPaLtDNBZhMY2FGT9fKwWCwWi7RQOROk4KZmNt+TNdHwqeEaZhmlBWybHStYbUFT+lVLtBINy+a3N8KxcnkAba8ygmyqxnLhGVeeo+Wn9C9I/SdPTdaDhpasgJJLMGTd/mo76pwJQdb+b2zUXCIm97dtFIoVZO3+RDrGNcp0f9tGe6qBrN2ftkmz4w7cIN2PttlYzeWOrMOP2FwFW/rmlfuMnWArsMyyrUAt6Wc31m2zcyPdNlFoseszus7V7hJ7rVVV20jXE2VzJXOGnY5v5T/bXmaMn1D/4/YmztT7H38iayK56NrKRuaWKxmG+r20oOvZarWa396QXmMUOIt+tOWymGUpUTZ3fBpsoydlgixQ+XK5/DYXzBjyQ8P+bfsz5PZ7Wao402kjWZMzCmXiyE7mJyY4esH5aYGN8FgzWfwrnEzb9nR7UyjsQh3OFTyMzR02evnKCX+3b+SD48sC4OwJwTnWd0wIKMj2RH768E4VQKzyDuhhF8yyVZ/0yO2eSEWY3jUVSGsIK3FFlFwyQXJU1nJ8WzPNKt8Wfc/3qANop6ds5MwZM05Rf2GtkKqz0swJmzsZBWc7qYzlOQYGdJGl4BIIl0i9LDmIAiUTwssAwu5B+ibSs87mH9Kvf3xzR9aewxODMNCyDScN8c2Cq85SKfNFtg4NXJZqni0ym81niH2z+ZYNfOLuLqiSDnP44wLDLPv4+P67j49//qePj3/47cfH9+8/Pv7+tx8ff/+7zFkuWUjelFct6JfGCwyY+LLzs/PGT+XdW//3V5xCtf35bRzPwuyVtv/ydquUACbngfDp9qZnvBUq+95C1bp+5zLGsvwBDYTdH/Bj0I8KSJBPfvWL3RP0FiU2plLIOvrZzOnwUOfRTVzj6oCrj5ZKUw2s6HkNL4lUNgBIO2I4mPXiQddNyGbzxxTMN+fNk2QVrM/479OC5KqRdn12f57Od093d4uUXXLR+/YDSFsy0TDvcWjarOuaz9vfqStHyENgrTNGP+zzdVzvq9qeyCRv58iLMAt/F+zktk6vzn+OjMBlAY/rs/uTGOGHhn1odMlyiALC9wskfKd0wu++XsD914a/F4AxL4romkZycK2sz/jv9UHZk0iGhF8DUT3y99Jye4r0/vO67kZyS2VTbUGvz8lHFPzkl/dmc3sTl7AhhsscyJvVm9Xv/kDMnmkgcQs3pAbtt4gFYdKtkLQXifcueHDp+jTsuLH6hBuN31kQKVGogskQiokqid0zGyj2zJAtgCS5BmahWCHM77SqyJvV10TJI9PFwkmPqAm3BkRJuCGMNAY07l+ES2NxGauSMJ9KLG5vWtRKFOSeUmS7JxWgYZB9pyQ4hX9TxrqhucCBqA6AttkJIE19YH5JCr7b21bhrFYcFz/upUFiG3TcMgyjDVTeWhqs5nCAgpQ4wv6oasxICsIl8dHvDTnu0S5MCBfjbm/uKYVP9wjczZTb0JkQfnLQkPaoyIwJo1BKnA1myH0MGU7E/OpoAvLZ/Y5VcD+fv2ToM48RmW5vflS6YoL86e/fx/5gWrvXECxr3j4DzPxl9m/XkbfsrGYal3MQhcgwS+8guclQEtqRH7kQLU4gBn34wESDW6ZrKbk21gtBr2MyB+PdOlA71377NiY7nxNoIFcYSO2e6wLnFxsD6s5BWg015LzkOWE1J7lQptGwQCs8ANSEWz+cLeBhALNbZcBt7Riy/X+Y5u0hf8BtjrVIcDElujR+/JnLAleSb/TZgXdOtf2ZMHnyTWGniNyr4Gq4+n91m/YgP7f6RBMazCvmfmcnW2Z4TnKEZ0jpYXipS8Ef0IBc7szbuO5n36zfrL6eL5z/V8w8QOEWMorjpYuRTjz5rzXJWqbM7entDhdSnzafrtxBJT3LRHwhLajsmN91+gPZrLILklEa+TOvvdb8wCxcUL5cji1uSKHkb6x3nXtu4iq+XxCj0AbkPrHjfRsEgzx/GuUYQwwQbn9jiLHoijgIRjQwkUzaatXZwDR5DsYsEuHtqXbWH6Tb7LI5Ui6yhDxrDRZEJVlUGHlCnOTCvjPko/1EcuA1eGLst7iTYI8lOWatfmjY31j9AaxFD3LcDXyG4S+8LHneCHt6Gd9fWQU/cTiOuNqlgFWID7iQmWjz4k0WigmuJiGt0qfsLk1lQ3bnBWwbLV2adW7ztc2IfVU2IFBENt2VLa7wogJLNZhG2AsyUpJW1lMKMgmAdj8zTQ16YefxRJ0uMbs4B2fCOgRSPs27xdEKzPdg7GcG7WguIHZ9CdRUNm6/1VY4ozq83sQLXyGajYQtJuRnizhbD4tDHCmuN3eecMWX2cMi+8+gjcsdrVi+5xJo5gbst850yEyz3Fej/hegzCawRBU0m89dMvHgAlbXnitdG8gcvhScVltlXw+YE+9AecWpai4PIQpEZ4hrIsxcPM350+frTCQKb6cuaqzbQ9C5O4VFV82VtFoJAdqsool9LSJ8LD7DtVPFHVmnZ8LXGdtOFaOhXYAEBbdKfxFUXtUI2NOiO86G41Nq/QzRMi5BZ3drFwfSIWVCYbbM8+V1spzpnVoe2U7J7G59now/SEIdyaUo1FFkCWyUr1X+AHZpuFBL//t/ribwOw0DQxirG2frpVti2d3a/Z22yJAkJWJVpZa20doBfZ359uKnHDFjGvMZ0KfXxhAV0WehaR3ktcE4PZNYcLJqpV/PIq2CSe1bYPkrGsCLn9QcY+gy7FmvhWG4OSZoUjxloyXLEcbr5xRBV0wk+s4ZE45lSDiyu3XMeXqkFZdIVmguxBcB7hVSp3AavWDbL4JEsO00gJzpLwIgZ3oagKl5AXp5gD3PxZfxJ69yGk6yUbVYOmd6rYiDKimqTDEN9/+n3ikzCufysHDni1gkD9dnR9nm1iuftlHXlFwFeJL+NcBy6YsU2B+yPW66DO6rnSq+8olKx+MVYtZqvEL8GZRunJIkpaJYurjrmLH24Dj7OOJAXefGjTDhipX9jnJU9Cc9G+DFeY217ueaIWTdXBpeAInso+uHdryefoD0EhiXyb1sQkL252/Mr5vekwbT/x/Zu1LFs8bXqvV3YAOB08PDo8ngNmeMenCD01UhrGbSuB3eXTP1SxET9DnXecMtxVImR6pQG5pgJMvlm9XXffYj14C8EnLM7nnRYyTuRjUwkUv3mhIerbvcfEsa6QUX6Q2xN9NIU/eOY4wiZSygZI1Izrsj6sXl4bzoQO5N2R18k3KAqrZcMqv0F4ARdU0hqZW70nplDKhlSrs5cv+s5dX1H0FTr20Kx/isuclAQG41z5cOPLox/uiKbZkTugxCsd//TCgKyN12n0yBqxDEz4SWaW73FfjD63XyWPIa7o5YvuXFcGvsFVvV9ufVoGY72EXTCJayrkn2Q8Peeaf+EexR6YdsEN7akIhavE3Tu+xpif/BNbxr5/WawB66qbvxiyG1YvhW6PI+wUtHMhmqK1ZveHGHdykhcuDn1Sv6Kbp4N58GajeReD1CF+Ei1d0bcm1m/cJ096ZoTvxTIs9Va1V3PE5ES9C5dlO5m1h8uqbqVfvtaXpN7UusYJLYnNolrNtY9E5K4JuWIbVrS9m3bf9+wtee49VEYJn3dvH2AgLrmoF+uKXHsbiXg0gyuaP3p+wqkmHRvjfL7jFRfKZFVqtosHlK34WawUiuwQ/h0MNZdDOxWpFslc2nxzV2sfggKLjCo9WsfZjWPvTQquQirXJusj+6pEHgRf43LgKd7Z6bf4+N4R7Ep+pP7TXt5C3LuQ1UOa+BFpGkey5HiIV8L5VQu9PnCWrNc6BVIyyvBfewWzINBpjO9/RTAw1Q41F0FBHpxL1OwGn26kiT7H3X8FSD68Zjrg8o/faonocXgr3ekANP9jEB2g51NXXBLLR8xu1GmEKN1DIu6Fao/IEeuGmY4IZNEmJiTyuQzXhErKYHDkeqan+VPiT41PD8Ycv0WCY+rcobS3ud0dD9m7pg41oJ0QwRgoTqROGgLnZhBDSDLvdCZqdV058NC6B7M09IzeyelpjK9gZRsUdaMi6goFvYswNXWAhq3KuhZDA+x+0PaBXH4ZdICxZT2CLVgT7dIHKqcWJ66rmkVlFPAWkP28FgBPBYQ26hoIi5xoKVeyU5luYm5iJBRO0Us4rtgFoN0Jv0jghLAk5jqTQYGzimaVEnirpKhFKUhuIatRthijMwjYF632AWX7MlLFgbbyrnzLRSBS97keJpMTmfAxf8zKxaXgEtWe5T+G6ywVitThM9Hbph33U8rd9/Bg/aLNLSgvsHLSlFqTnIQpzolhnAQCQakDlQzQreTFh123BRYEHvGmkkyhVg6OaQrh1ClN2D9hovUEjgu/1WNdpJQZd9FqUXOUn+z51FciUEd/gsF2AuScatwoV7DCUY4Knhv8AVCvY4okCubgJypUShjvLyFI0pLvhBF+RSF0B1HsyOoY39GKvROnoOzZFxS71DK01xi6f+LZaZljZ2gw7NRB97DOKoqQGKpqb4JA4DLpfFJUqhjmgdT8r2wIppLJFwvOI6oiC0ZEJsMVJM0HqKghuUNbV8LM8fqFUCNPZ4XIGLac0PMDZWNHo3hSOirmvgURe8od3cUl/oKhrnpwWp1GEi7bkoaBW4U4HjSTSAL8Z8+AoPcyf7RoZ11H6UZfPLLye6U1bFzfb5KP2o/n+CTJKLFGB5LL7eHovxtr9TTNBag8FHfxNZAUYXC7WheMRut0qeP4zWrdIPtFASJikaA9Qhy1m+h0Hqpq1vHoUxoTAMT3albLjg3S/ciCbXy5CaiZ0Kw7JqjCnR+3nZgc4FeFc4iCKDhukDgqdgeQ619aYxlmkbVYynYswBsrhCL2HHLD8AfbmqK6zXdXr6SzrwZdIVY0zLv8hkLBN4JsH8wKWG+AqWYtKDBSq/rQnBjU8HJRsc5PhOYhrn13IQ0zFMzXSiCrNkwMe0z9e3AwmaifYQ9RJa02wNfGpQ3VU2eLQgCyiuUzlXFZh2OO8Pk8vkiUrAk+OnJryIu87g19QFloJrXAlxInFJKHedowPjBFOvg8bIc5lk8gzTLWu8u6ExHlILugozNXAj7dasi4S5QtXR37C95YNOVj8Kx8qZq3lhOXFUQYvVjrYiFkrv+P+BXSiubaK0u/DuNU/KNKgOizRO29XKGyH5pqV0FdzkKwjpl2piSeoZyFAefgxrPG1ZKpXw31BLBwiS/O9vaQ8AAIs7AABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAACkAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvbm9ybWFsaXplTHVhU291cmNlLmx1YZ1Vy67bNhDdG/A/DFgEsVFLRrYBhGbTXdFNgW6CQKGoscVeilTJ4RXUNP32gi9Z9m16i25saR5nZs4cUsoIrsAJKyeCBg60THhIr8emYcQ7hQy47sHy+YqUfSfWtpbP7HgEY3P6fqcSGFmpr9Dkh9XsfLcaa+e71TFyEsPNFV/3u+Juf/z5V2hASxVsVVV9CD0+gCt8RjVxGvY7eSnjhK7TYz2avtV8RGgaYDGYAQ2o9zuADUJoIiXE1+CVl+SqpWvJk7GSqzUVboWhAfahbTvusG3PJdKdWZ2w0m9soq7ZmYV0VA5XfMHHicurTn1+uwKr60PKWIcyFth33qFlx7pmbXsuWJvyd/Cxg1cae1n9P5d3AjW30rwyve73u/izWeuXj2mxn96n/69lw0/azPoX461ABw18+VrSJm75CC56VlUEh0XyVj8I5eK1IGk0aGNHruQf+JPnCfaQMI556xkxCOaHJBbIiKw5eB37ObI0RRHRRVoXjlHQeoY7vTu9K5DZ3QBr7hFzrYy1Rv4VNv6idm/SSLfiVQW90W8JOkMDWpglDcD1Ahdvo+HCtVjAojBXLeP4Xit0DmZ8axG4IM+VWkBq+Bw39bmu69yKNrRRwbe7fjiZf8YDW4iJbEFzt8WPKf9TrpNCtvjJ8kCwwnSOkzzT3VGoZm2bdNaeD/X3RxYupxRXVSOXGoowyw1xRXLAO2eUJ4Qw4AnEgOIJLsYCDcYhkDGZjBflhLcWNanlTTUpvkh9faz7asKbquPi6WqN1/3/SC73TE7drGxl6naTVBU4kkpFP7+REUJP8Jt3VJiXBNxV0qW8f1paEHl8SiF3ilgPd9bmA+sORr7AwJ8RBqnJARmYB7Sx1QVEaPpizZhZryoQ1jhXjaYHi797aRF6gy4InitlZljXDs4EEIcguAaj1QL4jBY6LK0g6ng8ZJRaUTuMpnfECU+3TmJzMAe+OoRn6WSncPtFWM9DouAmzZu7rov1X5m8D8pcbo1bNr0OjWH/SGshiwbpwA3Gqx50nH7g04T6BJ2nsNk5XhVXpHhFdEiEFhQntKfCkgEX1iNjyMyXsCL3JCewWE3cuvB9l5QX9Ko8HsSRh8nWl/fw31BLBwgJdRSEQgMAAJMIAABQSwMEFAAIAAgAabdIWgAAAAAAAAAAAAAAABwAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvcHJpbnQubHVhnVZLb9tGEL4b8H8YbA+hUIqF00NQtxs1RVwgQFAUNtCLbQgraqiwXu2yy6UiVVF+ezH7Imm6dtELuZz3fPNYSl0KCX+2WgEHg391tcHs1XK5xlW3EWvRWDTL5XckUMhOvJqdn0mnorTZCln/jR87caM7U+LAAJsYmIqTOZbM7YSpxUpi+6yVJDVWxp2QnbDPRxCFxqpOCLh/J+IGba0qHelF+I58e2jIF70SHLi3wN0rklq0W7TCUsDAR59RZDMW2YxEotDy6rc/yHQtiTafz38upWhbeE+hvfP5Fb+bWiXP79819Akcjqeo0wgjtrDS6wMcdWebzl621tRqk/fYX2OFBlWJi0vVbVdociiFxY02h8UlK7VqtUT2hdXbRhsrlGVfWGvXugsHNIadhu4ItAUcW1fw5K/sjEFlZa0w+Dmdn1WdKm2tVQy+8EFe7VDZjMLOnbXZ+RlAqJIgC5RfpHg/Q4meUldOH+wnVPQNQR+4oxeDoECoNbC7/dWvd/tf3tztf3jNiuKx0I/eMQSnVKBJi2dOyQvMotMkf/QUACW2rkEcI4/URthPwEdxXLCiGEmd/KuuUhQcGM/W2kM9Y4N0xyAZrID3lQ9mr7F6IuaBA1IbmhwllEQiF9XaH8PBvejg1glSaQMI7syZrzkL2VHVeULJ8zgRQ28kqGKTemb8Suxpf3vBKT2p+FR4TC7RqfLcN04swen8LOQ1n0NrjVYbMFi1YDXQysEWXEPjmihhiOj4gNgQmFsQst6lneCEHW86vrhvDAh1GNKEbPVHrR8+qAWEzdEzu+bGivJhARTABs2Ql0Yb/uNoD5WVpljaBay0lihU4HUrWZdPDLN7ZqSS9/HmIbo8VSxYHQy5dSn7Xev0HY98uSXs+7wXN9h20o5EUua9TBUWQjDOgXk7w3FJ+kIdbu89Ldw2FKIneHe5owBP91DhzX1QFk3js/5+mDdzcLBZml66NjKfuls+StuI8GjchneIl8+P/SiGKy9stViDbAYGbWdUiJamMJ8ohSuNTS+Va6fFksppFjdfBGS3o1Z14ZwecUY7pjQoLGaqlvlul9OFlhZMavrb3e6eym06jLywqp4Y1/FykS2OaupQYg7PjADdPAbPY/0NHd/yC/eR2uz24n7GeeyL2aAKoS8NVjkaM0rQGqFaSTmmTo094nLCCrSBjP3EigKNKQr2liU0X0DMddEAs+dRITD+p9kQLVmWsQgvOItrva5gfEF455+NaGKH9DeWq9OwufseIIVxFyQXyea/JUS6U5w+vxS6t+p+j9LNHNcS8P6oTb8tw0j4y8j9e7pt4KlTf06icuxT79L/VzpEwjocgDIgfuUwvxjhFTk8nb6Fi3Rjh9/X8OeaxVXL5E3cO4O5Cd4e6bzupYPsi/9mTi6smyD8D1BLBwg/O0G9IQQAAGIMAABQSwMEFAAIAAgA+C1SWAAAAAAAAAAAAAAAACYAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvcHJvZmlsZS1jb250cm9sLmx1YX2R3WqEQAyF7wXf4SC9UKo+QKmlpY9RWkmdWKXzI+NIWZZ99zI6464UeuWY5Ds5SaqqwitJCUK/6M6NRsNo+MhkTT9KthiM+WYBZcQM0gKdkZI7BzcwLM+LdHOaVFX1PJEltepoUozZ2VF/bSnLbrEajj4lP26JEqRPT2kiTUfy2r0jKV+kzKNMWdd1kSaAl3GniY8imwawqQQ7aHC+HJgofy31fdDAsjKOa/93AKJ5oDc2VK12WowaE412zgM7ase2p47nAsJ4JPZQRqybaG4EHhS5bsizj7aNG27z+r64y4oNHfudcwPrLYg42lvIvaNZR8hvrP1ZGcBa+Ef4hCvsR1vDaRLmICHafZY8i+6y8uxZsagJzb7IvIhq8WCZr8gK36v0wCzNz/+Ar9iBS/ELUEsHCJIDarYxAQAAjAIAAFBLAwQUAAgACACqolJZAAAAAAAAAAAAAAAAHgAAAGRlYnVnYWRhcHRlcl8yLjAuOS9wcm9maWxlLmx1YbVa3W/cNhJ/N+D/gafDIbuoVo1b9AoYVS651rl7cJ0gMfKSGAuuRO0S1pIqRcV2HfdvPww/h5LWMYprHmJpOBxyPvibGWpXq9XLqqV9T94q2fCWqeOj1Wr1suGsrYlWtLp+PYiq/xfZSNkyKibD51ywR4YvFWNodL3265CSoBepyP3D8VErK9qSA0zHR55BSLWnLf+dnQ/0vRxUxUhJFPtt4IotsvW6ZpthS2vaaabW62+n7EU70GzpxXWKC01K+9dqoO86RppBLNr+9ByYeM/q91pxsQ3TWk9fewEjimc02yGl/euJvRFGSvfgyXtZrwXdg0J9pXinC08Ju6Vc9bBb+OuJiu2ltlaAB0/esbZjhts9+YFKMarZuot2dgzFaCQanYnP4I6ziw/BT2cXH0hJBG+BaxVC6ZLv2StR/ywHb04bEBUQiBj2m1GY8T1T5FVVDfuhpVoqL854AdG/CN6SS6lpa+YQ6odYTbggesd70g6U9JpGG7QD1TAFidR007KfrOFz+2J3leOtv3hhNElW6ZgiLRdROBesppqS0sTv/2mFZhCV5lL4VeAdrXJ8xBsipEZno+hbefNeU6WJ3jFxfETmB0vy/PiIiXpOxNDVVLN3VLM5GWi0JD8892Kw3xMPjt17PtA5iKF1bc6Z1DumThHT0stWTA9KpMKjWcBMZMs0jcOLJWx9tYIwUJr0WnYdq3PSKdYwXe3MmlqS/pp3ZL3moma35GbHW+QIOJpckJ2U1yDMrmcVKceHZ6HVwPyaYRG9Yz2bLNNIBSNGMAGHK5jnVLyHZxKWMX9zS4MtO0pB69pQH4ILrKE6quiewJYCpkQyBGpy9J5mVphmVl2A3Bxel9EgDWCeOwEfgeEKxlxkNSGKiGGEyIXndAIpSQN0p4mX3IK6zUfgxTIhmoJQw3NvQKV8ngezjYPBLeuEwY7rsCAIKSwslfHxG3KCvNLWhRGdBPxfYWv7PLX1amUlGgQQjNW9XRhiqR72XQ9RdiPVNTZUamQw2tTw9w9js4OfPNg82aHphAMObeYd2mCHNn/SoQ12aBMd2sw7tJlzqEFt7zOXtod950U9R1yumPli8l5kFfImhcP/Snl9aXQwyQrUvWM6AXuAh45VvOGVcc+3IR5sIPRLjJWAZAYsE6piPdNT8gzq4s0FXK9o2/aaVtd4cjj24+yLmUK8PsYkZM1I09I9g6dkg5S3sTBE9g12wxYGwHReO1gZALDaDXmYrQalmLDHIYeYo+LOS6SV5p+ZTearVZzcm9lA78mOb3dMkaGz0rypoqiwl6k9P16FYsuTQpXgtqkVs8fYGGiraLdLLGHISkqNJZlJpU0WMAZ5QQ3MpIRqx9taMeEWekh9jsSh8AERICCp1LycpI4Jbnxh3GoN5SO2N5tjNdnc2UIsFjGTPYxDAVhN0euKYnjugxTCkexkGm8ZngY+MsiYrA/Ta9YA+BEuxlHuzryZa94PzqX60Zo1BFCoRKMB/lrD2qRjY8kL+jIJnaASYBUwL+C/pcNieC5sKAQ4Nj3MInv77s2by9PMcLK2Zy75pq3OfZbl2dvLd2dnp1luhHmf5lmgOHdFijmW4c1WN+b/BwTo6WmwoUOMhda5QRcubC9kFCq8hZeklnarQWHgXiLJXsHLs4tfjIIz5RRMTDHsy+gYWb7etqHzxUAMP822HsLsMIrfCJ0+UUWFp9WCAZSNoqLaLfwmc7uLHK2ZwwLLxI5+jyE1u35zYf5KRZ4tqJBi+QxVesaqtoQt7YSiyE6zorAruhe07miqASm7yeChj1GoLwksbwxBZwhDTuNvPipIWM3V0oQ45eJauR8JqOM0yiOglM6fucWEEnsxzD9UnwSGERoDyf151BZ+twdMADHqAnUUFbGyWEO6XMMGF0tUbYUkOjExrohtvoW8Evh9wYQrTNdW44Lck8rZjszLd1zQxyx22u8vpmMkMRIxt6/0DASYc9AoukdAEBJuBIHYrnu3xYlFIFte3iDGuBkSqXg3YT/hPIW6KFkkkMMikREvEqgHFlmtbC1hixW8sKEbsEoWjoeDN4gHrxmoxeGVp4Fnu2NXTWlNq1288bJvs8nHRoNlWSCM0TOt9RLh9Kfbs9efbv/946fbV2fo+ZfMd0mKDT0jUrjrF9JKbXqjDSOCV6YZ/8/PCRSOrvbQXihczdms9uvFaZb7WziTrkKgU1HHeI6Za5QcF5pulzj0/aWZjWHT7TUxen2fFoPXJ6rXF4CywO9co+n243cAGNnb84vTLBL/aYie4gvavK3jMk2Ub+d8f+WADhN/sB1zkcBAHP7xCjXO4ZgcUH96UurZftMejjqJUKTp60uvF9Ks0UizGqt2QDmkXqPn1EMKNjpV8DEVkZL44LgQvaHtdajizTHwxYknLi2vLqDbQ8djXGu9+QB108P8+Xhtz8TodpKMLxIxwKYxuc6/Dqkj7IwC/BAGwtGQQylHdYaK6SmM4IYn6XbS5GrzqsWgRSzk7E5trG2Z5qKR/hq+cO+RoR824Ta+6IeNBwpbp7HP0EfG0unAbQ+JUAfaLMy0eJVjInsuCyPlkeNxwfPkS0i3CuTouIovI0Is2kzy564rk+3iWmv+7tImGNmFC0x4QWP2AsMPmrcw+jDCjcMljlHaeqksSQYmz9LkbcznYsB5f/Fdnr3PlmAJd1XQ3hF2y6rB3ADHTguLgM8pMNnVvsjm/bBZ9PlJfrI0e3iZboCYmdOPUeaWx7MkBzK5gO1xGKWRMX+OUyxqe5YYCE5WBtV+JJkbGUt/iuGEtxxtIWGqLdNPMtSoSkL2W6DvDfHbI/mjJA1te7YcmfMJFn+SzUlSsiU3sX1uFEDlP5oXjJs8umNq4v3v6HYNj8aSbF5v+Gr6mNpGekmeT7R1uIozzFy4JIz2tkrL7qrA+0qUcpAyKhuRoFFHarvRifEsIbSkj5kRwGnod0lfIMnEnokC35xcpXCEk1MUhLAHOz48o3Gfp0AdXBjwtrQHpyzRsRnD1qFzOTmMFp3T4AUDwH2vknt0gzgIzVsL7pS3ucd1LZP7zFgc8SQK85N8dZLURqhzsBkfxwS/ioyYmmJMSDeo5zA2GYdKYozD7Zf9t1GMXh8OEmSlPb1mpB+UTV9wNEyxBgB+A6nvhhF2y03Hmp7CjprL4Qhq3+dZYzHNmtVcKspRUnWzUuW+klyiOHBnnAY3wbIj0vVliUXNUbnZURshe8qFgeuUfD7QKeThDxfx2X0EQSvEsZ/mvxbLxCNY8D8OfRoGUJqbZr6OYOJ40wT1hpOp44AbYdMcgoSHgxWXOzqx8DKlx+JQ1xuvWXTsXG0t2TNtqj34L5+iufmJDIJz6BqzqlXGn1ml0NVjbJTZoUUiM2/iz0X+KEmGf/ZiowICrJbimb36Ifu7nrXN3+y3MPidCDT6a7iVVA2tzE9nfD25zkhRRPH5fbxLDVApRXRXdJT9luBM6BARQurgNPSN7euyHtwN0OeildtFFn7AotiW95opVhvYS3a/nDQH/wNQSwcICfiPF0gKAAD3JAAAUEsDBBQACAAIACCzTFYAAAAAAAAAAAAAAAAfAAAAZGVidWdhZGFwdGVyXzIuMC45L3Byb2ZpbGUyLmx1YY1W3U/kNhB/R+J/mPMLiZRNOe6hUqUIuN5dQV2V6uBtWUXeZLLr4jhb2wG2iP7t1dhxPnbhVCQ2yXx75jczns1mF4XkxsCfuqmERH12fDSbzS4qgbIEq3nx8K1VhTmHVdNI5OqAPRcKf8C+04gjbp73jiCD8Vej4eX1+Eg2BZfwrtjxURBRja65FP/gvOW3TasLhAw0/t0KjRHL8xJX7ZqXfGtR5/lPh+KpbDmLfcB2t0WoWhVJ88uczAuD5a3VQq3j4FAGer7VQlnI9ilB0HmGzD8DsW7KXPGagjSFFlubBkqQ2HKhDWT+GYgGbY2WW76STnX0OaSi0Mgt5tsuScdHZXN8BD48eORSlPOW36z+wsLe7bZITl6ciczqFpPWoC655e7rddDU2J8iXaPVuBbG6l0UDyLlehpfLzyKMsi6HGfuQURK+5ZrXoOxzXaL5QglnqvRtlrBvOWh/OfEqlpVWNGo/WNHnR0XHoDPAf1592uf/LXLuGeIylPtBhXMZoCPqHdPG9QIq9ZCzYWCYtOqBwJno3LZ8DLowr77znZ6UIwg3x3nx1EDoOp8uBf/OpuBsCcGhKJYwVcC9Q6qIbDExfwk7AaeNtzSWUBjBaKEJ26g0oi9sUqoEoSF1Q6ENdAXKwEjVEEJ4RY23AAHh9lGkTS3IJEbm6Zpb+nLzR8nd/DlBu6urm8/uF+4voVLuLr5/v368/wrXF3++vsHL98VorauU9cLNm/5b7zGW9cQbAmz2WJxwQ24YM6XS69GZaptXyU6psuGahxRIzwRSyhjdVujsgYqoY0F3aqQVUpUnljKoOuvSOM6HmHEeXmjVRYE18jGS+CqnMI9snGWhcAGO28BI7LhZJMTL5fx+3D534AZQWYfPd2jQ5JP/6ZpHsKE6EffqMeGhiVJK2pPmkzJeCqk0aAdSH2DEo+ijeJx/Z1JyA7ORdMn7ivuiuskXd27XJDMcMY+QBorIVDo3QZqSh8Dy0Xb8/rY+3brZiqXcquxEs80Lb32ghGVLSEDdv/89dv98+ef758vP7K0H+Zpyu6fTz+yJGhYLryxA7Wz99Rex3FIobBGQ5P4hbFkbOCUJadJp9enYjK/KWfvKH96W4ciHWlA/+/dwFhnWnFR7u2n6OU1gZc8r5sSM/bAXuOxyhqtUFUz3hn0Pd0M+IjKgnF7eMqhtIBq65Uv+gRykVNLSGTA04DFCaB6LImq85ZlwEiVTfo6lGHxicpIX5PtMlwCoiDZuUZpcGLbO96zvmdjqNzICs0+D0BaRyNgTfdcl9Uun9FZwip1y+KpUAVZV7QFSaX0vhytReq+am+wkc7QFQt3omWaHl6sImfSuPc4IDtNHZWyU2JFv4Ez8rAfEUV5MNmgB+nibCLRk12NnBU12vb7SQ7i8WRgjmaEH1vjCSqq4R73bwZsfMdk/YIqG3VinRmodwZl5dafqMLFT+IjylSY3Ii6ldzhdki1bNYR2/a3X/MgaNq7BTbI+3oSKt5UCheETo9BmvaBh+uR6zqD1nUM/SQQjS7a6XC5p6NWXBqM3RJkhdQegoVmkxT9B1BLBwhgWcizkgQAAE4MAABQSwMEFAAIAAgALiNOWAAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvc2V0dGluZ3MubHVhjVHBihsxDL0H8g+P7GETNpOlHzCHQq897bGUQRkrEy8eaWrLgRD234udGTbtofRiSdbze89S00BUGi/JYh5ZDKM6RjIfAoTZJVC5yoETXB6n9appYGefMNIVooYjgymGK1g0D2ecNIIQ+Vf2keEFic28DAnJaOB9ZThmQ68XjgkkVzt7GRDIOGLryOi1V7GoYVfB/oScCmIkyRT+wQ0vfciOQQKdzKtQgOMJKnB8zAM5moqKafHZMzQ6jl6G9cqf6ncq7DCwRR58snjd7g5d9+3rG4t9nwdhZ5b1CgjaU8B7UkG7uNo+d92jVNe9FsAhZHrefT5aZtriVi6BG7xDi02vkTd7CI38UH7s/0QFvnB4gC3137innDg+4Jb6jvsoR9lXae/LNrxKGetEPqbtqC7t4PROOTv+8TQnL19+frrHXa/yLGK1WNoLebtkc6daYHEl1DnxhcVu9Ww3s9Rmv6i3c6zP/mdVLSxmXq9Y3G9QSwcI6CdQ1nABAADsAgAAUEsDBBQACAAIADmXM1oAAAAAAAAAAAAAAAAdAAAAZGVidWdhZGFwdGVyXzIuMC45L3N0YWNrcy5sdWGtWN1v3DYSfw+Q/2GgPmTVaHVep2kPAQSkcNtrgFxR1On1wXC3XGm0y1pLKiTlxHX9vx+GX6J25W16OD9Y/JjvGf7I2U7WrIPftRRQgcL3A1e4eLZeN7gZtqxhvUG1Xv+DCMpuYM/yp086y2J2ClmjE67siMvTEGMWGRuue2bq3UnOQDRlFVLtWcf/wLcDu5SDqvGkkGPyqbhbpjjbdHjaiUg1ZdYG+56L7cmwBaJp6HSteG+ggoW563HhpnlVZYb0ZMBEA4p92KLxe0W2Xiv2IctzkMqzx3CSRqjcd7LYK7m3auysnBJs0XDRyrjr5+n+0N+ybsCUxC+lVG6U0NiFMUrKxcgN4rIeNnGx1MMmbux9afgtO42b2GFNDrlBrAr8SIv0icV515Pd9Hn6JCwq3EuDMexuOh92tzcNu1uLwmrWdb1RNv1WLrE7wxbnRRpAL60kjgLO83w0yR0Q3pCt/qyYHddrNxnpUNxCBetvf/hPWKExOc07oloul6/rjmkN31AavnYFWF4aVt/owPLN124OFdw/jLLbQdSGSwEd22DXKrbHBS/AsG0Bgu0xf/oEQKEZlIB7GgMkBvPm89XZ+RfwHPjn9J/YHBHxkoVsj36lV6hRGEbavueCkpZZpZkleHj6BIV12jnUM8X2Y4i4MLhFle5pw5T5jiwOu/CnC0lCg+9H1uhriEWp6fNOsRoXQVORyC2I30aAtyCkiehls/nOciSM2SguOxYDZofChWK5DCHFfW/uSHrNxDMDJLYsS0dlUVeh7qXQeL+RzV11/1BofF9pfP9ANDZg9l90LVq4XnMhUKUuzjnmqkC2rUbKyFe0tlzCGXhIKGAFo4gCzmF0vYAXk70vPBzVcr9noingZQo+hRfNhUfyCKKvYP7vS9BodlLeWJ0bVt8U8BUwAxuF7KaXXJhRJn6ssbchWHChjRr2KAxI0d3lU5lSrFEpqSZC+wvWdb9ws7uM/vwbtWZb/J6JpkNVwD9Jc9QyKnbne6mw4Qprg40VfOTTOQyCfKGgMePiRkIa6bLtEsHMiNs+A4uXRdZmuT977UhCkBMmJRUAVNUE+8eCi3kWa/y4DtAfFHyZKLAqEjJSMk6jmni12b0Q+VQhjEXlB89hFTZtzdpBpzEsRvoX7oBM4unJHV8EiuAXJ1xP8EAqOMvhuRfpcrV8be8FC5E/KmlkLTuHkZbn6noUp+NqgEuADzveIRg14EHKDqPJi0xcdoNp+yRpBB6WkELk6ncMQrQtXJOjcAvIHkttAoR3L1vY0SDYLeMdXWF5FrVZyg87ZihV2Z5xkU1yk0rNFrQP9W4QN0FEtMx7qC+C+ij0ItGmLybSgwFi6DXRvjioC3+FFXLzu49buCpjiRXwIh8ZqCKJNl62U3mjxD3BRfO40PM85eItBIZqvNEPZY/S6R5RLbPPzvj2octylc8zuMMypT0/oJ2k4ir4JyEry/Hp2SC9+jbkizchL8vs1at5IlJL+9dZqirm9GAyOYq8Dc9TOveJbdVswc0gDAqj7iw0Q4ISWzTf0sZbuu/HjKSYkzBOU5BGaCQ6Nn9aszo0CMdtgNPvCPJjnjf6QjbEGURUkFWLRrrDGY5IaEnSXmRBpzwVkrtnoR42C7dcrIpV7iQeyIlC6DRJlUo+AInHAGziSVwl/IpRfuThVgQCH+UY8bjRceFi6c0kt87ITBvKelAKhSGiyFHLbtiLWZ5VJNrLZujwDZmVlJ0blnvZrAPaCd55pocppB5Aj29MWMz+/VhH3jmfiHG9Z2Z3vP6QlGYsY64vDfZvtkKqBFdcW2Z7lZBmyH59fdgOZvlBYQczy7mXcYO473dM8z8wm9R6mIwpDvHv64DScWGGmLLUYEv/A3myNMonv9PzMIfhjkBhC9XYTvuT9RO2MwdtIpkYD+E2yV0kOo1bE+8ic5BzAA7JzX71WTJ5vrq2eDU9TOEm49ow3tENMbH3tLBpQ7UqILsiKfY1o8uyvA7Pg2gcvWJ4eCbFZPtSpwZ3kShJqyk15DHdQgKrDb9FZ4DXHrXMNBuJ1KTrmGnSrKI38z3aX/RftexRL7yA0+2WtWQkzRxv9n9srkJe7yFeyK7RgZ+FQlbvqL6vs2Ks9Z+wRYXCVtxZAfixR6H5LVYt6zQGEHmsaUsDxeeiZ9j204N63Pm54IZuftrx7Zhu/f1AWqoKziz4Tn4Pores7wwc17aTG9ZRUzXyrXzCokSpUro0MfM3GJnpXt8RV6zl8ek9FZ+ewOUS3hKHjkfScl595r7uII7pdLSPJTBBMOK2AFYEnvzR7ForfnaPzU+0I1D/PUsi1+O2JC0FfMdqIxWX8Js2UrEt/hZjaX8BQ3Fb+h33JPE/hE0Q7qQbl477r72wksmLVOcnOfF2YPAvW0w+tKct8qR/z6J5S+Zgwh/jAhw+WhPcmY5t7CmGOYD5QYIFtv8FVo7gxONegNf/AlBLBwgoYKgnMQcAAN4XAABQSwMEFAAIAAgAaqujWgAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvc3RlcHBpbmcubHVh7T1rcxs3kt9V5f+AnatsyGREP1JXt6sy7WT9uE2Vk3LZqd0PiooGZ0ASq+HMHDBDSqcov/2qu/GcASnJ2c3dh/MHk8Sj0Wg0+oUGVDUFr1jLpdJsTp+PTios7K5bweb4YYu06Lai4x1fVlAV/nx08ujk9LTbSM02XLOuYUvBSrGStSjZUqwaJZgS/9VLJes1a7qNUGwlK6GZbli3Edes4DXbcnXJVn1ddLKpNeOayXXdKFEC8NNvEaWbc9vg4qxTvbh12HWi/R6bv+3rAuZzcwv92JZfCiY7thf8kl2KaxxTdqxshK6/7NilEC3jNWG1l1qcloKXDg/GVdPX5aOTcL6TwWj5zWKxbUoxzy6z26lFabF4LZb9+ruSt51QbD4osM1ef/eqqVdyPWowWywKrCHynn5bVFxrFjX52Im2lfXaAwPU3OyP9pm9/u79oxPqMVssSn7ffu/7ZSWLoGvbL01X7PwDLCT3JGwUI65pVsH6TnAxeF2yHa96oXNWCtFODfeYpWfLa2AQXF4Ym22a5pIwXItaKFmwn9gZgf/Fwqb6liu+ZSv2E/1UoutVDb+IUg47v5aT1fTRCWNmB6wM/5tSucKiOctszwwwq6GODdnvfHUBvVUvoFpUWvjuiGvYd9UodpnvmKxpD05WU1Y2VBdCnlxOE4U7UyiASd2Hme3q0QkWBO391yksV7iGM18HG9z9MMv6aiOKS6BDsLRysEkt0eOlMNgsm6YSvH504rqb0aX+OFwE02VM1/GMEkBwarSOiu91oWTbwZTwi60pgbnZnD5d4Vp0sl41tnxmfof19C1ogAUR2FY1WxyS2sRDaNEBG7ta89uLMhSTc/PFFZf9tnWlM/jlqjRuQFOj+6WrWDVqyztfR79t9ToW6etIpFOTVska+uNnQNOrtuAVEIG+OL1hQEUwuqKpC8QCi2f009YKpRqQjvjplU0lCsQbv7iBUYnAAOZbuMoC2tMXvxaggzRSGr95vqjFVde3VQBrki0WuCCcBN5i8Vh2QvWdrGZVz7PpzPZxMICalfxv8a7nH5teFcehjZsTXAvuH7qpF2In6m7h+OcwNGht8Ar7WGAfBC//ogS/bBtZd/ooqJJ33DAIARx0dgu5UYKXx2GZNvHMSqlb3hWb41iYRnHXHVcSuOb4qK5V3FmAauHd8WWxjeKur7+zrH+4J7aw3dyY9Q5U+Zsf/+YMgTc//o3NWS0rq8nRlsHN8JzontOPut8uhcpR7b5XTdcUTTUjVvHL8eKFBbyM1teqbgROkF6G5lEp2m5j8XANnVD2DReiBmxKNmcrXmkRCNO+rmW9RlxeixXvKyDQvz958iTV4tEJqTGqkWzOnsBPJ/3DthOjxuSKSfacTaxVNAsbgSWRQGEaKFOG40j2NXtqC6wupKmgrnTfmEcraGoVd6xV8b8x5SIaL2StO2WbkTbUJBmsNA8U4kMW/eXIcAELGjlAT2gIJKFDj8Z76Reg1lZEjQVRCEGufNM5y+aTsiFY09BqMXPGdkqAseT3IJV+ECsDNgeC+gX2ncJ18+hlf4S6bDZzDT1EoURdJJbRUBR5e7hwgT0R7JhzM+BFtLLhkr1MrRlo6i3Xlwz+i2poHVnR9F5TusWCbgvFuxGlm84ySKPi3deoxBIHJANKOpaLSGkQygqV5XYfJIiVFRU0eNheO2Jt0ngPBTfcVrFYVL1w4k7q1/3WG6jO32CvpUa7A2wiMJ0mpdRc6+2yus6DJUeexdXY8UqW+HWK5jdHSgOOldQd+ingnh7cxb/Qx/kFE1e8cCtY863ImZitZ+xT9i36hFC0WDwGcKgoPo2tX7K9Sze1kEOM3nVbAx2SmIO6YK8SWuE2DWl2bhg+4ZoEMJL+ySJn3LRxborlSO+rRIPx8WgPk6fLqikuvb933P/va2iJOivy1G9uc2a8c5As5J8T1+wVb0NfZi+7DVgqfFlZT1PHruZbdsbSTubbSBK8HS8y4ed9SYsveIpAaqelLIloWk1VIhl8ideeAiHOZjOzJx292Dzq5/bnbDYLNu0AnEHQg7Mg2DxcieFAfmnNIAatFUKaBuO5GdOXkC9cFXUOqwxUauF4xiifS9kulOgWTd8ZeUAV1Jb4ElZaibZRHeOsFnv2iTTeJ4ZWM2tqJupOXUPcgbMtlzUrNn19aXUprTC6hGj9kTM4Ih8x+xsAOYEm00hLpnUutJsFm9k2L83W8WL+mCJmrv0BHTwexux6cBsnOn+aP53iAN8eBHuDog32Vs5ajlZk9vPVm7c/X/3lP36++vNT0NXsNtjiDnUHJIRspokerJEcpAljaXURdbLdFN9bTxg+aXqwDlPf0jTw1Fj2q5VQE9PXtTSsCf9GztcN/phnhH+Ws2VTXs9vmCOKnVpuh8OP21tHPx8ImEzZ6Sn416E26tuSd0Lj3IUoRZm2XA4akiMeXLYL3HvRWttowwT+y0dmyDQYC2TY+TkClrU485EtZ5KcDgNxKA5a0Amg4dDYRPsn3Rmr5k/zGAr72loGiyW5DdD112RfcDVyxqs9v9bDXjg4xqiWrUOv47JiGKqYVD2fstMXrOo5NoXCr4ICI2qqnrPnp+wrAthCGBRQsfsetBxvwWt4xf7I+nbHK81eWBdCOnZF8HVTCxjhq6iUAITFZuivYGCs9e3Ba96Dguiadh7VMTZZyaoTat7XG16XQCeIaptBata+4lX1d9ltPna8uPxJ8UL8ILTma/FXbK4YmI6Cl1bi912EJxInGtJaujAtolFUThMLKwh/h1+AOioRDT1h3LtxnZoFBoCGuxzYM9bXe1mXgZvbNSTWcavlYNk98bJv1B6a26AW+/rRycWF23sUJUQ+9ao/3JWkRvymjEz+CdZ618erzlDpOzFk7FwTfzShx8mzPPtYrfrMg3EK0wm/izRAuTL4gXyHXZ0lBLGNtc9H4VYPPhDUtnlyQO+W2K3Lo3WJfj2fPxmI+FGcwlYcFs9d07aidPLZdwG25LqpGRrGos3ysI7iVN/DrG3ICg6wFvQjaupF+kCo+2Irese6Nva8nMyGeG3g3aX62bawbBDTgCZFr5SoOyjyzeQK4MWEDAIBxwMLYRdjdwNqy3MY4yKsBfYdjQLjsCdwDmC4NWdP4ZeNcYMgWfLiMmfPoJiHGjCGYwij+FbgqnxjrYhgICPeIYJcSjqeq0u2nG1k9wqLmjoFVOq/ys4ZlXELmFUAbzw/Z8T1RSG0zl3bD0JT/MsFEO2X7+tOqJpXEzObvJZVnvmJZ3kw5HQ4HGwgGgtnNwHDaDDoNIkncxMNYl3+X7BHg4IRNQjGgK6WNLAITV1dkzpG28XTbg9nv84f8P8QDtjAE/MNpPE0DNGlKb2R3W+jcYj+XWRGz9qNSAYxRXQyTwzNnjOP1b96DVLwkV2rZm2U4wEcTk9Zy5UWiDnFsYM+HGbMxFWrhNZ4ilfTIWvRtHhICz8ObdPAEEcq5ABHhytEqhDXp52EyObRUlXNmhZqOh4gcuFxgPxm3IoxE5E3EtJq3snUO6O4UKKOBfqgu0l2yKLT7nfN+j2gR2udJfrfTg9RZseVsozrfZBCCTC8YfI3OKfbHHRcAoo5e5g1fdf2HTmVKfxvqMHcrIQfywVK5w6V2bjyNkmUwHsN2DTBy0e09W/S2mPtHe7qVMsH6PKUTr9Dt99Hxx/c34H0G1Fo0Dj6GfxwX43b7g06FMKxRXc4KOzq7mWIHV3cz1zWY+bYAxcxXr6DC3d8yQw942OoER0OTtb0OzDZ/4XpBCwTbdfPmsHvaB8f5G/nvI94HOHsN5zaQdQuG3oS6YBcRKY0Voc2278Cj8G2TWxN9mLOjnlJ/ntgT7mATqiVWq5wLt6x/AYcy94rYNgMLl3GYuEcuVQwDsAspF5QRMRRYz7PXpHZhEV13wYxkiFG0B8iCotGGThg8RpsG8Um9HUA2BRa0NNIzIVoDfezSzPQorMpbRNHxTwQn9HeC/PkMFFqEutuwy/pKQ1xGANzWK0DrKbTwwphEDk15BoJfDxfHLrjtjDt6v/flYCRhrzL5Y52569zBowTz+xOoXRAEpBxmYqk/P8W+2z2fsj28cc/IACDU6BEwArlZbrJ2LCxGwYgjz2rz5Qcd8uOO2y/f6aSOB0pCQf7kAgJeCO9j/xOMk2PmiZ1eewo+D06q+ieFqKluAPmiDMB4R0VHruKIM8lLN8KvbYH9e+AVaQW5Uf67ZKfWl5c8rUYJWqg57Vwo09wkBxA2qNbBD9H3qGYCBWw7HktqxeZpyscrENUATuHZ+tWBocJl6YVVP0bfH0xf+rjElBw/vRiOp8njvitN77KhVKRx9kpXusKnE6HP7PYQooN7PzseTabCaVms+xFNo1Ong7KfUedgeS/l8SnMwsIGCBlI6Tgw5SAQohOewEXO64v5a3Eg3pz/js8duddx4sN6ZDUsfWh0zESTZSZzYLUbDucz3qghNOJqHc5tg2PvDFYtqAEVwh+thJBoojot7DZtk2J9yXonARbasM6ot7NXG+/2mHxJKRJOHA4VROHwhp3bhCR5yIIjR5NW6MKClm/vCOufH7x6MQJzMVC1rVQIDjjnNRBdoQN4JiDVRrJ7jv6FZBikDJ0vzy6cM/4ALxhH5RlQYqYT2HxTcOkGDr6JNYwyAbpML7P+bKdYTwdkinaWP45Vy09sNFQVkxO40UqNrxe+0UapxaBxqGD5oDwE+oWZBgZglN56WgyyAMO+7k8vmBB3HqDr/RdVU2yeMGz3A7EopGmqZwgmiBqrZcmty6soE2Es315+GZBaIKgkg662Wmk9KmfE+qDiUmkn2Dkgn1RUrKQuJK6g2Ns7PQH9kWZ5TSMgxSlwIQqGT9toQnXzMNZOWIcnpO1Gye6451fliiFF5Q/ZEAnTusSyxV0hcUyYIeIjPd1GplBMjFWDCXRUVgDyfSfkIcFk+FhHkWjAmNhpZotSFVWNKV4uFFgbjalU/T8mF6fxmlaw1yplMqxFsSAxQKTI9vyuudV5q0OLyQeHHo7HkW9p49G3pllm6Fzlk48SyqcISEHC/yTUFtZ0wrTwbs2RxSpdT26WJ0FdQ/ljy1oo4dpTU9+vnrz5uerPz35+epPr8g2Gsz9yBzd+IMpfhC645iM9hsnqAjQP2V6f37y0OmZ0Q9tUErMUBr1JN4QemxuDEHWZStUlFtrTEJz8envG6EEmfxuW8PRooQTJSiIL5v1WqiFGe+lt+P/DvKu1xDx0OaSUj4EKquKEnzQxcDbq5QXw1cdZnLXnaz7YQb4MAM07UcUvF9vOpOhk0dY2jx9QxE7KJmGZo5AiJBucc7JEWFmG7oLdKlGCCCRQbYwWAfuwnEBl+K8Y6ksJmFpnrncHfKGvgEp/ixn2ccwzeWekRKTJN20Dw+TnJ76LCLGKxB612zdwPb8ZNKoPkGK6J3pSYEfHSAC49KUf42mHPvPDw6XxD60NYZh7L1ge9g9LsGu2Qn1uOm7nPHyH71G995YPMBvQKIvNeNLl/t1egq7AVIVS4UaxV7B7Taq2ZsU4ofFImh9YAsHkYhgBb5+apLww02SMy1ruBXRK5s1R7zms8hOT8lDBuS4rEi8NHCp29zBcEsSAv6sWLobEM0o3S87BXn/kAcHqIudUNesEjtRsb5lXePoRNk5Ca6PsUBPkWDdm9XuEeLxNKIE55U09PK5cQGm4U2tb0YZS31dhDtZ5ixbRYf3+w3cocB23ge6J5qEKLusm30dIDeIzcXywGybtejeQId3fCkqdCEpG5iWCk2N4UkrjuVZBkx5E/wy+3ZSyUtRXTMlTgEZjgl+vIBUVY+cgyDK6QBRxEJqN8Q4lngoXiy/fhpJwQNxuDnF4RJR2mRGSJBXe5/D58QlOvRnUyyQDcN86TPIU5PBG2ZaVinGe3YvxrsX39mFIAjz4NryYdZITvxeDHw/6hwV4DsNxh/byvWmwwDhnmNAVuoc4gz7jSw2rOAaHrT4sqqsgSKY3G5FKXknquvcQasE34EKIKPHeKpOMaAz5jb/0AUxZktgBwxMw/voaK/9Dou+SAGvRadB8xrbpem7hynfKM7v02enFO6fh7lpnxHLPxbFj9dRiVO0iL6it0++QgUGRA/1kFe3VkrgwyRfakj3VvhmibhqRdHZB1Uak6UFRLjrxs8xnWev1AT1ocFnTmLusXB1Y2HxjsEEQH255jm+uoImthJaqB3Z9FubhFZf7/l1jNPBm4rWXB1ePHS+iTFcEzeHTM3QmRm2f3QiV+4pllkQobVzDkOtbG7N+4A6xqpnesMhO3qF1zlBZ4CpIGANQbvBJx4vgboXV53CqweGtQZjxBHvYLZhhZ+Cj519Qin3Ce49VbwQNA9YrFIqeFYhdoO6BndDxa9tIuD4qAWFW+rq22w2g6VMvfNh0yujOl5fm6y8qBgFkX9zx0TZZzgP1Om5vZhmM/usLKdatx5Ylk1zRu2Hb4XEkG0w9dPV70ewaFv+/hSNiBbb2/ekMBVmeeTR3knvq5DgrEQrHW49IfkgmACkhHcoYNOsSTFF2oX2YXTDncL+do45ubovvFtrkIOrazpxL3TwaNMIsLmCbOFHgLVdQXsNOeh9c24eG6F3OfTFmQVx60FQCC+GEl04LNm7nmPa0E/4CFdYuXo5uosyiE289B1MeGJ8Y5HvxCJCYyLLfBW5/YrvZWleVcFlAGvbdJLlRFrDNwJzjr3w0CS6GboaXWsz5CJCX5z5b45gAcW21x/EtumEjmjO2kZrCZe/6RanOVmawDXOpu5UUxFDTc9Mexbc8YR2pag7uZJgriybHSZHZxPfZOrkOl5nIpBwk5vJ2qTJwwak18xkZx8L0UGnrVwrvGseFj4uWHA/nBXNdsvdoSHaMnLbV3RbnUiv2YRr21B7rBRSZeaDRHY9XBAugAr5+uixgFevuNSGBXJ8uA2/zrZNuQC0XLfHZtAxQN2KQlpu1mfBQE29AALl8KVqeIlf6DmznqixMEdAWFN3m0Uni0vHG+/AqukxC4NV4NlRiCB0Dg/cxxpI3kQ07CVBjC5rHXQmrfnbxNEMv3NDKXM+vCuVjjnYpyRi63WYGUExnY7tm76CZ/RYLcmOaJU4LXhVAH8IRv4MuAjLvqNzNWv1+8fWZM14YJ4Cx5i3mngHCbCd3Ao8oi66nlfVNb2QAMd1+DZeVdpU+i2/Rs9kKVjRKFCOf/AHovj+AYYwVzx8KcBt3eh0FN63wB4r39J1nka+HNij4MHh2g4dXPv6hJlWNpsB1NksOzvLZrOVZeU7M1FCKzQUUx9E0aiScbeYAT8G7wTWpXs+Bjx0R3vLgu4RgbPDfPsSng6ILhcCM+Lda52K7r4lRXC3sEeUrZhHfe4g+3DriLqegQPuHtA/0WDOsomxgq19kKWjAsnODrNEBC5kCheZDveiVcznDspFxEZBc1ix4OevB9jLXsYwBygf0ESEHeZ86hs31i278RBvKbJ0A1BvM7z08k2eFU2tm0pk4Zs4dzJmcl7mxkusY01BcOBsLLGQA4z/7owz90CeOTVcLBTfh2ofir2Z85FUk0BxjJpmKYAOqE9KaxN3XEEUGY60JhmGRjPcM3TTSNRcyWY6MyDR0CH7T2oUMOaJFoIHKnbPr2epm7exsfULZQr8Em8Xk0sA4HGk17zjgxMVUsWDbWZP4Njg6M0rzsM5LKRXYczcAPc7DSYYnb7/0JQT0ypnWQA/y5lR0AApvp1AOUBZwWuAh52MJmYQQchGb/VMhy8K0BQOG5ppisXPiRzOCgimEVDjIQZmeHvaSDS8aTa2Nr0QS8U6VpNg5MMPLAzs6rH3ZHA0xs3EGssee1sTy9s8M+VW4GVRWsgh8NPfgB/YXGn8sCaBH5TfGz8E8lvwS5qCaYTTTRMzSDZMTcliDYdjOO1VX0/A/DzrZd390mP6Ws5WoKmJB89+7DY/yeLS7YXpLzb4NwK0OLNVxwhgLd7gxR1zjinhtjTwuYvOmvfbuFpr9yTmJPu3zPvsJFWowZw9HUbq8HBbaiYkvr38qZbVJ7Ak+1qJNVqQePZsjD46Et+opl/TKSEKmuCgyEcIEvOB/+JQosPrWeDFBxMOHpsOe9NhKlUGl3GTpvRhVPIBo7hMrqAhJHRZNskRg+nwKoHHY/Q+1j8PjZsv9G2ACL2TSt2zPJtO7zwBXjVqz1XpFy1+mimJnWWhhDxMKliTURCXnl8MJAHuBHEW7xfbZscVV2v7SGxiC9Gei4fIzXYcwMxNpFqfIbjpEXg2oJOEc6SjPhtO9hiMgeVt07WMBlzlfsua9GAkMr5soBmQhc7J6GRbNXvtH/GQ2jpt7mQFtzUG2MFGgGb+wBnr3A0HE3cKN1uoXscPgobOrl5YkJH8gbmw4PWblYU/2K8IveC6S7JULA7ErrOPTdk9Qp0guzLEOPFydgx35EO6Kzy7w69leAPQWeYOoegIdXCmmrLf0zsvZIdIKiQicoZpprknxhfaiwiD2nQacJW9ruQWwt4YAJngCiF6CzbR8FAnWiabPNTzV73umu33ddt3mFoNcHw57gJX/rvNHVjh6MwTohpdWs/NMRsYg/qtqYQ/SoCPXSwFZZLtKYd2LXUnMI1Ky3pdWaN7luXPUrdMKVU8CIcQ5hFzetK4COzgYmxs9N9kWZ59TwqbDHT6kw1ZjrO/dZjE52UJO8R6MfYr6YCDloud/cKH0slpcb9HJty9u/iLK5gH8oOt1ueuJQYXnvsQz4ssHVR2HRbm6XVnRAmDFrQIPV5Zl+IqfESiyy+nIx4+v7wIXpPw+q7zyiwsvqSTnLhw5wsXi1rsUyPnu2k8KMgsP3D87kX2/F3P/9I0ne7gSUu8AMHeq+bq+kUWd0i/dBF0pvYYdY+OSwZskMd0NI6Ac+lskBqDObuZ/RlxYNBmHHWwlXkceDAETDnqWLERVXtHWuT4DxSkmN2OP+NluTA/iGlhCLdFPXfc0WFg/MHLDRRRf5yx2YyRDD9ghA1mewRZCIDuRDS89SzC8dFoSmFwcFKHAD9s31lwD915tt/vvPfCYe/cfa+o8XvVwPlsoz5nEw5h3LkX3S4ZUne4H01knHYj/Yj2oqsf70SqSu9Dqju4G1f4h3gOn6WOOdkcZcEecgcBEz8Kdtf2GqM9Uzj3DWxIVA+OJCiw6/++CoIJ3y02FzUpb/DQ33g5ktWMB+TZx2x8RdqnHod5e3fEmP1Jhp+bPc8w3/GwhhUWzz+Qr1Cbv6ZhH7rWeF4Df06nNqc1s+GzKygNnqFAoMD09EGHJZ5H7rNsCfGWZKKDrGEkUWqYO/jC+UEjvO+C+QApRz0fKuCo1+8s3vygdwo3IujniDTqOWgMh+iCrn/6F7uGL4yav7SSs+BRifPMrZHOAO8bv4i+JnzV6jx7rvj+xaBxjt9/JJ8OjmFytpMKDj7N79sBDMdTBpL7/RBI/nnku+S6xdJzU+KZ/BEPmqfHQuYbriWtoP2DZDbtkf3QlH0lzJoeW1HbI2rpl9Pt2klsSiQW8zx7Hlx3NWQNSh5C2PPsuUvcNJCCRM77wrE33PJHJ7ePTmy+QLg+dM6TI4Wn/wNQSwcIkbABT/UbAAA8bwAAUEsDBBQACAAIAHgVkVoAAAAAAAAAAAAAAAAbAAAAZGVidWdhZGFwdGVyXzIuMC45L3Rlc3QubHVhnZJNasMwEIX3At1h8MqhTiF0V5pFoWfoJgQjR5NG2B6F0bgphNy9WP5JHJIU6o2sp8c3bzTSaj5frbT6Nux8E0BMUWGAg5Md1Kbaeq7RQrsYEeTwqlWeWyyar8oRguzYH8KobTwJkoRrnfBHLrS9cXzpmRyv11pVfmMqQGbPsOzWQQwoNYqJOWE52Wo1mLYNbcR5gsLYFp5KVs60AnBbIC9QguyQgFEaJlhkSRDDkgCS7V0lvMHLxFU+LbKk9oyjLeZKEySbzLSKolZj6Tz/aFt/t2YvyM+CQT4Nu3i/aQzTg4/tP0w6SY+nrJcBLu97ObbWIbqvD1IY25qS8QTJZleUcUJ/kQbjLdpplt3JfL8KnMv0ffez6VQk+4javZibtHPkaBry/h/4ON4pTvoXUEsHCJSXqBYvAQAANwMAAFBLAwQUAAgACACNs1JZAAAAAAAAAAAAAAAAHgAAAGRlYnVnYWRhcHRlcl8yLjAuOS90aHJlYWRzLmx1YZVUTYvbMBC9B/IfBi9lE9ZxmrJXQRe2hV5KD6WXEIxijRMVWXIkZZcl+L8XWZK/kmVpDpE1H0/z5o0kVEEF/DVKAgGNpzPXuLjPc4b784EyWlvUeb52AZk40/vlfCbaFFNoXlsgsLBvNS78dklIYuleYAJUMtD09YA2+NIkzzV9TZZLUDqkRzCNlbLYgfntbTDvG4N5WwSrqD0CaZfOVAqldDBm7Sa6asq1AeLX+Sya828//wAByYWzrVarr4WgxsCz68uT70v2+6iRMuP9JUfBwB65yW1rBy4tHlAP3bSw/AVDQED7pZVVhRIBbruLNTw/xTgCl/kMIM8Zrd2mmc+aWJfr2AdA41PnM6YcGi9BKhuFtEeUzgrTGsPZ7ncBzoDAJgVJKydXwqilSQpN6kMav3SFZ8N2ENg4NwqD/3+QwBcU1yfxMtSfVYrlPriLHnD6oCYAlMx/lEr7Q7n0MxHGNwvVVoqZJfgOup/vMAcCdxM+DxF7ynTLd46s58g7jm5JIzEvT+AzpTjk9T4zHkM6buGjXdq/PvVKi+nM+GGrqaYVGDyBPFd7N9vlWRaWKzkoox3TLOwWBk9Ld6pv1EDsJgxhuPw9KSdBnkJ3i4IO44quNfA4cWAmT1iShYIyFzART1rUJS2wfQIdSNaZzLaH3Q2k6XPGYkSJ78LHw8Zp7Tfv6tHdiJBEps3vQtt3WKOplTR42Sv2Ri4xKaxNavBEDJ6aIPJYu1LTCn9MHieN9qzlzVekq30QF3Ij1k2fpYebw2Fqwe13n7gIAFfz0d4M/2jHmPXm85fHq8CrQd1GgF0fynuwiAafoMWDNYxA6QEI9DGPzhWIeeCUpy2z0NnYuEjvH1BLBwidf4/QhQIAAE8HAABQSwMEFAAIAAgAoRWTTwAAAAAAAAAAAAAAACAAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvdGh1bWJuYWlsLnBuZ3XbU1slgKKA4dzKtu3Jtla2a7JdM2Fl27abjMmTbdu2bZ1n352LvS++9198EcqKUkjw+PBgYGBIMtISqmBgYPH/CQADBgZ2DNz7BwYGBv5bVUoMrGaK8BQMDAzKUlRBFAysLg7hwxgaDAwMzkla5zcYGHL/fwIfdiwzAwMTrJeREFUHGVz6wPpjLS5+Z3h0OjBf9F3NRfmTul2YcFAbVllFU/vWoXqZmHCwRgzgmi54q+wL01MnlrGq/G0xwlGXiEduH8dOvWx3NLw235r4drfY1ssLb3NEoO0g8fr3+3gyq/V5416x1Z42jPDXCNl/B4glRj9JBh0iDTsXxDpBgCQtYgAEAjMl8GGpFqN+87BAAwJ7xFQi+oNEMETVRJJED0n5RwDooowi2fU9I6RwmOCtojn5MNQsdXinmsVCxbCYyABwsXEtigw4PngXyhMj9Q7c03BwiAjhNeg1gC6SLkJFyENr/FXLCjM0gMkaqq7HG9YF2QqdvuJ4+glbFQILuo5FEFY3gO0C4lLryLEbndQq01naF/AmZAVBP3x0jJBgY8UlFZNvEE+RMiRiV4NOyi6NYHKvCWNyOUjthJ+bEPcgFxB288nln7rDP+0feAZr+Nv7EhqAlATLRxCGExArFbLiuErhRIQwRD3DNxOLuSg+BiHdAHM13KVOh1waUFI6RyHCroLMMCcIsb17XKfpCbHcCWlCNmnsCLFWAvXArsyML7GKscuOY4V1gj3zMx78WOpRKug9ChQL7UJ/IjSDrUzb8NO6zwOvEe+BKJ7ONYoQiGHUSDTxzTTXtUkQDHeclP8sihMYqWq4bimSIaGMdYJDq6TWlp0RfM8o/ZiPEP+t2pDVjwp2dFf7dkw6fczRoznDNKIk7XPIAJsc0zQ/mx8mspnhKo0x5QjpgzDMK4oP55+APwNnZKOfOWrd10o5F5eQG5Ccs1GLpGxBcAJU1rPISf9nkJ8msq+WdsyC6R9gbnTCVjxHnP5BdmJGeK6a5scUwPeXVB/ubEWcyCc/q/vKdeMcrF97MQ/llwVbMtyxjeh2720ZX78XQVkSuAvkSFMYnyOUc7cmsiEMS6RfgpyIXS5bxkj30PZOehjek16+7yHpUludy2ZGPErgj6HbYzc1whuwoKEgroshHrd4LX/QxJk/2BlTfhdNoBBW0x/QLW7s8znJbDzYUDbKEIgdL3WMGYIoHg0O1JdAI2WXdweesB2czM/022gXTNy3A5baWXuq6BCWowdhCXjsv9F+OwzJx+e6GgDHIgZJ/QHOsXO9k7740E8qd1ZPCHZjim7lfn8l3kbqOhoArb4BgBH4RyBukl/p1GEoqU0BfRNK0SQlKtDKNNnAcuJVLoeMmL/nqf42yoGhGr1Dex69QMXrjdzDwPTyYKlcsnQUO2zr1PH9faOKqJ1Z4x3ZweNud5ZI2AW1g5P1lSWSkUmLzCfsOvoVoT7oqKTFp3FrgKoUMEIm5++YFrSH13HQVZikRnLtJ3JYA+tTEYQ6YKoTUi73awR9Z5v8hjnhiCZWJxy0dvUFrX7mlYG1GSMEc/jnxyQZgr/jBtLdOaJBPaprEIj4pcy0lke/bIKRkmTHmGuqKNGZkmgERb6zp3VSWhEnou1t+oKIsethTgx3aR4jYsC5DsS4XbYM7YJvz4Kf1lcjQkoIF6K3ObvTFm9k97P1F1Xt2IsshEAX7Ghcr1qTQu+0Kw8POObRh5Woz4oVBNYuXSnJrqiamkdulwevFfQJZ7Zw+jT7DZ4SnzBeI7urzYLTts8yfrLipQ5MwhXbyaPpJExR/vKpdGoSZoTECBEgXhi10IhD9kct8xVyMNduA7/X3uh3jU5D6LGs3x+wLWvRuAB3nGLF21bYhG784P5Z8CvBth7mfWOBYGggtM0d2N2y0x+niaR5nfijchIInuXIAwmrwtQvdoq47g2Xz16+GKfuRPkpbpvHQp1aqk6gHDAn98AsEZ30hPgOJggzcsDI3fwuROwAOeTQiLZDFDs5T/h+aSzl32IZ54QymMF98ffiTvVaUFyf82sXioFQ7+tsTxk8Kv0DpMDOrHpqHTFnZhz8LTw01oieKPNOW5Jq6ctPWHQuS7336WhETEm0q/bd4TRK81ehMvwobBROq6ZIYKIMA20gEJUOLY6OFaBESV3HAuecTA2uksZBLplYX5EAMWvFRjY+HWo6V2ug0xSp9dvbHCz3/uCLswwfAeM+cfkPEbjB3d4w2nAZHCp9H4Pg8j64dTeN/36/6GP2NFTNoXFU6e2q9aeluhP3p3XZS6a6r7Z2B6iuzN3d0Hrh/Prx9QNfMFgSJQIdKzGkmNIWizUjGR0zBsiZmLwgfRucH44vChxNqicnlQo0UILDnIPFwFGUxowZBnmfWQ7djQ2nMRt+pehcQ/vewadIqaj/VToUbEcdDlh5JlQpQ8G1zu+hZdiM+p7r65/4RLvLQyOGgUfrszze4TM4S4SRMq8NxLt/b+gPLjqn5KX7Hj1+tN6vw5WpS0cPo080gYOzJsePGDyQFoA3xwhixpxbv4DLmcxdwI/+RY6eIE5cu3fmHF87PQkRopk4WryMY8Ox1g275r75PGmKvH84+/PaBxlzb1ua+Hy6nIeQ6kv0DCTBSo8FLPpGSTx2vn9g9m8afyX1fnjtcRXQOUOrYaxRSIvhnH39N2tb7r3073rNFilnq4vTM8dNkTyUpICUFqarEzELGFiIxRmZv4iA36mICaWiTErIJp9KqJQIVbp2fEtrUCulkh/hIpvYeJOAyogwahZIaVUfryknqqMYD3znkhkdrPV9mJUql7pm97eEzp8so2JuPujAGZ4XFTyDpghGWxaJRzXYdkGBz8Qmbu694PAruGFxQrKtGBeRu+l8eKyKAAW+tn6uXtRV19oqqstOyMqie2fzUJk6gzvEnbHIyQACgZUheUUB1OgmgWB+UlLOVniOjLL6DijQTp1bNhhR8FHBYjkGaBjOklnStPjJmiRK8dD4k+TjfIDlckp6x6k89nOvKCmZdhTsnT+wLkQv4cKceXFB7SI8hLzRQCpHUTh2S5StkLCbyBlR8O0UkeW9m+lPy4XfAuUfzo28609VBdJzKjeuHM4AJUJf5Hc+VgBsVSqYpTaiVOGN5R6m+ABW1BAtshRv3zI5236fREGCbGTkqE1dYtdfdQ6sVGVV12iTSMa+tEDSIzJVdvJFqiTNIFqhu7lo644OT8N96BmGzzD6LgRw/FnjIjQsUswamFHOT17ObqKPbu4UIg7tcOW/efvv3dC7SoLD8zyrHUx73lzSQxiwkhhw8BRtkXIykX3Rg+RoZLG/C5zSIQpIoYPI4KEgMe/eFztIrCEy/0zv/2Gloio2N4W9pDxpLG7SlpQb1CZDnodNARYCxSHIOWxVyYtolXMNHBvD9wyPFTLY2L7WUcFzWa8d+vw6RsXfwkAodxTNUPDPhLwi4n/3P0yFgGS86sLggSwHtPDPO03Hy/s3ihta1Rx3dmsOwC8HVJJrNML676eOe5cmHi6ozlpc1zZo+ImYQCC2M44QcLzy86tKcgeWLE6qJ0qxxxu6CO1OLH5snN5K7JAnsY+si8Fah4FqJ1hcrQ47aaMzMts/dw6QbNYNdzAkCJ0Tu6af2wai9Hw4WtKs1S3zgcI81rw5wxaC+QYlVUHnuy+ihMFtWJr5i8VK1kNyH+Qw/svfGP9QQEUOQ/bOSIMxDBTfWhRbTJ+AouwW/2revJ4OvN8w/Hb0Nb2fOs9xmE4OTlb3zJmCg4kZSgwGRtRlBGCjryQXvEE40FXQQUnXBs0zquH2HUaF6vyercqEK+bGXbCV4JlAZOJIyBX3BJhuXBdQ0sba7vr1M6fRliwmwC5LkobnOEwH6WXp1RwVlhtuwYqs38Cguu6k8FnFBFYBFYAS/Hu5FEGbfwhHZ2kpHes5yHs+V0tf+HMLru6DLHeSKzJWjlWHy1IZdYqzzHgOCo+OjmBNekl19VFBJ34++hTqGYhJmH8oJ7CldCDkUfjnIDiQEeJo/Y0iQY3LKCQjcefU2Gnxg0bBUONmLBmj+cOs4yxQkgs20pCTWFHBKuhW5HFRxTxQkdcInafBMnI9eM/AwlkjRt+l1COLK+dtSxGNa7A834Qxtm9FMYUtGfMwxI3fLyLGoI5KaG4G6cPtvltukY0RCpiNZ/mZbidD1y6O2NtSm5JzXc1Ot5ExDRJGJA/BpJ8+mzI5QBr8aM/qdZK5BdenRHCkKSGkLwoqsl44IABZdK5eRMRfO94MoIyIPiw4BbRKqP+AmBOLCp/h4kv/QQQlHXZP7qcUJzCBiVCGiaRKfmDcDR9KoELcqIcbcpZkFpKDAjAr1XTkeyiyX4chko/mUJZ3ICAmVrUUJJ3G3nvYbUb77UjpRAVfCK8E74fv0PsEtXHvQWlZcHcGYL9joXYJMZv5vi9KIRE4vf1ncWFXNQ/9QaxPiY3ps5s/NzOLUAlj718WyamEzjRVQkM3OHvnjTw88Mnr/QOo8iKk+8LqFkTcpZht5h3mFfX2juxM1ZgOUUPl/IMQXhxESu5UBQ1IgxGjF/mrjbp6sCpBVhBmW7xsNQzs7xV+wPHYBkOxqHxT9lMchFCPkEIIDTHWAoTsXB5w7QLPrPj/Ervg3vEI8vmb5YYHu7/io67ZJ9HM7TeUJHLPDKdGXYSEHMBTqQAS+l2Dj5xP8ACQjUFgouHD5BUYE4rsiPi9+KIUEahUSDrRFvV92wkF9vIwGFCRnPHIvijZdunMSxLkXbClsCG7ND2MNjtqzu7+sEJowXK9SIcSA8eJkp1KidFd0hyppLfBTDEx71VJaN77vGIXpfg8cfgbYfgfwXFhkQkzIgJ3/KSjP8tmMYlh4Ceb39UFimu/EWcnhizervhJlBcISqR/khmyyHZegXnjXm0Ai8T503cQ9Ziw6w9X6aZtQoZmRPPNEgtyiiXQIbBoghSV8KngqqG2w5tQvuqaE+N/4fiDXSYG7zgbopnBuQ+lyKQzbUAWEJ5Oov54EbFjQ9INSkThlmcGRCpixuhSeUzfLi6+22nQvQyxE7H51DWQqvevrdisQAQDOwDe6tdBplefH7VvvbSQKAf2Z4qJHPhbv7QGf8bF+eq2RB1IJ3oS+lpl8IT4kKVXU+LFwCz2ur53LBy7UMwljtjUJyCvAf3dZMTiC1HJZRKl/SPUbIPCKAvKoZAaEYMpfwxrYOAEfWOqrYRFJjBK7qQPa8xT0xQWs+LtkJwWhBj9aOKz5UiYycyPb7Rbgtp1qlU8UBB+piJW/IMYm41yLkyIP7MlDqs9ocaq65zkAnoRAPmmvu0a9EFiDBs2/20/dhzcVToC2XNnnZbUmdJZsyZJovSbc/TRLc3U6Fd/6kLHEIRp1omsYx4cJqk45gvVIhR4RctOoIKpiPNJGBJuNNxXhZTM7em6ZbbuAx4pc98KIK0lmWRY9GdMKcXW6/L+nEzYkKiiliAiN6LHSEFjC3ST4M/abVjX4nJbPp4tiq+lOf8TWeXdMWYfygr59SXTuNpD2WhXYBNbAIEijCxTct9BmXLFyUHsY7bPbCmfotfqrMZDS1gi3NKUQEdYqCwAFD1Y9yRCxbfCdoqF9udHg7yJ0W1rW/zKy4TDGAX4SUkEA28SikFQ5L26JdutiqQkccE3hzwfJHBrMGuwy6GQ4JHiyui6kNBmkI+ULgvosWpJwvLt2Qa/PH0Cp4/Dju6T+o+L3pqn4IhiYrTKoDdhRR492B8s33/T89Di3Xk/GMOh3thjAvxsihop8Ny6xZpZCFyJevsCb/bELVQgG+Xx1XaKNiBjTMPuCc0uBxTr6Hk/dxRFRSvDmmdmYdfPR6NsqzQbbDz/sSvLUC70aq6wAJIlBGKpe8G1nBQjpYzr9zDhewXIIaIi4D2ctmJuuhfPCxzCkujlKk/yb9lPdvAarGUnoTJVdci0MLHQvcnuYCDTJrK4HQ0d8B9b1MdihgnicjPHLJCabsPgeYwm/4l6mnz8IsxL49uqTGctt4ERq97GoUG3FDx4nHd54bZ2ERPx1WWPbTMeMpOOR0eqLIcSDWgJAsiJ5zgwp2AezKYHesu+Zds0Dk3Vw8xmI5N1gs0BdHn2PHlGb3iNS9Cd5lwtGEIoQz5eiPq2yUqH5f6E/OFwm8C1quR5bCVMBrwvCtHoRNKhZ9/rI5eiRgP1Me4QKloenu5eRiz/2q2KxVhEuVo4yocbuD6r+uaIhZ7EIc64dZQFPLcdZTGHULeqf5LKIer4K/uXv9z1QLFi7sFjmtRm/eWI/UFfH2Jf0nIvuTsj7Po4J2CVy0Goy6SvowL0gJ0uCR2innOSImmEjsKTMpmAQfHGZg+uBshOgMHixaIEy12aBFOLqUMPr+Szl+VE/oJoGm7qoN2MMG1ZF/9roi5YE3pX7RYJ/UEZUqSerSXy9OGd6yuxqx2fye+uUjuuIGiwLcUuvmuqWeI5M/8yvDcINK2/vdh60l/OcIUOa3xLcpaS77hzZO54A50lokFGfvFEVk05iKzfvgshQ/hUCAT1OsmvlKaS7+8KjHrnGTeNY0kneieYNf0j4bmy0kWS4otRfRGS42uT2e5Ioo6tVaEJGI2EwPMHBogEexQLoQdZwyVBMWEkolVQkO/7aOT7qgcYV6f4kw6SpqOTc10xn0XRlDdU5iTugsWEeCTu0ry2rVuLOZPlgA4SOI53Wjms11wqctlShpRygYfmh+qZjqXl+0Nd7oFroXk7TcNXzVCdrnGOq/X3tzGusRRL3M0nfQH5f0pL3wu+eXeDZ3EXDVNk8ewkYZr2v65w68FEjboS+MzgriR84+Y1nqlrXofSc2Ra9olLhxXiJoQTNXWFTvdoQ1dbK7sS6Hc57p0k0fFp4Sx1IO/NglEld5Xfd+0YAKcZZsTlUsF/RPw5gBg1/bzqydAouaiunj4L0LvG9poW7Go9138oT3Yi9q3vFsrNfjBS60lSncKPS9vSkeZsAqH/SJr5dxdLR5xz57gsiEfhMKn++RBu+XTZGGrZ8mlylrtsVbDXN1GrzVvifpodKkG24s5bnV++H5G0zOmDLKSI4CxDjtP5pXcnD3uVPYn/4vDUE9T63IptqOgoPo7x75vbVaBCGZsZe1lL3aot6PEP5jM2bCGaxFroXpkw6OffZa+h5rdmusdO4uoftZgTz3PXHQZ8WJlUn3JwfRGd1nbQ1bIDMgGvbBQLlrDtvsc/IkVxLZbVk2ASTfpwoj1fhOzGnIiYv4NhJ7e4WynQOXkJK1gw+2n26thz2Zwmqk45zI96zRhpqWQ44llrw81iQj5YrG/94zy9zso761IhfAzqk1NoTatC8wh9lRfbO4kup90aW5QuxBaOUAZHkLqJWtTzovjZu0cNft4sDVTIWDL53A6iwX07KwmWIVyWOAzF7sOqHFYuoDT0xEMBXPeFoNzy54MyhXv6pTYU2b/uK0nkL379Q2Zgwd1PUaNmDIcWnxcrsBKlvMhBvfFghJNB64PTCR+CEkXJ2r/nHbmOUvEyjHYL3SsO+r4lAMxA38jMAXp5v+A4+uijEiZYXJ2tip+mHDTaJ3DVCm0ImQgNk0RL+VZ1rUiIObGayCXR2hztzynxnpvEfjt/q0JR/4VH28gOGlJ7XMAzo6sNZS+gqQb/Up6T7lVOJicTfhWwP3DnUPPSZ1iNvB/FumlK1cFs0IBL5flpHFkvNHMyiqNYZupGSHf2CFzEyeK2rGAraTvTl3H8WJz0+zgP++TEI56JZS5E8vjia9kNs+qvchcgqAC7vSN0lYdFOWp5nYS8lZMHYn53PYZJ/fOCrK3Sb+iykn3VpqdjyhehFTP4yHQViza5UUAHsr9SIeFrUncCSbuHRbGrA7wDWFyhTBYIYhPQjr9RkH7TB1MSndzbtWTd2T04OIPjMwJ/8PTZLVFj6Ro5wI9Ea84XltiUkmdxfqE3aqm5M3sEimqwrz7ARPZ141suzgfXDXJ0tWXLo8rrjYLQY8JPJCioMCX8yOWzp+Vycy1kh342VtZAC6VIhEIIdtZ7UkwSGSrSTGfVTNHBD1O6DlEq6bKfcKgjs2vrsAbc7WrxdvywuXQBfQaM0Mnledya/phz8nc74NXo3jVdqCUY/tCtqkoV23+7CIA1DGQW6hsGsVQulMdvOUzFYX41vLyr7Sx3qbU4S4WcxMz/qzCxuTrJB8OMAMZLBz/dyJC/mqBmAuIUQkYRY3r3lfElRd4pJYJU8ptJVTgIC+H26U/qhVByVpdYWfKS9hvXI+FPZDpj27IdNP7RX85w8VGkpCQnoQedBmnuGFghyWulcYt8GflfgLiYucxo2heMSNt15NhLNePhVNKmLDQU4mZVZdHYlHkAy0LWAcJ/xLW3Y526UKgnFNAM4+Hl5B8WvM6dOlOnBI+U6Semg0wdg5dYE7bC23aEsJNSyGm7MeFUIeQdzk/zr2pqkEwrGZQ8Qa9Z/Z7i5JF+4GsJaWDO/HeImAZNsyW+PNKIGv4OwziOR6YC6ZcnEjM0XCbpoLdmuQrT+qvHS4IWJVYgp7qKqvS13bo0EpFQPYER+syDMwfgHe72XzHpggNO4x4sdlDXrN0SNx06L3rESWshaV7uQiY9oRVjNbBAZhHjhAApxoUzGNq+IDDkZBq1cB1SlO3WiN+hYjEiWUtZ3tyDRXQGxJfeAchdPHJRZcVvZZmGn40vHzEpVX0Rwa6OdtoUq8+FgwBrGQNjp7W1v4lzoRRFCEmiPttYFLn9G3Qxo/3XvmLI23Qe+Kt3YJKeGSxFmYNeJbCpfFSEOl3LQMYkwOMgwKCUBILQLWkdQ5V+3N6Wejrdo/dSLu8QfI4MXCMzym3fPd2Zfy/uKID5Y2hQ1LQMYiAn9IyNQMCViZjPhP2TpPupDy9k0dRgpbnTIRFXXrmrKXxrrSN1icNF9L4nOz3fECqmCk0yTcbSu5tW+DovKU749PH9ujuveq70r9FWcEeZ8FfUP6s2GJXEFCKL9lWx0paWedfcnh4GRBWSN6LCOqn8OhBlED8e7xuf1Z3EB6PJWbhP0Lwk9MyPMEKBrKE4puLMO7H6CGo2MccQ1MdXtJRbRv9iUSWZspLiROVj6MEkT/RG7GxTJrPisr1C7XyUQEwpHfnGGmNYzkceZ+bChiPFUm3Kmqfg+7igosF4YSissgKWWmzRXSiAPgdawH3tn72xM5xKFP7dKj3HzpTKeM4Zt45y3vf6U+uRji+HjLddUlZ18LVA5rtUpo+Z4ZuZqEWU0Ahzvw666WIJoQdon/l198YEg7/zoUswuusz8H5SzjF0k+3mdho61ejLT1YPS7GHDFpP0y7fJoBSYo+DPmKp6+4kVYmiWPfeb57Fw5KszoIAovZW6C9wLBd+eSOARVRp+5q9W6ZQQST+Wrt0sH+O24azy8gD3MG9u3gNubqucqEbtmwvT8in6K/nf2/Dg8rkxEHsuk0sttQ8h6/FATJR4git3puYT81J7ZVKnPqdvaj2NtZ/QJTyNApZEmyF/f/4jEkCx1WhjJf6cAKFq590RmeKO2wGTOriObspafUiaQRf5+TEM0/D23+jDkBWnhKfbu+wdh/v90Iso8B9uO1zAM3+UCiFTrcAuOX4zD2lpKLOTKvsN8GPmhtuXmQR7qZey/4cB1hqOvg+r6IsL4uDXlISDKkFEA+lg3Z1oiafssmtsIixnknJvWCoj/iKjPPPU/BuuwHTfijgf22w0nF43APAPPqNX6ggcrwv6tRNmubaazsVn5l8Qq++hhkeSmHTZr2ua6ltAyJk6aNo/eTBrWPw53qgqMkkBQwBNYgfxCSNYSRr4oXhfL9q45cv87uEYEWz+owVy+al+Qh9Fg79ucRfOW6OGT1g8PUSlBpKY0pHMWiURa3xdHZ3bF359g5XwVuG7RJNM+wTsJQF3PjZwtSGiudEKWzBxaJu47juXWMhk9pCg5bTNn79A5a2trV3Jnnqo3nWdkWc8beBmJaGxgTGI0jcHxBbS9+XUhj+aFN6UnXMxaHP/JDRocYRePCjSnrwsUp9GJdbjfgiDj5x0JGDdopFQs0eKsGmb9TdUcdRs7Rl6GyqzoCAKKw5nR/l8hUQbC2JJdb/gsBDJI/J0hUPMb3bhRw1gwkrZFErUPY/AKWL1RDf8fDnV3ujyjNPqEV3+KJMmCeSqwCwxHpAlFfK0s5DSRESPGjkzI2qNB8tTEz2C39tcZqu1mT4CTJHtnEK/yrpa1IGB+6SdaPDQwwQwWbIxdZfVRFGwpjsjn5s/aWJ9Hs4ISkJD7wx87FPMv9s1tRVW5atESFNdGT/8Hh7cB72WTmcGKtbx1ji5uCJCQTpQtjwYcZs045HcO8AobY4rYrlFPAdKSkAPAS+I9dBF+8iWfGx2Z0/fvF7jh66JsKWwDlz2NdWF8XWONRjYc6tIwk2HuRNJ8rIz4AAmr69uBKG4Ge/XcS1BV7QBmjxblVXFsGjMItRoaQTMe9exG5CIABQN4ySBlqaQhYfwR19+FGrPBTEqT/uWyniml2ePGz12qz0ftPIW5OEiDu7olH0DrOJcrbpT323nFw4ohw3wWZcpj0SEJMFr4LjhxMxb8kwCta6kRWfWj/2k+1UhzlkSb8NnDe58tN8uA/anP16vxnH8TH/84rT9bf5VkPAksWC3pbxp3Sm/fVh3GLErZgKNr/QGZxiKrTnMOA8pS1YiC3jZPkVeuHiXkXDlWoxee2ktWmdLjhcGlWyfv3SRorSXWTMOUIxS1NRS//N5xdQYq3Lk4rTblOSjBe82iz0tK58VgNijQFXkgMaaWUOHonBhrbs5KBL6HiwRuTEsFyqlGxBuzoK/dcemeCKUah+zk87LZq6ACmzRp0ydvo+O/wsmugs0JxhKvM0PZSlCGYeRNyiDqbRw7vVeFWzHnEk3L5Dsnzvu/wDu7bAe+mgGvkvu8HQSVeMXF8Pqssz533wQK+Lf5H3Bj/XX8as4FBMX3/JLj2C9FpcQrgdzuCeRG2EOjy8zTv10q6oxKzwIma+k8g5GiYUwSV0gEmhkZfUc72vh5zGAh55RMYIwdKWbHPnj5sP1zRf4iUS/iVTgtl38PejtJSjgLgNuxlV4kIBAnf2XoohazaCGMrBQpe5Xnbyb6+x2+s/xFlw5roer8LV1OL6CYMSUnEMJafmHuqxbMlHorQqC+jB77tGVia/9e4RuA19jZeEEONXfStUR2B0EFDxXd3B8VW/p+Vavn9ZjGx+vpUgrdN0ttpA8mb7suE/5N7uV3a/T3hlGSrpNy87Dc2qVa9fpo4ZKtUWGBj4JPQtCKFsrp6XOOsSSRZwWsQwqIfxSIBGBJb5MiSsJgOhDCO5/by9FSg6P/bGi1P2ODyOBOAD+HONksUMuDTYXkE+vqr5YkkpFvKESrAaGgnUxGwKGfzcv39Xg1dZ2UQe6sS0DKIlOhup/DQqzYxE53ma8f6VGEkmMkorFdDFi/SINI79B8aqQcTi/XYjtYoFE2kgQK7EYsQzpTdRcpuLe8ne12S/pO0MZcmxZEuIOSP6baa4ou5Y4Ln3jVs17VIDSmCXvlMx65gl66SgdfGgxVu1+nQX97O8PSsxFiwmhF3fhqsM2R2iSw4TAg0ehoywI5RRxrhYqaaaynJcsyJXHYnJtMgM7Cg0rSCEis06Wj1eS1pGUtzZEPOZgUZNFbV6dOBymumzsi1t+ipdTeDK2qoyzeb9Q339kJoOjr9yfl/LjpTBJZS4b3z9LqTjq8iEaFJgkofArGZsZ1tEEzcSZk3fv17Vq3bzkz2qaeTJfyk5fXNlKzB8HPZ3vsqdXbNXWvUWCznCV1ggetZlOkS7Bv8PQxEODQnbGp4wgcG8Cz8hGdk5ppjq4luxBkwscVQOG2ZWBCVU5N+oZH6YKmrkaKVgUFObx4VOhhhEbN/KFRUTYVuhJf50GCYyd3wdmKJlU+xE4uAkIf2+iWK55EXkG3V2q2yu/2ItiRYEn+MykWqFNO5u3h4jxLxOsWCKfPV8asPc+DbNGrSlHTlUBNCKWCU9zu5sVWRsIBSHD2fEVq0SwfNQRtaI8CJh9maYMYJUMwRcHjb2oo7t7Gw8u1ZLX0WjDOW+eHBxE1D9w5lxVuUcj8ffarfatTucQrs6en61wiRMGmNMqKtzxro0WMxR0JAoXD4pVXDjibn0tzGpxxh+b0T+ot+JFVzi22WhLX66pS07KRagINQPWTtrVplstJnrC+A6YeJosqCvwZEOsu2YJb08uyT9nRtQIo8nFYhJmkX45dDUfahEInQ3zrA9giKg0t3QfDW4rGnXthcZJWtYXX1Znq7sapEruT0bQJIjjE6etAVmn1wcYS5pFsxc0pPw7NVpGZJ5BmKP7BXLUUnoO7El7UEJvBcCc/UYSdsd5Pdr/Ftd9O6jxVKfPzhLw+HGu0NCmQjM2Z3SwUA6FuyMezIIHYBPMJhX2gjoIXOzD7xDQKDz6+MABIlV+5Iw8Xtiux74zV1yIos1gvSIJln0TswAwxMQDKs7kLc/kO3UqXtKsjmKkgtVQgJzUZscdeSGfe71kmELdLW6sQras3T1kddmF0S3ulgkTQGHrjC/xqjPzq2XOK5ebmhslx1AO5MplV3tnv0WRcKoZTdPfBoNDwv8BJlysuM/uAlcErkxyYM0i715rv84TUWhJoQUgD86TSFSmmHEojx89rTxqIUFhVb8aOitnhGJeneXUJK7os5+/9kd4pVOM74+dWJz/VIqTKYLKQP5+K9jYXmd5tRsdyqT4mj77lpLy5LplSJgEAHnbJuOsWOMJGab9b6sdS0JJ1v2aKwVM4ag3FhP0IOwM9m/4QOxUV6BVBYLlTgUGv9AOU2vnIGEAjOGrkRGE0MhsITPxBttMkNZ1rM65iMA17U1++DceSY4o0Emz7GgeeiSw1SMcxA1pKnRXQxSqqy6NG7NnSup8k9CmzvnfJsurE9HUwbh5lb8NMaWHcMEM03QYIuzbXXb/EqGcIdJ6cFJLv2wWEMkoyZ903o5qlDGokVRSayDFVVMrbfsoLltM1fpu5Qwzsut0/s3on1Grnozuv0rPQkKtvisSPTEMpq3w8nLbaJkW/fngx63S7M78z0dtl4nhZhrDH/vX81uWqpa3b8Nl6k+dYI/bHO8poUc6tvrbvEMJdqe45MUWSb4LcAXJ3KVLLzweGdPkPjxR07h5lJzchbwpWm5NdW5eBFDAy5tIqlkXl6HmGQDaOQDq/2jl0xkI18Pok5Gd6MS5o81wsQv8EP4lmtLTOTI9J22MlxmOvAozzDPxA8OQtU2kfLGdsPCquMSquTimYmTitCrWXF0YnFN6dOvr103HDAP5v2cH581wqJhFS+hQ/xSzajQAG9vYUAjFAsxFgY5eJlSbub254hlGP6mUKITeYylDFnYGDI4VMrUtMzihC31XTXQ2XcNd/V6/T2ZZe1+nBnt/HKzV1lDexqhYM1VZGHfvCZ38yfSXK41/DP8Cu/ned8+c6X9if78EaIvf/l8eK9EOv5Z89xYi0FBThOJste95p3Hx8H9m3IPD55C2/I4Az0yc8xgbNiNYFIb1iGV+a7Wus1hxxOy5FxftKh23ygqraxng/Rv+vuTmUxvgEpw9EuVyy+0DLnIk78UR7MXdBpnQA1li4PA1p/bmcXPBGICdX6XL+SbdMz2DttTU/cv+4rdnLunncubi+85C6bWdo/pFkGFrvz6vm/5zQFLC4tJ85eheQ7hWfAXGXJp3aigRqRRkWJ/t0nP+QcyOFTibDqRlBE/+mS/i6soxnauWsO1Q6dvljI6VOGtw+LUVMW7h9elGGZm/t1D13WgmaxFM+hxbV72arvZZDS1ZCvsrF0wBLsooOOWlGMP+8xhTZ6k+97w7Wby2er9CPvXI+/uSySg9fKLjpMq7fv989ljU/g54ycAf8Vnuzj+ZfipRltFXNyyaD7pgK481BvyFP6Sw3wJsyLXHVMhkzcOtWg2y7GqAIXbsei5mTuhszF6TA5+pBhDGpYdjkGmI5sJNfH4Feo9rlb4+Sdnh0WM2u0Y7HP07BFSR00+ebdytkCzPGDYLDF/FPTdiB2W5TVAFWSwo+8MG8ValvRG2Ej29ZQItlugUC4eSqREHL9nHoVzpids9xa1TiC0TbYa4hrTqd7e2YuDIPWtrKnuu3d/3mwGv73l3xN4vzIopb+8cLnZ2Drosxpr0KKtafUHULh0lR9GaZWfaQIZM82dBLhE0xIzm+ZW0TGHXr2zP5eNe1vyt4Ht51nohHLtYh50ufJh39pHwN5avPzXuozzb4CkoLSl6elRqKm13XJQ0bGDjHFuiIhgFDpmdmOl5KHZdUGSKsbxKzApRYYTyyxsfzJL+GZCyitXBydStuXSyt5r/+zaz/BRQVttu837tUesZa1E/yinK19nKUJdJ1UpcFSi2ocYULCQpcU1mNBmx7KzTF6MBjSvdyskQ1iFdDtW9k5wH5aWq+FLsh8tlGxTzr9VEuxaadKXydlxgh25dKmqO8Zj9vFSU9P/PvRCmf7pe4EbNOlir1X7HpaVmXNofwXwEAtvjPas10Y8SML8BRX0cNlfOvcw2jByfkYa1hAHIKvLr1Pbr0GGD+3TEuz+c9i7wATrH+nk/nidsAUwKPMeYIWFFG5zvd2Tcu9879BnwzuIXxbGES7xO3swQarVRHrtI/pNnTJpFaWDIEvPoIR6eKNxeekzDf359QEid84ctUu3b1kdmNtTnVu5wPk+Py1ld8/WqnPaFYvxG25rTxE58MzSLLjb+7WH0wew6BdO7ej0nSETWLt9pn2pfcE1t+y2Jl9jrbQClUEMFHhhdFUNtYBevrfcb/GYTw5ucq7Cj+phDCUuzq6SxES3t2nWoxxellOZvH728ePvuJsQZtrlrGwtNNKi3jKfIcFe8q8JhBM1mXETjFqxUNSjkwmw/toPNFMFfTeKH2VXNawhaZKJ6lfHhPdRwsNQ2biBzILIp0HV400Uru9K4I+hluLdQ2TX82U2vw/2eY58ar5DMXUK921kcUSp01x4IM3QEAm4PDvCngzXmBFPRQLjfIiYpEYin1SjdJ6D9hLrz4k9zk6nAcz7U3l+w5rfR6mK7UDTBu0o2nR52pLIOsvN1wW5Du6HfH83bzzzD2ySIhaSfIjhMhIz8KY5cbBpMrx0GFQOAuZozzbNN/P+Ql0t5Yuzs0hrWje1RWMpwwbuYMv1+sE37i+Q/uK5+9dLYOYVErP9VofP/RrRJLd3Y8P6FcoYR7kZogKeliT1h6qXsdNaYJ02KXWHjqa6y4CkZa4HliNaU0N1jqeP8ViYP5aEKceoSZE4w9hgpuq5PfOPzJbhKVWWvJaJTyLkWinIst/z8cePmn7Qm2Cqr/wlfV+aBfo0eBy6gdl7Lt03LGxFykK+n/1xWt11FpPmycXrGGR+FsEPdBLnHfOIgdiHcxUEQrT1O5PMjeY1XJ9iIiAQFNnvwfP4kglEGf8bqidImNQU2sRGUouRPP31/aKpZi6dZHTuzq7q19xZxNnt7/ecZhzH9juCcceOk5q47Z/fs1OXei3LDhs3A5lMrqWOVnacIeLwCnSMpWd3zphzemW8JcG6PrstJnUj09GUJAWYMZ9HDSQOldtoyw//+uqwXrmiTDj1yhptyBVyeWMi7yT5LICcOe4bVb/v7VL89n9ELBQJQy+x5b87j1y3KyGgZbXwJxzHzIVYl3I0JaceOuaqG0hwZRGR+LG+5GpQjxMB1bZ6fuC3m9r+Xl/tsvrpBNN3gCJJVx5OIiVHY9kgG2SI3K+ijS+OD3ybG/MmJu2FlPPCFRZ8MNI9fqaZ1J0kqrV37JDcIYIGgnf8ltzbfzGn1vu6hkC2tLa0jWtzipOq6IfD65sQR0CrP1ilywdEGqLrYam0uAw1joVdgw6o3FiE1WoGh0lqqzX6LAk42whsZeWOpmpqUOViZO6eG1UCmtLvqj1+VXYftzluvk8Yqhm+Imori3RgsV7jVwL/jNw3gBj2tj+MZ/G06I1vmRU6a97OipQErMowdud3Lo2RVcXGB7Qf5Bum5MV8e5m/3q5g3UuEvlR3dtOKftqMxInVX3PBRJJlARQHlRVwm+QrVlNHAyqekCUrsUiqeamv3YuoBM5s6c/Hv3ZPkIT+muuJn64R5TSWT8rkame3Qar8GsY8S2iSrbV6uLwZ3nKjGYhyeevTYfb+u8sFQMnaEEyNKu34YdjkoJPXy9rdVXmeqMDP3yYoQ6ETNZxIc1KirI4dErzbEmfgc3SMjJbPCrrXdANN94vDuCVI9tXi//OLLDmo7ogc+7cYzz27+M9+5P22uM738y3YhONLAfOF8wOCf+PsLpuR5SZQ2P9zlayalaAeTPD3STQd8RYDTci8T2+bjkZSrefL7mMRN+MuS7T9M+XUvRzQ+VyR5vLsKQEjcJ5IRlmKVEa/QEI8+SBvpfq14SjPeZaOuXb17Xrh4F3UeDCyZOXueUnwLBJWaWNmbRWVGyepMz+bcIs40byOZyfa51TTyehEThq0zMyZaUwGoe/8FOTX7bFeEzscBEyg1NH2nESZJgBpXSiz2p8VuxaSShQlYnInR6/m8glqE+bJ4n2ImS1+WESRIcxwSTn267Jf183EnVlVvXRhFbXjtSuq3wXthrvp/cYh3KLl9RFN3Al4eN2fKqY1ZPXaSF6t9W3cZ1bqfHZ+d5IfEGfuaiiiuPgaGrt0Xf/ka2/zSGbeKUCX20L5V0nuunoMIX8I51wawAtJDX78w9tp9X4JveV4wEjgHz0uoNNp1rr07/2kro00YLjvCMRWHhGR2XJl0OYywxDUmy5+MzNBVkbWHWU/AsHxpX0eioJkItWWsjN3X3ZF99k6G6AZmzs7u1pufXn2R5sW6CxTYPTzLGDYc8yr6VLuyrDOZGTe1n14znLbuvr6jMfd9F7RUVSFSiMFO1ESQ5DSMIuHwnUUByJaPwT4tqA5MJLnd7xe6Xv/0sDgWzwbKWWFtMYdxijYM9W2tNprJUC9Yt9Czn9jSgxVI//ng8pgTuDA8MtpTOlYAc/9WDyGiBv7xh/Z/9sQah9mcMfudkMwyjZTN5Or83N3SMA9TitHLQkVa9CO5Wd9fd1jXvk4kBAnj+V6qN+24gv0IQoL12aVjr/Ox79WPHCr9bm/KtqZSSj8N0NaW5mttLMKqrYL2gCpMmp/w/QoOVylQufpljo2HJZK5F+4ocBwFNyiNSGPL8Qh7pzXCq74kkh0/uLbhd+kTTcQfzjAmKp8H02S8Yf+wuXDQWu2QzB/YBtOg0qtIfuigYBNbaOFNHBSnGRpydHrqhOlDHLWYHKlom6XeLjCkEjwfq30h+BzEl1UHiQLiCBxv6d4ooW64ft2zcnj8eE9641UQIA8fhXGEPATZBd64ySseXSOUj/0F2pEgMxxfB1bTmvtXcwYlNUYoLKfAKF07+L1eby42IwuiTUXCeHl3QvRcGhDXKeoz0UPMhnU9SOl/iTFT9s4d1+YXXd1NaOjr46WmfNpb+M3MPC+vTXkoyGUP7rtTpo1ghRc28Fy3+tEINub7HqmhpnA6SFgR7TNSjeGm5lXqo1wOXERRoQXK4F0R8KF/oomTE59k+FfXytt33Co11Uwm25JmrTwfQ2ZbKLoopnNvek7GlJInPL2UzP0X2ppnKtYu1wgloHP0m1Hvlw9FGRzXcWBiD4a4oPrwAtP7SnGk94KRkUy51Vc6vkNwjof/eTF+jA5IKuukDHVhhgAVTccxwhIjnp3nxKynD6ou0nMnN/ntFU2aI2vF1i5QOwu501MtzDjVX+VCJLR41+7DpieQ7BmSOTEykZWcZhf8OiHAN9fiCwnSdSlkS3uNXlo8mcg53Xij1/VrwucaR7z8DR+hhyXJ52owCxt9LMZRhsjKMOjFIpkqIE7SPhKXE0GFfkoTpdHgAInNBlOkTQTsdZYqxttXM8SOwPfDUC9tmTzEH6UL7Z+lLP78OOYwHtb+eY6/c2vw26e+wPRSXEgJJ/oNpQfzFB1/HEaZm0o6uSVMPtdz31kgllmLRbI4agxm8xYAh+Pe9dqj/mTF+teZadfbbi/75/Typ4zv2XrT4e7fx4YY6g6Vc3D7MfDF0wCdW7V35NE1S22MR5hIftzoW6leWudorJje2ZaWtPTamk+dDNOG+fvwjuzPT9/ZZuGZU6u/uXHfYYSiCrNMUOeuuPfdPIE4dIhDexw01d2dtHiKi0dBQwYbwuTSQ1LihWwGQQYNZ5Jly63D8dW62a+gfJ2Wpts+aNhznm3lK00WobTgg2VLFT8dh+Pfffliuo5enANNvvEOFgkuagkHMXDgS6GVhtx7agwboXD7Fq7r0HErd/k0elgu0C7bXZYAo/t3Sr3zw2iCO2XFWmOwjBUFcpsdTvq9W+vk9bj+gxXbnrQWVGcm4bOHQ6lfKrjU2gf/0fiz1P763cqIQgCGNgbxtCo7jCYT26A31maDkAH49K5/F7Z38sgr41ZODjI4sexFkrZA098XkZv8L5u8WpV4gfmjf5ujRyz92NWQymd1HK0Smyu9rz7bnnpVUo4FUG2kLvDY7maDb5iJTGB8HG4eP3WFcrjQpAWSunrULA34OFygUoc5ooVckCWzWcbJd6iM/v8nsUEPzwg65bA6+p0ujxx+reD31LeOHHtdue/gfO7CRTY/vCORLMZ6zyPvaZloJlUY8JAJQF3syzMunU9rTeh67uHrJQmWB4Iez9u5q/fEVAxZ1/GbnxmZ/vwQ9mfYJfLBedLLS2PYlpcsCoGaJe7FA6PChmy79En8K0DHesIhbEg+FIv6a417R02br3/mcVJSS0bOQbyLB3bqcXfWmtzLeV5zMcYr7B9OWzTgfTej7Dm3ol/LeViuRPY3IW7uYbPFufi3+FHuKVyHbOBjyOrnTL/loXE+qKmjYAvXjxiFzfuIcLJfVzBayill4olKMpmKfB8L/R5j63uhLiJ2K5wggw3nEw4MiRMXhx3vu2E8C4V3CcmLiYc83sMCLwj3pg2x8zlFpyUbRJ2HmaGd3ibGq1xnMysgp+JwLARcufa+QLcnNugOr5kHhlDuLDfc7mOHkMsWzldmuJtHyrcAs1oNjdZ96ijA/ALNx4wPoav6Y8F+O3llOFcbXd6SQ9ccq/v3hA8MGiOtFUxge71s1qIZfeQ0j+gURbp6EdK09A2od/MYKsEwfK+UUd7APxd78RW6jA5UpL+uP9Y4z4RH7wLIeymScJQfU59xT72mq5qthi8AZtUPNMJ0ow/tZU7tLxynzl7mJ8iXqC5cERIFxTVDm6lhCW/iGeIKehu0iDTvNSW61laRT4sLskmeT7YojPBWJ3uS5VfwOeDZJ2YGWpPPvqOz6i2WWetTCzEUunQY5IGTdZePtpcIWufhZTBfG8Fzo+dQMigkimiPt6jzcUR4X/vcWjHL9Aj0zv4TcN4Hr5oUykvYrDHUpCGK/EUULnqXbyuE/8QPZB1VFqmIYB6J2dXH84smDM372QvKVKvmu9ZHyrfWLDEM9LMFLxEiMrPLjD7oFzO2gqjmBpFeUvjvmM5Z0X9mmjTo+W8BMOp19m+MgRU4p7u7HsVgkdJ6zLUyq1uUj+hY/dhx2m9skp7m9z1I6eyWuE5esqMGD7sfEj8HQoUwWyIrnJfc3gE0apDD8W574AWywrL9zpsj0cNxaKIzoKAFzKBkESivkYmS5qb65dF7yPOqH2EfqqC+PEjFOjFTscHvsujQFaN1R86q8zgQncHtdA7+yKW9KDRfeuPq8RKtVLtR6ewq1ce7qpWoaBeAzRSGPr+imSarD/8oyuKwlEfAlOls5eP+oJFFWO5llx3DHCFkoOSwp4vh2kNnnBrX4gcKzA3VxI39kZqzgc0pcg6IBBB5vVOG1k3DD3BBSe4Sb5JR2LKcmKlSC4N6H5jJ+C2yPWxE5qfTx8zzQPScX84oiLCy3xpdxluR0/wRPvmSk3OI97SfdfvZvVrnF09MU1VyF/98sBEbAtJNQ3K5/omyIGnrkSdt7CD1OPioGLC4YVQVfr2Rit/YsvGl2ZrtVzuCf+pAsZkZ5ksYCWZ6TCydMr55RUC1ymA3HaNKgKv8DPfewoNVv141wiM2LlxMOnZAXL7ppQtwWe8cjZ9+teXPxh9NST7gn7XXLB3oVTt++VH5Nz3j3TelOeZUTJIRgHS2DY2D2yYnJS2gx4I3B5TrhZ/tmFv0Pxs9356GuAwHgLEhtFINlmKWZudP6GAjizgjyZw40lnZTSnFsk7KS2MVUAUDoYCcvkSU7bi/nIJOCr5MQ4+sfOFeO0gD0+uD6Vq/xkAs7COSCwAgZ+O3x/8ASzmLB//JQ0ZjYfi6cdtUSfjBe2ifFb/SVzGbXs4L+rafhtYai4QvM+sj+TVA4FoInVLrOzNfeSc7kkQ+2y7DXDNBuyFu7hX70u0obqI2OxXgVHXbX67RVpDypv1tWoWWwY+MQALDT76d7tyAiThrPt43XJpin9MGv8F2x8T+QbzkSX4k94G48IV2710RuhKC/GJuFAXxvcUAGpZ/vSlvy4DnzD122GZ4ZsRmbaN7L0guQTzwXlo1dvzxQq4iwX/xB/4neKOQ5gL+Ulppd48xksKblEfeezR52XCg6DKEF7q7WtehJEco3Cvkj8sklcOizF1f/SnI095ahkPyb/VbYZZ1L6dPQ/umKq44xr5menyXjKcFgFh0gX1nZufbTyTOvv4xIYp/Fjh8nH3DyS6Ecdzwk9ImzG7aPk+y1n1/o3AD1bpqPhYG8jdLwEJNbg35BPm/Jz8gNwn+b37/GfRjteF8GrszayXtUoZli3Evc/wGrAcf3gfB/EdvtzJ4VqOvVUfPZFH+Xha12az5p5PUBD51g8H/PBnsWzIvWcF9SLCvIuADoIbIl9ix4ob0ho9FPwmok8pAkMv8DEo39F9ZTLfvOVWq2Jenq85Q86a/ry3EiFsxq3o7GfePbgPgb5JORvQE9i15cSziVTOM7jJ3mLz/M1q/tufG5/cyv7AdxLvY96Z/OfaL3rIx5XvnhikvcuNLtg9/R/a4gdF9V7VXSAhW6ytvTTDpNGkvbzB/k1S78Zvo27M/M0AbAaY23FJbP8XpBHYoj2KtgmcZ8veFei913XHAO31RqRFAV99JxHAzJWIXMN1H3X48LK2mkZpuAJGFqUvCj7/ekceaWlHHqktpqIO6UranmCktpFur8RWnzvDHFmn4955NKSqfxcAlREblxpI7afdz3JrIqj4+3+90f8fYyXSt++SAT+DpfEVVjAwMDAZSUWJGjGjwP8DUEsHCCM7gg8SPgAAHT4AAFBLAwQUAAgACAB0pVxYAAAAAAAAAAAAAAAANAAAAGRlYnVnYWRhcHRlcl8yLjAuOS90eXBlZGVmcy9kZWJ1Z2FkYXB0ZXJwcm90b2NvbC5sdWHNVctu2zAQvBfwPxC+O7/gIn2gPaQI0rSXogdKHEkLU6S6XBpx4Y8vZCWwE1OUjCJFLwKlHXJndkfLxZvVavW2tDoE9R5FrG/Ziy+9vbpm6E3nycnigKkI1qguFpZKRWatyAlqcCK6BVNFMKrw3kK7BCT4yCXWL3J+PXxNwC055DI63WKtgjC5OhHutDTH8GJU85A/q3yKSemdISHvMnQaknczYNbXNwhB10lpDUk4ITIl6m+LNtLBO1RguBKzqNw3DG2SflIutgVYfXP0K0KRgZPeRKwqz0oaKDlsvhoR8khU3TcY3n31fFemQKLLzUfWLdLM8rabqtBFHs8ay8bWZQCtN9Hi8/HPVPtMcxkBTnRvwU/kZK2WznOr7VLt1dLqAsMqxEIslqcnlJEZTroy+Rv0Kgyq/jnPnaXvcHFpE/Q117GFkzAo8KW2w5JRUxBwWKZGlWbShUVIGTlJynx/2pJDkjN4mInFQwcXaIv1cWCOF+zpyItrttU2ZsKy67LT4KziaVq3L3ApvT0TLfiSnz/nrXntzkwXfYa6DTmTUaVFmIoofeIB9ONnSjwFKsiS7HIXhP69m+WZm8NoyE63/WiWCVeBw7NrbJzFh8e+3yF03gVce7NLnMgI0cr/YNR/78DzoY7W8+5kOA26/wBQSwcIg/wZyO8BAAC3CQAAUEsDBBQACAAIAACoT1kAAAAAAAAAAAAAAAAgAAAAZGVidWdhZGFwdGVyXzIuMC45L3ZhcmlhYmxlcy5sdWHlfX9zGzeS6P+pynfATs5lcj2ck25v63Z1pmSv7eT5bTbZsv38qh6jkyESJGEOZ5jBkBJXVj77q278xmCGI8m+XO5StWsKwACNRneju9Fo5OWU5mTGLrcLMpb/fv1VLgsXrK7Ygou62uu6zCn7+is+JzNaU1IvWfH1V4SMRvJvUdMFI9Oc0UqQDZ2u6IJleUlnbEYuWX3FWEHmPGciJaIkVww+EEtCybTc7AkvyPdbSszQdVlC5xKoiiGcDhiDoRx69Kzebxh5+XxHK5HzS+8bKCNj+JVdXLx8/p5WnF7mTEAjPjctYCKkYvW2KkwZK2Zff4X/pxFTsZ+3vGLYH/4yGONiQ+vp0tYMkosLRByd0U3NqouLf9aNsnxLk6H+NN/SHy8/smn9upiXnd/nW1piS17MS7+ToqzWNOf/YN9v6dtyW01ZZ0/N5n53H0VZdHYADfxPeM2qbc3zzs90I/2pS3BrVtMalsalOFPotuQSUaYR/O3Wy19OAywwLUTYQoQtFqzebnY033qwqCK3n7CVaLaC8k1Vrje1aeXxmqgrXgBlyx+mWGwvTWEmtpemYg5rV9s6+bepXisyVLX4p6mcLmll6+AvU7XwBlw4I+pF8dah5oVgVa2LM/mnqZ2WxZTaWvmnqS3NpPVPA4ZPByJCAQGpxIikolc5QwLGH4ZJ2DWABP/oog3lKB7wX0PKupR7xZuKF/A9/msKpzQHSsJ/zQRBHI3xH11EhUKX/GFJnxU7MiYXr354r0vgN4DJc9tqvi2mNS8LtT6vi5pVm0GWZSgC3UIzxMCIm0tezAaJ2ygZ4ndK3kX69KSeGZwBadOaYdOC5gaAsKIViLChD0hL/woYI+hvJryo2YJV5ydG5mdv2PzWium5CKhncHOb3sBQSiblvIAlSp6+xA3wuRRRRG8P5PVL8oJOl4xMbvD7C8H/wQaC5fPh7flpkjpdqdVOsCfVUaY7esPmwms9LYuaFTXAN6e5YOnXX90O49P7JBfGnaUU1u5cBZbcf8Zqt3jofA1gPWcrgZ+Wec6mindnzmbvVLTOCwZZlzOA5fHuMZTIrh2VwJEMTs9QSsbEdLKYAniKyOWcZRUh87IiK9BLUBLIOiIBlf8B4ierc82vshAJVv1AbNwehuuqopsQsHZ0v7D4kfh2kJHsbJGSTvHJKa5zcT2BBtnFxRWjq/PWOdCcU2H1LReap+9OYbTB8OSdbK/EZE55Yac2SQqeJ+fjutqyVBdJag9LL8syZ7QIi4vt+pJVbqmFb1oxWjNCScGu3NnBYpG6JB/Ky48fcGl3tIKyD3z2ISVlRehshn9AK1oQds1FDRtVWTA99wUrWMWn5J0u2NCKrkl5+TEs4jOiGFmXK4S3IO7sFNoZYesAPigvP6aEz9TK6V308qPaZKBe1Y1GOLGiLEbuzFEnESn5uBU1uSyvQd9dk8GmFIJf5nv4U7YBWl/t/k55pTrkc7l4Exjv3Cj8Dv0Y4hrqEoDM5QH5A3kp3VlucgnP5So+JzsyHmM37niErCZ8BrwGi+7yoNzGPCEhaXi8uk0Naw3JaDSZPGsj3fPzGP+6KF81RBHAgyR4m2rJovDmcRUKiPLyo6z6rPC6RgrQ2DSnQpDoXmQ0GdkdsOOt+oz4m8JOf0HW5WwLYsrp2ppZsjfbWPH3aESknSKAjzbw0XYDP4HKNrRiRU0uLlwQ1Y5BQXuR/cNGYXQsXszYdbop2BX+8rcKwzBYN6jTlaHDGhCv1jBorPuC9uluiE3HO6IQ6bJxTWix94tWbpEaS8kpIrbTKRMiqKXFnii7wGHxTRNk1CMHcsJYfg+IZNGuH5AWmBAlHkS6MlWVluzM8mdyOqAMq2VyqvT3UGvX0ej0audzlfkBK3aWA0yx3BSB9vmcFGWtvtVyQvcElE18FmPFLl0oDkXIzXY88NjlDStmrPqW5zWrPkVqftwAvsT/5fVSNhpOzh1t/qLc1GIsNa/vYDu+3PK85kWSWiPAKVNyYkGrS3CdeHWsqsrKLwqsH1uD/gxtuDgfgPOlWWIMMKdcmUdOSaQ7be/4A2vTyGlY0Sv285bmjVJpmfllC9b8WoRlggGiGmOLNoyQupRaQlgam7zWsmzJdXOq5OL9qzdvX//4QwOIbQHOrqDLJkSxkS95/Yd/8YvWtF76JdpN56Gj2rCiiQ/ldQvwaRxXbmNpeq3LGivmdFqXFS+RKNdrWsxEUCxYDepQWFxN0VvkFSGnqLnaclyvacXRGeK2n7E5L1jY8YKuQ8hEXVZqdk7pumzAiu5Iv0i5pwJ48jIAklgDKKhAHueCzS4MwTu1m6qsS6CjEJQlyzesEuHQMPgkeQoez7/INSHf5eUlzcVpAvrCTUWvfqBrJlVcYIn3sIOoP3e8qrc015VsPgb5Rth1XdGxWeTbVI3yrRqYPP/764d3b6ZxK/dpV/wJhvuJ0Qa6pthS1Q50WKaHR7mehZau7JC8ZfmcvGFzVrFiyk6ToLlmffC7hHWO/Wp8l2qCbHahawfuvFO9Byir3uhHYBCAuei6o16/1MqM2Ywcm8G2e8Pm0PRQs1eOsvCC5jl43ffk/dsXYBlqXYwXyjS6zMvpipRzBZWrPIBV5GoUFd/R2ldepJ6W1RUtxJxVb9h8UDFtXBqY0R08t4WvipksevKvR3/+o1Fg1UDfsRqVRNyK6I7yXNttgSLjzN5R6QCfA2sIgdBjoibzqlwD5bJC8LIwZo2FkRYz+9dTDaZrehi/kvIfmvWITJY8IceBiWRQYAwKFCCD5KfrV9/+dP2Xf/vp+s9HP12/evXT9Z+Ofrr+0x8TNQvHfTwY/jtMCjclX3turAFOCIiTF9pOUoB4sLumg6tRN8UcK3ZZUGrW7B0MnkuD+3vd5q3y6ro0tWZi0dbC80R+QlcReaZ7hsV9/RLsc1nB51Izin9c8Jw8e4WaEzdEbIjEqqS1hnsAgPmmtR0YF9WnLOV3kyp0WjGxzWvtAR4EWErJTaK9Mc5iP3/lLPy/wpbjjphC06Nj/R2Al7off5vIiltroitoYuZ54g2VZd5QiipzwYKv/Ol5xNtGNkxM6YZdwKnCxRpNOePtARCk/JbAPP+DmYZy24BzgJMxOUrJ0fXxPCXHxiGg/HZge0PfA26nDfp/MOxk6jspItUWjKMky1SnT46u/3Q0bE5UEdnfQXJSrcDVJdmJKQhVCqUVvSKX2/ncenokxUOZOdeJ0Cp59hf8CqgbEFCxHd8FUs0SrBxhAP94lCjLI4TakDEe2f1bkmX60yyTFJdleA6EY6Tk8eSnQq7c4zTE4xA/cUhy6MkZl+j+6AzU4bFwPfmyYs5ZPiOb7WXOp1JB17iMf/h2Wm7ABU1O2nvDbpL/Iw/pRPIpQYEkErfNvKJr9trx3tkqdLEmNVtvREI+kWRHK1ot4HPpRvkOvINSFpqFM5oHrvGHgq7ZB0JrOQz5oEb7IIeRhBOFQFbB50RDDSCYubitAM6zOKDNXTQCqmxW7liF9iN4dBVMJ+qjFCE5scMPTzxo+3yrZpFKcE8UuJ8MsE6XEX4Qarl17yl0mkJXQyNRZumOwrZonY6g61hnI7gasUEmtcCxxC/sn0hhVNSqQYTOtIhRPehFG4/N+kE/qlY658eSgiJims+askdzOJ8FvI2nDtIVqmSsUmIRBcrdqsHRv/R2Ik8J4B/tN/eA6ODMv74/wF0urybSjZxE6hHHmpcbtSu2b3GRPy/2p5EPpOO665O+zElh8BH2NwJywcJpud7k7BqqhHJsuqwG4OJYnzSNurUSNtRC7sB4/i6xYnsw1KJMsNoBB6zYPsWRHkL5esEOUD8SQUD6K7YfDKEPQIZD9AiTrJGIiBK+gjQrcJK9mUD55NneOW4HTDiVhXIgPE2yTDXMsoQkWcZnWZacJioKyHQyJok8VHMg1Z3cPJUenSTLHC1SHfLiwNDlLfYJGlXQr168WNdPzcp6nUOp23fiaCWdYkAvpWJ5WJWxd6AEBAMHSqqBjmJxm2CZ20gBa0SMLzhSuXod0sMcEbdKDNkiJjF4dDdWlfII3FcOejG79yHS7aZicEBBqDoXd1k5GMZWTJdsuiqLfH+mHeweF6Op9ndwDk3LXGHhLLJJyv5PZP/Dk9hnh75KLSwnaCs9vBtwAMV7OYvvynqVVZep6crhSyEtaRu7MJE/zxU/Yr1lE0cAQE2m90qF4BtjiCt2Gg9mysk7NLyOIWepbmmgVPQwBgrWlWXFF3hanehu9Ie3jlTic4slL3ywW2qpqQf8qihfDSN0BJ9CoZLYMwumPN2w6JNCQCg/QxOvTqWPtL4o60BYG7puO6XBt1K29dYmvtXiM9ICyLBl/9cUeiclILaR4xh+RY/NPMIgWqjDvw/arg1GDmzYCtOhtrotpnJnxpl9MY3Ugqn1UhjO32qgyO40d1BIv2X1dHknKoIP/lNICAZCdWFTlRtW1fsvQ0wKAZ+BmhAzh0hJDfer0RIC+QUI6Z1S43oTEn4QIySpI8YpCf8/ZsFItwKuVPIp4frHtNwWdWwQsSyv/gYH3Z6+4TXBkxprePh1O5r/4Npg/ekapzDK+YpFTCE5dxXY1nBGdE5PqVhqXkaRUpE+tgVO68zOS5WqCZ152tn9WMpo9PhD+iZSA5k6AkvNkEixjk0Nbmo11Yewo6SvA+yoqTZgR8kLyI9yRdrcEFSfRphPDWGNx5bInM8lVY3Hiry+HKe/c0Mb9Um6y+pqdax5Evo1iJ2AnYuqUdNQa6nKNFOMzc8uKRKXI9/ryxx3kSXmoxirSy5rESjmy5hQQdi6XS0PEARmaJcPzV2WeHUcoh4srOI4enJw7izCwPyRmtFTj3fVMYJ3DSdj1xtazP7K9mJiPjv3tPwjTdr35XC76ge43KWpgF0lcUhWt7j/clxpYda6vxzRZ02Lcoc97dqP7e921jvIeYcpquygRLEsqzpuritvAAQR8JqtY3Vm1MYNiRmD8JZLZgYd2LlKeFIc2r+5Zo+I1AGsGVuamRZ1cg1ebEVdrt+FjipiPgSJJ+8FDZJHMwhdWD8CP/s3Cgb945fxMRJfIhLctxIy1N4rQ7c+Y9D8iu7Fe5rz2UTeNXJmSJL/GEz+Izt/MnyUnSXDc+hTDgSeQB47UtcQz9dARf5YUPe6ZmuHBbsm+vQRhI5YbA3DkVw/oTPu0Ik71o1a/HUqsGBWFo9rMq3k1UUZmyWYgOgCJR0vwa2CcMH5fJbZz7tPjy1UTXIxQLqHvS4mVGfM7urKDenMShnoMuShrCUjBDN0keteDXKhK3iuIUzMvURokAybUdTO8XJ04V4XkjziC+jLLMWJup/U4UWr35sdTOD6yJAzvTof0LP5IZMtn+eiVJ0KdacVcEUFEWxaFjNVl3U49R2RArdAyKf7yhUYXl4ai+xqWrQox+wdxYgK1XZZwB4YwO7U7v9W5++O/PbZtK72F3L9L6De6TeQXjFJlWqQuiRnOGNJUsCJcM/he7vxmZu9Fm6UK979UgVgV2ixYbV1jZyyrr3YMmS80YjwmqyK8kqQZXkFMQFrugKdCdugWlDjdRqX/YPFgjMjCc+JVGjlxnSiCGgYyg03vs0HqtEyd9faNPMliW7UIe7uIPC2glWjTVXuOFz3jou/AwLQwBlZ86j8c6tIUxi61a4YajRPnroLjOFFp4n3tZWqRq466OsjV9slq502yFU59QTo0lQkQ3/0ll6Tm6dZlqlDqAbg/oej0bsfX/54Qio2LRcFRLu+KIsp29RIMuIsjNUiYsOmfM5hofZn/o4Una2KsdP8VlbATs1FG41IveRCWXlLKoiJugT9oV4yvM9UV3zHIdyFLemOy+ivvjiILb4elgu86rXe1Ooc93cdPd9200TANgttR92QCaLIyHA40Tsf+2USTSnJskyqvk5Pl9ualGteA2oEm25rvmNgFeFVNLxMwQS5IT07VHq/Cvg/bgSVnnWsYmz9PJE2OQ/wpwYrWKXvE9yQ5IYkPkyR+2FqRPe6pQFpBVwnZ9CECNuYASffOIM/Icfnju4xmTwSKTk/T8kgttOmePo1HMa6l8iT/zoRn+0E537mXBb1piXPsIcNkaJU7RWo2BM6+sfz0f+7OFc/jkZ/vjj//T8lwxZM3AUXY42O1Z0xEp9w/8Enj8T5uGs1Vmrsu0Om4/gahZ0F3YAnvijw5IRKfzCwXw3/k2WRI/ODu4xq69p1bvyaZ2WeDZViQ0cEJMVbvRt5G6g5J0m8+Mzm3sDn2HV2tYQUEWOSvEjaLZDk6QsS9mxm4Xfz/ZZ2dGTNDbhzYBTsR+Lk0QzMDuxLnbzKXTzMkTJwmgxTrk1UeXdlNuyEbU150Qs4aEimy22xUubQHeEa9l54UNfA4ki0PmscUGDdOG6T34ARYMElelpnvzv7XcTqTJ7qBpqa2vCj5a/DFjH3ys9JSuxsNUxKgU+V6zK1Et+VE+q83MFWi5W7k2ZhxMJFfXxOQYmWevmOsyvXzsUj/pmKO21EkirL85OE74CJG7iL3a+isS764nHUnpW39AfO2npuWd+ENRTSZg8730Rc1mNyFLs880ktig0Wm3n5obrbS7VrFmaU2rke3hZPXRTEyBGUsgTkcVIqI3rM9ZaFuiyTzHkl6gSSFIARKhgjV0s+XZIVL2ZwvUdevK2XEJtXMfO9KNfI5g6MwDzmvAziHVPZCoptMKLI/D5onpdXZM2vpdVH8rJcbTcpKq0AINyconVZkQXfMbh/VAtsVy9LwTLvgn2608l41LIqFBQ8t8IEdb9jf0sJ1oKMyTeShJ+gfmui9cV2jSBIjVnUtKohFvsI85Ft6AyxiMdCTd+VTyBmiJgUgfRNA6SE9Dj9wzC2PR2gAe8QQyJB9udxSUNotXhv7u0FUZv4upbmW/NeHOqy3lrcjbjB4NX/86YWxfhRx4LLu8XeztPOwhY1MIZ4C4TwfF7jZeEYY2tchI3H5CjY1Zv9uZlhPNUvMolG0QPp19MFHQsL7BAldkOAXXursQBBgWP4OONYokGFJegDUAbljameAldDjXVPTo7Phy2bsZJARYmkmxJaVXSPkQmpNJlgRoJc8XppLu7A1er9JfrotG9DVpwBEnMG6k9d7T2PVQMFx1EHNzoLG+yhPYUKFU7Hd+KSYXB70HomEVV2YPizHWF6E/Xbf27zYJtYUY2aabHdCHIaMMqB+esoucj0fRXpJh6cbGOajQrhHWVKWdpHEptCHYZ5mGmdgOkO5nEOPyHpWUvsQZvKB6qezA/RjMNZMyHgknzkJL1u1cews4H61EsP15Z8y3NGy+/SaOoq7Drx6yKZweSNRi/1HKgOKrDjRiY3cPL1+TkvuC679bKpyUAJM4FU4uRUDwD+++JvulbnxHHuVzTqgxI/EiTYRU/cTF82+sJFnToHGGAQNsvn6hyABAcBOiz8k9G4va7cI4V4C4Nv7+Yw/vFCVT2lxT5V/zuVl3BbOttxsUUblARwD9U/n1T2QidbWPuwf03fp69k2jAHA7iJnbxSsefelz+w61p9peHtHkp/IAepT+Cj1clfhyfQSXuKl46cSkE7iyGVVcFGsD0DOfhh9QGdO2YfgryIOd3DERIVIx52gakYwj52d+hD5W84i0UIVozOfmxeV9CV87PgPhN5RvQBW0lkZAyZLnk+q1gh7QtRM4qmBnqxlFbsXKjUwbDBjCAUHrOwYeIxYZwycB+aUZhVJI7WHQ4u3vphtHJAGyVInpFXGOxVmhlgEoRLSNcCueAC9vjgJcQK00KKNzKlgG8pN3aPyLVNwX6OFc8xgZA6NX6s9pHH8Bv3isdeF6jsyaaRrjCaMqwOszUYYAeR/U2wn1MJUIpjpdilGyRlsnnOMZun6SNJ+3fnaAGYRbhiYgOHGjeAIsiv9nNKLssZ3Fi68W52jEny6nrDKzaL4Nxe7UBq6myL6Uzci1amBi6HCfYzVAIc7boKXFTXtZuKCVbUeKP+f8l8CTdgeo8TxYQqCwsht7e3sQvQvwE6auYQc2jLUMXFBXq8701lzVTemYp5M56dN3h7BiPUmn2fO6Sq2rohezJ7hJdQTY4WdVrJcywzsDBJxWKxfOo6tiXtvreHlXkuVRwnRtetXVLxDm5GkzGRc/C0cGmRWLtABfiaS9S+n4SMycgYMFdLDvHa1ZZ5Rp+1i1OT3lpn0R74l51T7gcUAOaNm5dcVoyu/JMJwMLkG8SnOkhpeASNa3XwezkH8mg2TFIy4sPUN+7lfDgZtdhkDSfAzUSn1L1BHjnR3tmKLdTv21vfPSCWdFZemcX/ldCm1hrpAIQkuJdwpOP0WNp7g8TrUTXF/hz6QaC9nvmcDAzNqHwBaJ3jN3hqP0BjXgWMI6y6shkq0ghF8mfghnfGofUPvJRZZ73tQhKDi4DRvww9fMYO2JwI0yIYPjj3UwnwpXevEuHRrnJLU1EbwpA/Jl58og4ntO0iwSpatEgmEBPbOkPqDA7Sd7TKFD70zyxLniVZ5nxYsUVwionSKvOsTKSKRqn05AXoCP5EOD9G2bbNka//c9EE7KTTQX5M1dMO/DZ6gKmZvNvVFGZVwBpD+CHyVfb6AWYaPU5vokSXPAV2KCtacYYncZqrw4rGMnU5NkzWikAimGQYigmHQbf9tQz53+2wBZttzhsfmm3iSyh05HChBHIjrkmTMq0WfHaNLhFw/KBG0eChcGW8D+1v8HwG5Oetm2nZun5qC/TXzhZ+5nUzWUu+zMq1necGqojJx3JvZUTdq2sljXkyRPdcRAtp3R1b9kb1WIa8t8eHAVN37Ig91AhHHnnR4IE06cZm4+Su72Us83SGvO7t38zyjlZUG5znoqxLfZWCzeyERyM8gms+iwLGsLKFveK6xONBsI8xIa5jM19c2GZukGTrQZEEsM9JUXDHTF3w86TFaCRjSeFClgStLKCBYJCpUJ9kUxQM+8cVI+tS1Pnenu8LIiNM8R4GmiryeBEMEVrsr+jeTSPevNWGhCljehuHCS3KS5vqYgcw6kUoGB29I2mu3iAhWdboI8tIMkxapHdA+J7kM3LPDBAIOc16gQtzsq7xqkZivvM/027cluq+Jxnr2peMXY7v+8nO24iCoF/ZKUFv/kbSskMhynAGalVWc9LUIzCMCa3mslI/Igd/RFf5u50k0rH6d+RWRvblq3KbzxS0srsnZGA+9fdk2/apnGATHuzHtOsRFNyYQnB8yMfSaMeuXevnC3NPjEkmyD4miIYPsfS8J+vE9gynr1SSyoSfB3d9W63M1kM57VscHrhX5LojDjvoQww3z1WaELRdQ9If46kwqVOCISUrE5YfdKNwk7qXgtuvKIUGIm6fzoBt/vrmRFtN7+aMVukuhSS84RRwhnUq5zdsmErI6a3XC2I0dBOLeTWS2J2mulSQxj6AOxYqnglO56cU4nDqx6KZU9WLiR+poBz/ILDZvRb8sajaYRSg6NFdAxeROKto07uqwIE4t/+hIngoblcu4yq6gH06UCeDeB9j1R53puKRY98W7MrY9b6Ekb3umpS3il4lQRLWPzJ1thSdmBxSOwjCKap0ZGGYEMSD9LgB5PQfcej6IzdS0zUmG1swGfExHI+7Z/++kUSuAZ4i9JZ6nSYxDL+PwRSM7mWkai651PN107ZWtWyG07XZskNkYKNYMFfPJYnrXyCxdaQVwhnK7YBaDBjdhOFgK7OndW0t+0JtEtvEseR0FJEtbTVl5Xhxe3WW5fQf+8aDQ4cvPfSepgpzaZtlgy5b7jPoJZNs5BJPk4+aqTvuSVC7w+R0mK/UBtAFz0NXuG1t/R3o7gJBnqL/GpDTuq745bZmYnyTaECS2wNTaCovsv/gGpZW/Va9r7od1IpCfcgoqXGd6ItpQx16kKOphRpRpy7USwu6swuw1/VN60RRwUmOBwXjq8NcTSJmfRnnyC8qEivuHbn/4c4hK+/zeEniRxW9iLLNXXJvh8lBl8n9nSb93CYPpziPzqpyu1iSJdtW8B7iFIkLLyQCtwUcKbwvFWFiEK6N1C1mZHIM6XQoHCU26Ml3y2AAg71YrUxs5ckJYoaVzd4dNIyAyZctqPvwgrqTwBW424L/DGFJkdNBkeJbFuPoaxLKXXo/UjTdzFppEW9FDzClMUCBeYHbJFawNp9NdsmrJRBkoIgpJXZLkhd8za5Ebkl/UtMhfCCG54WK1pPxgCuI2huemHi/hlhyGg9PZAep/NRr777LrUNHVZTpxHFgn/uJEmzz+NmX9jvMjXPBz2kgg1MjtNGdz0CeNuOLaW4qijxsCGfNrIiqItH8VuF1Pe3jb7FwvMe0D92jjajE7R20GN9req3Ph+FORwRvPb23d/bhdnhyY/5cWJKof7ZVfzfUIccYNcfAiclGGkL7VeSM3qj/TanZggyD3tNWDJgBddseUwOVZMU3hC7hrAnvhuHlkjOSc0heAI/OnumXU2YlE7gq020FT4Lme0LFSl4gg9ZM3hwRvehF9j8mgwhFyOeQBojuJzbYrJdTMeJWNHw9b/Mj9vIk3t2XKCMWtXyCUEWQW51uxf/Ofr8oBXb6/u7UTUy0IB0NdI6GX4DN5DPUMkxqRU4Nt5iSsaRN/TdwtP79iBxDJ0fD4QPB7dDMu7Xz3hp679OYdj9p43CmdToP8b/29sBGTnWi3ti7e0o/p680ip9+dry8d487UxzKjoPJRg92I4oEJx7e6ro97k2NoYdo7BCLbRKxQxrOm9LwgCTsKQXvLgFvv4DbRT8CjyErcfSYAKk1FwLsOnNr27gSdAcyW7W1yZ2Uu//lXCb9gqacXKx9Qn2aGVml0DHZUIP0rF68T2mTtLbG+/RJu6nGsAkyTPLNw7k3LQoauUUh4ebbmk5XOi3tZCKxYNOpmibnjpFkpybHu5iX1QUYgYH0OUC0imQnkwR7Sc7PoxEsCYj+eJSKup/QI0bl6GCoibFz9eWjOxi6t/eds8Fc6+TRTfcbmb0vtMybTaKRQcZJuRzS5nkjGgd7QBZSjxz+TUktrMBXu/DOnus6tHlFfbGKt+LZPl2xPUxU2ARk0FmYf0y+6oQNM3AWPRfvWg68jPFerlJlASvDQakPg6G+maLS8QJcw5hhX67uH42gN4HJeUydN16lWLrgnBX4f400wTHbwSpqvlxB3bBl7H4+UJ202OAdtqa/YVp+eXVYJk30VNIYhJGb2zkrnhxHmn52p1fEroloQSFxmbd1Z4fz7sUvF+ThuWXTwr2/N9R9m6nLJSoXcNimj/FZzKV558OsdhWxw6vqaoUQKtymBR7wpD5IH3wgYd0ezC33Q1lDkh4pHOF5M6kRQMRsnruhteWcUMzSU+DEM/K/t6KWPh1I5IPanCCDEm8aimFXAJZG6wa5TvOwfp4v6v+U70zAZ780s8r8Rmxdtr+ftdtirHYN0bxs04KMYgvJxoxggb/jLWvVFD0c8DtmGqtGh8JTvAcY4ZMJgnseNTKL9pWQ9540NRWRRY1iVQdEGGAP2ew+9Sq45X4Nfehk5+EFxBYy/gITiiWxbIkx6B9g0BoX4al9MQeJpqbOMIiWATzpdqhFS9DOgc9wa+jsV+fxNKK1n1/QTPxQrJMbjcf2WZYMhknPaegFWLN6Wc76ftUZqnSXkKs4jfdyRDW8UF3XCaN2urN/dW7xnYZiu6XUYScd3ME/r41028cxoZ/k7eOVcB7mNWaW3b/wiV631vGGOU/12iR7bD8ewyasE3TIvzrdFj0i7JOnK7Y/TRxFoNdHCMFpkvqJNjsfReyDMu9pRO/2m/eynee/MU/ctaLh17kSp7dRwIJK6er6SDlq1b/GHTr1smCv9fDeF/zMC9Ly5IB5ObH1LL4XhSLo5A32fZqoQYb3E2q6t6an9otExnX4xdU0IgK04dm9v/iMuXRvYynf+Fxdyg9O7hGnPi4NJjGZ9mmQHgYnABW23MzLLz4wq89ozrlvCyMhz0r5qsfJiSHpkxOZuEQa5hD/xOHxkRxvQzoPwwkZW7WA03X9bQp5osQS7oLBBcwl3THCwNK7ZAxeoOF5Psp5sWIzlaWwLcmKjZ9v4F2l6fnuRWeOHp2hp6XZHdPzdCXn6XuIcCvxDBiXKD6UmQhm7j5PJpUuJ1eflz7qLasfnkGq5ZUzSc/NcoBZnk7HsvecNVNDCQtkLG2P3KmUlwR678gL5XSFV+97dHaXrFDAqmMtgCQxJUUJonsJtJM8PMvSZ8V1V6akeyH9SyRD+qxJjYKr4L+0ZSNqKErGaY57mRt1pMPC6ukScSLDTzFjhDoPsy/QXTyi55OLR1fnvx8+GzyaPRn+U+LqUaaTMB2/HFrtHK2pe/TI/oXHXOtebb0TZ1JENeOz6/bT3YNs0DxxHbedt0oWAaDWXKIL8t1WbMEFyCfwuyp48Pz8eiMVqA+6QuWa+YA7CpTmusQzTm89O90TjQfD2VuDsHouCw+jKjHosTOpklT4IJNQHuZSih3ndOYiytuTETWGNLTS4iXyCIV39RUmxonb1HJQ22mM7BdlOVOKPsSSSB1Jh5rjK1VFA+dPjvHkBcT9jlZJMznX3HbbmOZMtCykBdSAMrwLXzSNGLikpHvqQaF35cPIdqSHewhD3G8bxLcewJkM5K/Un8QFIwJE/KFGI5t75ovb0buwqNmYDmSLC5nOzwk3CrrU7VtY68uR+gFi7yB3Hqfyz0rnLaQXOy36fNTePmiLD7Azm5/+cS+u4Op9UetyMSwRwPgbTKq03Th81+09Uk1b/Ue6qyj7/Ir7hD+r/3HbgrNGUb/bA7kCsXsfrnhnQmN7xtPJFyT1mxsYFiLv04KfCk+mwTOheHVL4UkLXpMrTBi1oRVeTbQZnixBou5VsKvCXonzyFFfUzYU6DgzFfE136bC3mkuyu/LcvW6IH5G+U/B+1hRC+pd7IC0bwYx+M8ZPp5D7G4RjXeNamwDwY9rjKRb6iclYEls923yQcmuNgnxufiwSy+yLrcpuM/InPIcj8LNi6UXFwW7ktp1WTmPkdmk5QLTrpMSjkrLilxVZbFAoy0lrJ420UeF4ItCR9VsdPcDB2GK4pvy0EGZ7OYz4AwA6YMvB2P4XCngC92MiDTBc7zqkwIOpiWDR+0gskStbEloIZ3WzvMc6qEpmQreaY0p3J3Edvg4joxchjcrnLdWRiMkY0g0Oq+YcDtB0CCXFiMzjo7R7WYGb2zw2l+TC+XSD+JamsthVuFeO5IziN2UGrh2N6MHyX5Dn574j41oj3gesOVMaYH3olgt0/4pJzY0bd17fDfeC5rnbAY33d+/fYFJX/H19orBg7jqlUT5IrX/LoB01PGZ56cLvXekks5ZKNqib7DZmivpZV4yeInbE7x5BicyknrhacYanp8/4A/Urlf1jOMslSjUY6iQHjfBjGyKLj8+0y4+PzdNY2XGZl3GFVz4xy46sK0Svqp5tjgNkatKQNm6rJl68w1WA1zA+MBSsZAnFIVh6nxLFVfCldrAZ4xQwXuXGgsyjsrOKwZq1FfvzLfgueumV9nT8dOmL1ZSz9hfFRiDzwkrdhk8GmnggZM4+FvU8NLONGdwLrWh0xVdsCwvKTyBfsnqK4aXN+G5H5BhV+A+lq+oT8sNvGUBtKI8cdWe1GXprvhCqfW6fqDe5VlkFxcvn7uBrDv7WJlCjJqyqfj/UEsHCOZScJziJwAA8LsAAFBLAQItAxQACAAIAGENaFrEcU+QnQAAABIBAAAeAAAAAAAAAAAAIAC2gQAAAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvY29udHJvbC5sdWFQSwECLQMUAAgACAAyHKFa/tZJkIAAAACYAAAAGwAAAAAAAAAAACAAtoHpAAAAZGVidWdhZGFwdGVyXzIuMC45L2RhdGEubHVhUEsBAi0DFAAIAAgA4ZS/WGBTL/1oBgAAVBgAACEAAAAAAAAAAAAgALaBsgEAAGRlYnVnYWRhcHRlcl8yLjAuOS9kYXRhc3RyaW5nLmx1YVBLAQItAxQACAAIANkWmVo/EmaivAAAACQBAAAkAAAAAAAAAAAAIAC2gWkIAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvZGVidWctY29udHJvbC5sdWFQSwECLQMUAAgACADXrU9ZFL+QQskEAAAPDgAAIwAAAAAAAAAAACAAtoF3CQAAZGVidWdhZGFwdGVyXzIuMC45L2RlYnVnYWRhcHRlci5sdWFQSwECLQMUAAgACADzotNaGolQxrMFAADqFwAAHwAAAAAAAAAAACAAtoGRDgAAZGVidWdhZGFwdGVyXzIuMC45L2Rpc3BhdGNoLmx1YVBLAQItAxQACAAIAOGUv1gFrsrMBwEAANwBAAAfAAAAAAAAAAAAIAC2gZEUAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvZW51bXV0aWwubHVhUEsBAi0DFAAIAAgAa6TTWsONQf/YDgAAKz8AAB8AAAAAAAAAAAAgALaB5RUAAGRlYnVnYWRhcHRlcl8yLjAuOS9ldmFsdWF0ZS5sdWFQSwECLQMUAAgACAAYkjFbgSh4ZiMBAADaAQAAHAAAAAAAAAAAACAAtoEKJQAAZGVidWdhZGFwdGVyXzIuMC45L2luZm8uanNvblBLAQItAxQACAAIAFZ6VFiLNzFQtQAAAH4BAAApAAAAAAAAAAAAIAC2gXcmAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvaW5zdHJ1bWVudC1jb250cm9sLmx1YVBLAQItAxQACAAIAFp6VFgKN0tDjwAAAOUAAAAmAAAAAAAAAAAAIAC2gYMnAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvaW5zdHJ1bWVudC1kYXRhLmx1YVBLAQItAxQACAAIAGV6VFgaFsr1UwEAAJYCAAAqAAAAAAAAAAAAIAC2gWYoAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvaW5zdHJ1bWVudC1zZXR0aW5ncy5sdWFQSwECLQMUAAgACADhlL9YvaJPwcoCAACBCgAAHwAAAAAAAAAAACAAtoERKgAAZGVidWdhZGFwdGVyXzIuMC45L2l0ZXJ1dGlsLmx1YVBLAQItAxQACAAIAOGUv1iZXh8aYAQAAJcMAAAbAAAAAAAAAAAAIAC2gSgtAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvanNvbi5sdWFQSwECLQMUAAgACACTjJFPW2tQUoUCAABABAAAGgAAAAAAAAAAACAAtoHRMQAAZGVidWdhZGFwdGVyXzIuMC45L0xJQ0VOU0VQSwECLQMUAAgACADVEdxacCA+Ik4AAACLAAAAIwAAAAAAAAAAACAAtoGeNAAAZGVidWdhZGFwdGVyXzIuMC45L2xvY2FsZS9lbi9lbi5jZmdQSwECLQMUAAgACADhlL9YaJ8TzLACAACTBgAAGgAAAAAAAAAAACAAtoE9NQAAZGVidWdhZGFwdGVyXzIuMC45L2xvZy5sdWFQSwECLQMUAAgACADVM5takvzvb2kPAACLOwAAJAAAAAAAAAAAACAAtoE1OAAAZGVidWdhZGFwdGVyXzIuMC45L2x1YW9iamVjdGluZm8ubHVhUEsBAi0DFAAIAAgA4ZS/WAl1FIRCAwAAkwgAACkAAAAAAAAAAAAgALaB8EcAAGRlYnVnYWRhcHRlcl8yLjAuOS9ub3JtYWxpemVMdWFTb3VyY2UubHVhUEsBAi0DFAAIAAgAabdIWj87Qb0hBAAAYgwAABwAAAAAAAAAAAAgALaBiUsAAGRlYnVnYWRhcHRlcl8yLjAuOS9wcmludC5sdWFQSwECLQMUAAgACAD4LVJYkgNqtjEBAACMAgAAJgAAAAAAAAAAACAAtoH0TwAAZGVidWdhZGFwdGVyXzIuMC45L3Byb2ZpbGUtY29udHJvbC5sdWFQSwECLQMUAAgACACqolJZCfiPF0gKAAD3JAAAHgAAAAAAAAAAACAAtoF5UQAAZGVidWdhZGFwdGVyXzIuMC45L3Byb2ZpbGUubHVhUEsBAi0DFAAIAAgAILNMVmBZyLOSBAAATgwAAB8AAAAAAAAAAAAgALaBDVwAAGRlYnVnYWRhcHRlcl8yLjAuOS9wcm9maWxlMi5sdWFQSwECLQMUAAgACAAuI05Y6CdQ1nABAADsAgAAHwAAAAAAAAAAACAAtoHsYAAAZGVidWdhZGFwdGVyXzIuMC45L3NldHRpbmdzLmx1YVBLAQItAxQACAAIADmXM1ooYKgnMQcAAN4XAAAdAAAAAAAAAAAAIAC2galiAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvc3RhY2tzLmx1YVBLAQItAxQACAAIAGqro1qRsAFP9RsAADxvAAAfAAAAAAAAAAAAIAC2gSVqAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvc3RlcHBpbmcubHVhUEsBAi0DFAAIAAgAeBWRWpSXqBYvAQAANwMAABsAAAAAAAAAAAAgALaBZ4YAAGRlYnVnYWRhcHRlcl8yLjAuOS90ZXN0Lmx1YVBLAQItAxQACAAIAI2zUlmdf4/QhQIAAE8HAAAeAAAAAAAAAAAAIAC2gd+HAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvdGhyZWFkcy5sdWFQSwECLQMUAAgACAChFZNPIzuCDxI+AAAdPgAAIAAAAAAAAAAAACAAtoGwigAAZGVidWdhZGFwdGVyXzIuMC45L3RodW1ibmFpbC5wbmdQSwECLQMUAAgACAB0pVxYg/wZyO8BAAC3CQAANAAAAAAAAAAAACAAtoEQyQAAZGVidWdhZGFwdGVyXzIuMC45L3R5cGVkZWZzL2RlYnVnYWRhcHRlcnByb3RvY29sLmx1YVBLAQItAxQACAAIAACoT1nmUnCc4icAAPC7AAAgAAAAAAAAAAAAIAC2gWHLAABkZWJ1Z2FkYXB0ZXJfMi4wLjkvdmFyaWFibGVzLmx1YVBLBQYAAAAAHwAfAIoJAACR8wAAAAA=");var $l=jn("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k7BZ2CJsFbYJ24U9GGeEG4WzwjnhvHBBuEm4KNwsXBIuC1eEq8I14bpwB+ON8KPwVngnvBc+CD8JH4WfhU/CZ+GL8FX4JnwX/mCCEWEUwYrgRPAiBBEmEaIIswhJhCxCEaGK0EToIhzMZMQ0ismKyYnJiymIaRJTFNMspiSmLKYipiqmJqYupoOJRsRRRCuiE9GLGEScRIwiziImEbOIRcQqYhOxi3gwsxHzKGYrZidmL+Yg5knMUcyzmJOYs5iLmKuYm5i7mA8mGZFGkaxITiQvUhBpEimKNIuURMoiFZGqSE2kLtLBZCPyKLIV2YnsRQ4iTyJHkWeRk8hZ5CJyFbmJ3EU+mGJEGUWxojhRvChBlEmUKMosShIli1JEqaI0UbooB1ONqKOoVlQnqhc1iDqJGkWdRU2iZlGLqFXUJmoX9WCaEW0UzYrmRPOiBdEm0aJos2hJtCxaEa2K1kTroh1MN6KPolvRnehe9CD6JHoUfRY9iZ5FL6JX0ZvoXfSDWYxYRrFYsTixeLEEsUxiiWKZxZLEksVSxFLF0sTSxbLcffoXUEsHCPayQzc8AwAACQYAAFBLAQItAxQACAAIAASRa1klR+kxuwIAAHoIAAAkAAAAAAAAAAAAIAC2gQAAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjkvY29udHJvbC5sdWFQSwECLQMUAAgACACwhLpajnqNvQUBAAAQAgAAIQAAAAAAAAAAACAAtoENAwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC45L2RhdGEubHVhUEsBAi0DFAAIAAgAGJIxW3M9iwKlAAAA7AAAACIAAAAAAAAAAAAgALaBYQQAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuOS9pbmZvLmpzb25QSwECLQMUAAgACAAlra1WUqj09c4AAAAwAQAAMgAAAAAAAAAAACAAtoFWBQAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC45L3NjZW5hcmlvcy9ydW4vY29udHJvbC5sdWFQSwECLQMUAAgACABpiTBWlI5GUD4AAAA+AAAAOAAAAAAAAAAAACAAtoGEBgAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC45L3NjZW5hcmlvcy90ZXJtaW5hdGUvY29udHJvbC5sdWFQSwECLQMUAAgACABNgopY9MHnEycBAAByBAAANAAAAAAAAAAAACAAtoEoBwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC45L3NjZW5hcmlvcy90aHJvdy9jb250cm9sLmx1YVBLAQItAxQACAAIAA8TfVf2skM3PAMAAAkGAAAlAAAAAAAAAAAAIAC2gbEIAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjkvc2V0dGluZ3MubHVhUEsFBgAAAAAHAAcAbAIAAEAMAAAAAA==");var ab={debugadapter:{version:lr,zip:zl},"debugadapter-tests":{version:lr,zip:$l}};async function cb(r,e){let t=await fetch(`https://mods.factorio.com/api/mods/${r}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var fn=class{constructor(e,t){this.modsPath=e;this.playerdataPath=t;this.Loaded=this.reload()}modList={mods:[]};Loaded;async reload(){let e=kt.resolve(this.modsPath,"./mod-list.json");try{this.modList=JSON.parse(await it.readFile(e,"utf8"))}catch{this.modList={mods:[]}}}async write(){let e=kt.resolve(this.modsPath,"./mod-list.json");return it.writeFile(e,JSON.stringify(this.modList,null,2),"utf8")}async getDownloadCredentials(e){let t=this.playerdataPath??kt.resolve(this.modsPath,"../player-data.json"),n=t?await it.readFile(t,"utf8").then(c=>JSON.parse(c)).catch(()=>{}):void 0;if(n?.["service-token"])return{username:n["service-username"],token:n["service-token"]};let i=await e(n?.["service-username"]),o=await fetch("https://auth.factorio.com/api-login",{method:"POST",body:new URLSearchParams({username:i.username,password:i.password,api_version:"4",require_game_ownership:"true"})});if(!o.ok)throw new Error(o.statusText);let s=await o.json();return n&&(n["service-username"]=s.username,n["service-token"]=s.token,await it.writeFile(t,JSON.stringify(n,void 0,2))),s}async findInstallSource(e,t){if(t.origin!=="portal"){let c=ab[e];if(c)return c;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await cb(e),i=n.releases[n.releases.length-1],o=await this.getDownloadCredentials(t.credentialPrompt),s=await fetch(`https://mods.factorio.com/${i.download_url}?username=${o.username}&token=${o.token}`);if(!s.ok)throw new Error(s.statusText);return{version:i.version,zip:await s.bytes()}}async installMod(e,t){let n=await this.findInstallSource(e,t),i=n.version,o=this.modList.mods.find(g=>g.name===e),s=o?.enabled?o.version??!0:o?.enabled;async function c(g){let b=kt.resolve(g,"info.json");try{let P=await it.readFile(b,"utf8");if(P){let v=JSON.parse(P);if(v.name===e&&v.version===i)return!0}}catch{}return!1}if(!t.force){if(await c(kt.resolve(this.modsPath,e)))return this.set(e,i),{using:i,from:"folder",previous:s};if(await c(kt.resolve(this.modsPath,`${e}_${i}`)))return this.set(e,i),{using:i,from:"versioned_folder",previous:s};try{return await it.access(kt.resolve(this.modsPath,`${e}_${i}.zip`)),this.set(e,i),{using:i,from:"existing",previous:s}}catch{}}let d=it.writeFile(kt.resolve(this.modsPath,`${e}_${i}.zip`),n.zip),l;if(!t.keepOld){let g=(await it.readdir(this.modsPath,"utf8")).filter(b=>b.startsWith(e)&&b.endsWith(".zip")&&b.substring(e.length,b.length-4).match(/^_[\d\.]+$/)&&b!==`${e}_${i}.zip`);g.length===1&&(await it.unlink(kt.resolve(this.modsPath,g[0])),l=g[0].substring(e.length+1,g[0].length-4))}return this.set(e,i),await d,{using:i,from:"installed",previous:s,replaced:l}}set(e,t){let n=!!t,i=typeof t=="string"?t:void 0,o=this.modList.mods.find(s=>s.name===e);o?(o.enabled=n,o.version=i):this.modList.mods.push({name:e,enabled:n,version:i})}disableAll(){this.modList.mods.forEach(e=>e.enabled=!1)}};function gs(r){if(r.readUInt8()!==0)return"";{let t=r.readPackedUInt_8_32();return r.readString(t)}}function pi(r){let e=r.readUInt8();switch(r.readUInt8(),e){case 0:return{type:e};case 1:return{type:e,value:r.readUInt8()!==0};case 2:return{type:e,value:r.readDoubleLE()};case 3:return{type:e,value:gs(r)};case 4:{let t=r.readUInt32LE(),n=[];for(let i=0;i<t;i++){gs(r);let o=pi(r);n.push(o)}return{type:e,value:n}}case 5:{let t=r.readUInt32LE(),n={};for(let i=0;i<t;i++){let o=gs(r);if(!o)throw new Error("Missing key in PropertyTree Dictionary");let s=pi(r);n[o]=s}return{type:e,value:n}}case 6:return{type:e,value:r.readBigInt64LE()};case 7:return{type:e,value:r.readBigUInt64LE()};default:throw new Error(`Invalid datatype in PropertyTree ${e}`)}}function ps(r){if(!r)return Buffer.from([1]);let e=Buffer.from(r,"utf8"),t=Buffer.alloc(1);return e.length<255?t.writeUInt8(e.length):(t=Buffer.alloc(5),t.writeUInt8(255),t.writeUInt32LE(e.length,1)),Buffer.concat([Buffer.from([0]),t,e])}function Wt(r){return Buffer.from([r,0])}function mi(r){switch(r.type){case 3:return Buffer.concat([Wt(3),ps(r.value)]);case 1:return Buffer.concat([Wt(1),Buffer.from([r.value?1:0])]);case 2:{let e=Buffer.alloc(8);return e.writeDoubleLE(r.value),Buffer.concat([Wt(2),e])}case 6:{let e=Buffer.alloc(8);return e.writeBigInt64LE(r.value),Buffer.concat([Wt(6),e])}case 7:{let e=Buffer.alloc(8);return e.writeBigUInt64LE(r.value),Buffer.concat([Wt(7),e])}case 0:return Wt(0);case 4:{let e=Buffer.alloc(4);return e.writeUInt32LE(r.value.length),Buffer.concat([Wt(4),e,Buffer.concat(r.value.map(t=>Buffer.concat([ps(""),mi(t)])))])}case 5:{let e=[];for(let n in r.value)if(Object.prototype.hasOwnProperty.call(r.value,n)){let i=r.value[n];e.push(Buffer.concat([ps(n),mi(i)]))}let t=Buffer.alloc(4);return t.writeUInt32LE(e.length),Buffer.concat([Wt(5),t,Buffer.concat(e)])}default:throw new Error(`Invalid datatype in PropertyTree ${r.type}`)}}var gr=class r{constructor(e,t,n,i,o){this.main=e;this.major=t;this.minor=n;this.patch=i;this.branch=o}static load(e){let t=e.readUInt16LE(0),n=e.readUInt16LE(2),i=e.readUInt16LE(4),o=e.readUInt16LE(6),s=e.readUInt8(8);return new r(t,n,i,o,s)}save(){let e=Buffer.alloc(9);return e.writeUInt16LE(this.main,0),e.writeUInt16LE(this.major,2),e.writeUInt16LE(this.minor,4),e.writeUInt16LE(this.patch,6),e.writeUInt8(this.branch,8),e}format(){return`${this.main}.${this.major}.${this.minor}-${this.patch}`}isBeyond(e,t,n,i){return this.main<e?!1:this.main>e||t===void 0?!0:this.major<t?!1:this.major>t||n===void 0?!0:this.minor<n?!1:this.minor>n||i===void 0?!0:this.patch<i?!1:(this.patch>i,!0)}};import ms from"assert";var ed=["startup","runtime-global","runtime-per-user"],Ai=class{version;_settings;constructor(e){this.version=gr.load(e.read(9));let t=pi(e);ms(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let i of ed){let o=t.value[i];ms(o.type===5);let s=n[i];for(let c in o.value){let d=o.value[c];ms(d.type===5);let l=d.value.value;switch(l.type){case 3:s[c]={type:"string",value:l.value};break;case 2:s[c]={type:"number",value:l.value};break;case 6:s[c]={type:"int",value:l.value};break;case 1:s[c]={type:"bool",value:l.value};break;case 5:let g=l.value;if("r"in g&&g.r.type===2&&"g"in g&&g.g.type===2&&"b"in g&&g.b.type===2&&"a"in g&&g.a.type===2)s[c]={type:"color",value:{r:g.r.value,g:g.g.value,b:g.b.value,a:g.a.value}};else throw new Error(`Dictionary value in ModSettings Tree does not match any known structure at ${i} ${c}`);break;default:throw new Error(`Unexpected type in ModSettings Tree: ${l.type}`)}}}this._settings=n}get settings(){return this._settings}save(){let e={type:5,value:{}};for(let t of ed){let n=this._settings[t],i={type:5,value:{}};e.value[t]=i;for(let o in n){let s=n[o];switch(s.type){case"string":i.value[o]={type:5,value:{value:{type:3,value:s.value}}};break;case"bool":i.value[o]={type:5,value:{value:{type:1,value:s.value}}};break;case"int":i.value[o]={type:5,value:{value:{type:6,value:s.value}}};break;case"number":i.value[o]={type:5,value:{value:{type:2,value:s.value}}};break;case"color":i.value[o]={type:5,value:{value:{type:5,value:{r:{type:2,value:s.value.r},g:{type:2,value:s.value.g},b:{type:2,value:s.value.b},a:{type:2,value:s.value.a}}}}};break;default:break}}}return Buffer.concat([this.version.save(),mi(e)])}set(e,t,n){n===void 0?delete this._settings[e][t]:this._settings[e][t]=n}get(e,t){return this._settings[e][t]}*list(){for(let e in this._settings)for(let t in this._settings[e]){let n=this._settings[e][t];yield{scope:e,setting:t,value:n.value}}}};var As=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function yi(r,e){let t=r.readBigUInt64LE(e);e+=8;let n;return t>0?(n=r.subarray(e,e+Number(t)-1),e+=Number(t)):n=Buffer.alloc(0,0),[n,e]}var ys=class{constructor(e,t){this.raw=e;this.line=t}get Op(){return this.raw&63}get A(){return this.raw>>6&255}get B(){return this.raw>>23&511}get C(){return this.raw>>14&511}get Ax(){return this.raw>>6&67108863}get Bx(){return this.raw>>14&262143}get sBx(){return this.Bx-131071}},bs=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},vs=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=yi(e,t),this.name=n.toString("utf8"),this.start=e.readUInt32LE(t),t+=4,this.end=e.readUInt32LE(t),t+=4,this.dumpsize=(n.length===0?8:8+n.length+1)+8}},kr=class{constructor(e,t){this.type=e;this.value=t;switch(e){case 0:if(t!==void 0)throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 1:if(typeof t!="boolean")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 3:if(typeof t!="number")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 4:if(!(t instanceof Buffer))throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;default:throw new Error(`Invalid Lua Constant Type: ${e}`)}}get label(){switch(this.type){case 0:return"nil";case 1:case 3:return this.value.toString();case 4:return`"${this.value.toString("utf8")}"`;default:throw new Error(`Invalid Lua Constant Type: ${this.type} ${this.value}`)}}},bi=class r{source;nparam;is_vararg;maxstack;locals=[];upvals=[];instruction_count;_instraw;_instlines;constants=[];inner_functions=[];firstline;lastline;nextbyte;constructor(e,t){if(t===void 0){if(!e.subarray(0,As.length).equals(As))throw new Error("Invalid Header");t=As.length}this.firstline=e.readUInt32LE(t),t+=4,this.lastline=e.readUInt32LE(t),t+=4,this.nparam=e[t++],this.is_vararg=e[t++]!==0,this.maxstack=e[t++],this.instruction_count=e.readUInt32LE(t),t+=4,this._instraw=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let n=e.readUInt32LE(t);t+=4;for(let l=0;l<n;l++){let g=e[t++];switch(g){case 0:this.constants.push(new kr(0));break;case 1:this.constants.push(new kr(1,e[t++]!==0));break;case 3:this.constants.push(new kr(3,e.readDoubleLE(t))),t+=8;break;case 4:let b;[b,t]=yi(e,t),this.constants.push(new kr(4,b));break;default:throw new Error(`Invalid Lua Constant Type: ${g}`)}}let i=e.readUInt32LE(t);t+=4;for(let l=0;l<i;l++){let g=new r(e,t);t=g.nextbyte,this.inner_functions.push(g)}let o=e.readUInt32LE(t);t+=4;for(let l=0;l<o;l++)this.upvals.push(new bs(e,t)),t+=2;{let l;[l,t]=yi(e,t),this.source=l.toString("utf8")}let s=e.readUInt32LE(t);if(t+=4,s!==this.instruction_count)throw new Error("line info count mismatch");this._instlines=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let c=e.readUInt32LE(t);t+=4;for(let l=0;l<c;l++){let g=new vs(e,t);t+=g.dumpsize,this.locals.push(g)}let d=e.readUInt32LE(t);t+=4;for(let l=0;l<d;l++){let g;[g,t]=yi(e,t),this.upvals[l].name=g.toString("utf8")}this.nextbyte=t}_baseAddr;get baseAddr(){return this._baseAddr}rebase(e){let t=e;return this._baseAddr=t,t+=this.instruction_count,this.inner_functions.forEach(n=>{t=n.rebase(t)}),t}_instructions=[];instruction(e){if(e>this.instruction_count-1)return;let t=this._instructions[e];return t===void 0&&(t=new ys(this._instraw.readUint32LE(e*4),this._instlines.readUint32LE(e*4)),this._instructions[e]=t),t}get lines(){let e=[];for(let t=0;t<this.instruction_count;t++)e[t]=this._instlines.readUInt32LE(t*4);return e}walk_functions(e){e(this),this.inner_functions.forEach(t=>t.walk_functions(e))}getFunctionAtStartLine(e){if(this.firstline===e)return this;if(this.firstline<e&&(this.lastline===0||this.lastline>e)&&this.inner_functions)for(let t=0;t<this.inner_functions.length;t++){let n=this.inner_functions[t].getFunctionAtStartLine(e);if(n)return n}}getInstructionsAtBase(e,t){if(!(t===0||!this._baseAddr)&&this._baseAddr<=e&&this._baseAddr+this.instruction_count>e){let n=e-this._baseAddr,i=[];n+t>this.instruction_count&&(t=this.instruction_count-n);for(let o=0;o<t;o++){let s=this.instruction(o+n);i.push({address:"0x"+(this._baseAddr+n+o).toString(16),instruction:this.getInstructionLabel(o+n),line:s.line,instructionBytes:s.raw.toString(16).padStart(8,"0"),symbol:o+n===0?this.source+":"+this.firstline:void 0})}return i}}getInstructionLabel(e){let t=this.instruction(e);if(!t)throw new Error("Invalid PC");let n=this.instruction(e+1);switch(t.Op){case 1:return`LOADK ${this.getRegisterLabel(e,t.A)} := ${this.constants[t.Bx].label}`;case 2:if(!n)throw new Error("Invalid PC");return`LOADKX ${this.getRegisterLabel(e,t.A)} := ${this.constants[n.Ax].label}`;case 3:return`LOADBOOL ${this.getRegisterLabel(e,t.A)} := ${t.B!==0}${t.C!==0?" pc++":""}`;case 4:return`LOADNIL ${this.getRegisterLabel(e,t.A)}...${this.getRegisterLabel(e,t.A+t.B)})`;case 5:return`GETUPVAL ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}`;case 6:return`GETTABUP ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 7:return`GETTABLE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 8:return`SETTABUP ${this.getUpvalLabel(t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 9:return`SETUPVAL ${this.getUpvalLabel(t.B)} := ${this.getRegisterLabel(e,t.A)}`;case 10:return`SETTABLE ${this.getRegisterLabel(e,t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 11:{let c=t.B,d=this.fb2int(c),l=t.C,g=this.fb2int(l),b=c===d?`${d}`:`${c}->${d}`,P=l===g?`${g}`:`${l}->${g}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${b},${P})`}case 12:return`SELF ${this.getRegisterLabel(e,t.A+1)} := ${this.getRegisterLabel(e,t.B)}; ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 13:return`ADD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} + ${this.getRegisterOrConstantLabel(e,t.C)}`;case 14:return`SUB ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} - ${this.getRegisterOrConstantLabel(e,t.C)}`;case 15:return`MUL ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} * ${this.getRegisterOrConstantLabel(e,t.C)}`;case 16:return`DIV ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} / ${this.getRegisterOrConstantLabel(e,t.C)}`;case 17:return`MOD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} % ${this.getRegisterOrConstantLabel(e,t.C)}`;case 18:return`POW ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} ^ ${this.getRegisterOrConstantLabel(e,t.C)}`;case 0:return`MOVE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}`;case 19:return`UNM ${this.getRegisterLabel(e,t.A)} := -${this.getRegisterLabel(e,t.B)}`;case 20:return`NOT ${this.getRegisterLabel(e,t.A)} := not ${this.getRegisterLabel(e,t.B)}`;case 21:return`LEN ${this.getRegisterLabel(e,t.A)} := length of ${this.getRegisterLabel(e,t.B)}`;case 22:return`CONCAT ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}.. ... ..${this.getRegisterLabel(e,t.C)}`;case 23:return`JMP pc+=${t.sBx}${t.A?`; close >= ${t.A-1}`:""}`;case 24:return`EQ if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?"~=":"=="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 25:return`LT if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">=":"<"} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 26:return`LE if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">":"<="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 27:return`TEST if ${t.C?"not ":""}${this.getRegisterLabel(e,t.A)} then pc++`;case 28:return`TESTSET if ${t.C?"":"not "}${this.getRegisterLabel(e,t.A)} then ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)} else pc++`;case 29:return`CALL ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args ${t.C?t.C-1:"var"} returns)`;case 30:return`TAILCALL return ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args)`;case 31:return`RETURN return ${t.B?t.B-1:"var"} results ${t.B>1?`starting at ${this.getRegisterLabel(e,t.A)}`:""}`;case 32:return`FORLOOP ${this.getRegisterLabel(e,t.A)} += ${this.getRegisterLabel(e,t.A+2)}; if ${this.getRegisterLabel(e,t.A)} <= ${this.getRegisterLabel(e,t.A+1)} then { pc+=${t.sBx}; ${this.getRegisterLabel(e,t.A+3)} := ${this.getRegisterLabel(e,t.A)} }`;case 33:return`FORPREP ${this.getRegisterLabel(e,t.A)} -= ${this.getRegisterLabel(e,t.A+2)}; pc += ${t.sBx}`;case 34:return`TFORCALL ${this.getRegisterLabel(e,t.A+3)}...${this.getRegisterLabel(e,t.A+2+t.C)} := ${this.getRegisterLabel(e,t.A)}(${this.getRegisterLabel(e,t.A+1)},${this.getRegisterLabel(e,t.A+2)})`;case 35:return`TFORLOOP if ${this.getRegisterLabel(e,t.A+1)} ~= nil then { ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.A+1)}; pc += ${t.sBx} }`;case 36:let i=t.C-1;if(!t.C){if(!n)throw new Error("Invalid PC");i=n.Ax-1}let o=50;return`SETLIST ${this.getRegisterLabel(e,t.A)}[${i*o+1}...${t.B?i*o+t.B:""}] := ${this.getRegisterLabel(e,t.A+1)}...${t.B?this.getRegisterLabel(e,t.A+t.B):"top"}`;case 37:let s=this.inner_functions[t.Bx];return`CLOSURE ${this.getRegisterLabel(e,t.A)} := closure(${s.source}:${s.firstline}-${s.lastline})`;case 38:return`VARARG ${this.getRegisterLabel(e,t.A)}...${t.B?this.getRegisterLabel(e,t.A+t.B-2):"top"}`;case 39:return"EXTRAARG";default:return`UNKNOWN OP(${t.Op}) A(${t.A}) B(${t.B}) C(${t.C})`}}fb2int(e){let t=e>>3&31;return t===0?e:(e&7)+8<<t-1}getRegisterOrConstantLabel(e,t){return t&256?this.constants[t&255].label:this.getRegisterLabel(e,t)}getUpvalLabel(e){return`Up(${this.upvals[e]?.name??e})`}getRegisterLabel(e,t){let n=0;for(let i=0;i<this.locals.length;i++){let o=this.locals[i];if(o.start<=e+1){if(o.end>=e+1){if(n===t)return`R(${o.name})`;n++}}else break}return`R(${t})`}};var hn=class extends X.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},td=class extends X.LoggingDebugSession{constructor(t,n,i){super();this.activeVersion=t;this.fs=n;this.editorInterface=i;this.objectInfoChunks=_l(hi(this.activeVersion.docs.generate_debuginfo()),3500),this.setDebuggerLinesStartAt1(!0),this.setDebuggerColumnsStartAt1(!0),this.setDebuggerPathFormat("uri"),this.configDone=new Promise(o=>{this._configurationDone=o})}_configurationDone;configDone;nextBreakpointID=1;breakPoints=new Map;breakPointsChanged=new Set;exceptionFilters=new Set(["unhandled"]);_modules=new Map;_responses=new Map;_dumps=new Map;translations=new Map;buffers=new Map;nextRef=1;factorio;stdinQueue=[];launchArgs;inPrompt=0;pauseRequested=!1;workspaceModInfo=[];initializeRequest(t,n){t.body=t.body||{},t.body.supportsConditionalBreakpoints=!0,t.body.supportsHitConditionalBreakpoints=!0,t.body.supportsEvaluateForHovers=!0,t.body.exceptionBreakpointFilters=[{filter:"pcall",label:"Caught by pcall",default:!1},{filter:"xpcall",label:"Caught by xpcall",default:!1},{filter:"unhandled",label:"Unhandled Exceptions",default:!0}],t.body.supportsSetVariable=!0,t.body.supportsModulesRequest=!0,t.body.supportsLogPoints=!0,t.body.supportsConfigurationDoneRequest=!0,t.body.supportsLoadedSourcesRequest=!0,t.body.supportsBreakpointLocationsRequest=!0,t.body.supportsDisassembleRequest=!0,t.body.supportsSteppingGranularity=!0,t.body.supportsInstructionBreakpoints=!1,this.sendResponse(t)}configurationDoneRequest(t,n){super.configurationDoneRequest(t,n),this._configurationDone?.()}terminateRequest(t,n){this.sendResponse(t),this.terminate()}disconnectRequest(t,n){this.sendResponse(t),this.terminate()}checkFactorioArgs(t){let n=t.factorioArgs;if(n){if(n.includes("--config"))return this.sendEvent(new X.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
|
|
59
|
+
`,"console")),!1;if(n.includes("--mod-directory"))return this.sendEvent(new X.OutputEvent(`Factorio --mod-directory option is set by modsPath and should not be included in factorioArgs
|
|
60
|
+
`,"console")),!1}return!0}async resolveModsPath(t){let n;if(t.modsPath){n="launch";let i=qt.posix.normalize(t.modsPath);i.match(/^~[\\\/]/)&&(i=qt.posix.join(pr.homedir().replace(/\\/g,"/"),i.replace(/^~[\\\/]/,""))),i.match(/[\\\/]$/)&&(i=i.replace(/[\\\/]+$/,""));try{await rd.access(i),t.modsPath=i}catch{return this.sendEvent(new X.OutputEvent(`modsPath specified in launch configuration does not exist
|
|
61
|
+
`,"console")),!1}}else{let i=await this.editorInterface.findWorkspaceFiles("**/mod-list.json");if(i.length===1)t.modsPath=qt.dirname(i[0].fsPath),n="workspace";else{if(i.length>1)return this.sendEvent(new X.OutputEvent(`multiple mod-list.json in workspace, please specify one as modsPath
|
|
62
|
+
`,"console")),!1;n="config",t.modsPath=await this.activeVersion.defaultModsPath()}}if(pr.platform()==="win32"&&t.modsPath.startsWith("/")&&(t.modsPath=t.modsPath.slice(1)),t.modsPath=t.modsPath.replace(/\\/g,"/"),this.sendEvent(new X.OutputEvent(`using modsPath ${t.modsPath} (${n})
|
|
63
|
+
`,"console")),n!=="config"){let i=t.modsPath;i.endsWith("/")||(i+="/"),t.factorioArgs.push("--mod-directory",i)}return!0}async setupMods(t){if(t.manageMod===!1)this.sendEvent(new X.OutputEvent(`automatic management of mods disabled
|
|
64
|
+
`,"console"));else{t.adjustMods||(t.adjustMods={}),t.allowDisableBaseMod||(t.adjustMods.base=!0);let n=new fn(t.modsPath);await n.Loaded,t.disableExtraMods&&n.disableAll();for(let i in t.adjustMods)if(t.adjustMods.hasOwnProperty(i)){let o=t.adjustMods[i];n.set(i,o)}if(t.noDebug)n.set("debugadapter",!1);else{n.set("coverage",!1),n.set("profiler",!1);let i=await n.installMod("debugadapter",{origin:"bundle"});this.sendEvent(new X.OutputEvent(`package install debugadapter ${JSON.stringify(i)}
|
|
65
|
+
`,"console"))}await n.write(),this.sendEvent(new X.OutputEvent(`debugadapter ${t.noDebug?"disabled":"enabled"} in mod-list.json
|
|
66
|
+
`,"console"))}}async launchRequest(t,n){if(X.logger.setup(n.trace?X.Logger.LogLevel.Verbose:X.Logger.LogLevel.Stop,qt.join(pr.tmpdir(),"fmtk.log"),!0),this.launchArgs=n,n.hookSettings=n.hookSettings??!1,n.hookData=n.hookData??!1,n.hookControl=n.hookControl??!0,n.hookMode=n.hookMode??"debug",n.trace=n.trace??!1,n.factorioArgs=n.factorioArgs||[],n.env&&Object.keys(n.env).length>0&&this.sendEvent(new X.OutputEvent(`using custom environment variables: ${JSON.stringify(n.env)}
|
|
67
|
+
`,"console")),!this.checkFactorioArgs(n)){this.sendEvent(new X.TerminatedEvent),this.sendErrorResponse(t,1),this.shutdown();return}if(!await this.resolveModsPath(n)){this.sendEvent(new X.TerminatedEvent),this.sendErrorResponse(t,1),this.shutdown();return}try{await this.setupMods(n)}catch(b){this.sendEvent(new X.OutputEvent(`Error setting up mods: ${b}
|
|
68
|
+
`,"console")),this.sendEvent(new X.TerminatedEvent),this.sendErrorResponse(t,1),this.shutdown();return}let i=await this.editorInterface.findWorkspaceFiles("**/info.json");if(await Promise.all(i.map(b=>this.updateInfoJson(b))),n.noDebug||((n.useInstrumentMode??!0)&&n.factorioArgs.push("--instrument-mod","debugadapter"),n.factorioArgs.push("--enable-unsafe-lua-debug-api"),(n.checkPrototypes??!0)&&!n.factorioArgs.includes("--check-unused-prototype-data")&&n.factorioArgs.push("--check-unused-prototype-data")),this.activeVersion.configPathIsOverriden()&&n.factorioArgs.push("--config",await this.activeVersion.configPath()),n.adjustModSettings){let b=Rt.joinPath(nt.file(n.modsPath),"mod-settings.dat"),P=new Ai(new Cr(await this.fs.readFile(b)));for(let v of n.adjustModSettings)if(v.value===void 0)P.set(v.scope,v.name);else switch(typeof v.value){case"string":P.set(v.scope,v.name,{type:"string",value:v.value});break;case"number":P.set(v.scope,v.name,{type:"number",value:v.value});break;case"boolean":P.set(v.scope,v.name,{type:"bool",value:v.value});break}await this.fs.writeFile(b,P.save())}this.factorio=new gi(this.activeVersion.factorioPath,n.factorioArgs,n.env),this.factorio.on("exit",(b,P)=>{b&&this.sendEvent(new X.Event("exited",{exitCode:b})),this.sendEvent(new X.TerminatedEvent),this.shutdown()});let o,s=new Promise(b=>{o=b});this.factorio.on("stderr",b=>{let P=b.toString();P&&this.sendEvent(new X.OutputEvent(P+`
|
|
69
|
+
`,"stderr"))});let c=(b,P)=>{switch(typeof P){case"string":switch(P.charCodeAt(0)){case 64976:return qt.basename(P.slice(1));case 64977:return this.convertDebuggerPathToClient(P.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(P.slice(1)));case 64980:{let v=Number.parseInt(P.slice(1));return this.translations.get(v)??`{Missing Translation ID ${v}}`}case 64981:{let v=Number.parseInt(P.slice(1));return this.buffers.get(v)??`{Missing Buffer ID ${v}}`}}}return P},d=b=>{let P=b.indexOf(1,3),v=Number.parseInt(b.subarray(3,P).toString().trim()),j=b.subarray(P+1),x=[],ee=j.indexOf(239);for(;ee>=0;){if(j[ee+1]>=160&&j[ee+1]<=163&&j[ee+2]>=128&&j[ee+2]<=191){let Y=j.subarray(ee,ee+4).toString("utf8").charCodeAt(0)-63488;x.push(j.subarray(0,ee),Buffer.from([Y])),j=j.subarray(ee+3)}else x.push(j.subarray(0,ee+1)),j=j.subarray(ee+1);ee=j.indexOf(239)}x.push(j);let ce=Buffer.concat(x);this.buffers.set(v,ce)},l=async b=>{if(b[2]===151){d(b);return}let P=b.toString();switch(P.charCodeAt(0)){case 64976:switch(this.inPrompt++,P.charCodeAt(1)){case 57344:await s,this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#settings"):this.continueRequire(this.launchArgs.hookSettings??!1,"#settings");return;case 57345:this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#data"):this.continueRequire(this.launchArgs.hookData??!1,"#data");return;case 57346:{let v=P.slice(2).trim();this.clearQueuedStdin();let j=this.launchArgs.hookControl??!0,x=v==="debugadapter"?Array.isArray(j)&&j.includes(v):j!==!1&&(j===!0||j.includes(v));this.launchArgs.hookMode==="profile"?this.continueProfile(x):this.launchArgs.hookMode==="profile2"?this.continueProfile(x,2):this.continueRequire(x,v);return}case 57347:{let v=this.launchArgs.hookControl??!0,j=Array.isArray(v)&&v.includes("debugadapter")||v===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!j):this.launchArgs.hookMode==="profile2"?this.continueProfile(!j,2):this.continueRequire(!1,"debugadapter");return}case 57348:this.sendClassData(),this.writeStdin("cont"),this.inPrompt--;return;case 57349:this.allocateRefBlock(),this.continue();return;case 57351:await this.configDone;case 57352:this.clearQueuedStdin(),this.allocateRefBlock(),this.continue(!0);return;case 57350:case 57353:case 57354:await this.runQueuedStdin(),this.continue(!0);return;case 57356:await this.terminate();return;case 57360:await this.terminate(!0);return;default:return}case 64977:{this.inPrompt++;let v=JSON.parse(P.slice(1),c);switch(v.event){case"source":this.loadedSourceEvent(v.body),this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new hn("pause",v.body.threadId))):this.continue();return;case"exception":await this.runQueuedStdin(),v.body.filter==="manual"||this.exceptionFilters.has(v.body.filter)?this.sendEvent(new hn("exception",v.body.threadId,v.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new hn(v.body.reason,v.body.threadId));return;default:return}}case 64980:{let v=P.indexOf(""),j=Number.parseInt(P.slice(1,v).trim()),x=P.slice(v+1);this.translations.set(j,x);return}case 64981:{let v=JSON.parse(P.slice(1),c);switch(v.event){case"modules":await this.updateModules(v.body),o(),this.sendEvent(new X.InitializedEvent);return;case"output":{let j=v;j.body.output.endsWith(`
|
|
70
|
+
`)||(j.body.output+=`
|
|
71
|
+
`),this.sendEvent(j);return}default:return}}case 64982:{let v=JSON.parse(P.slice(1),c);this._responses.get(v.seq)(v.body),this._responses.delete(v.seq);return}case 64984:{this.sendEvent(new X.InvalidatedEvent);return}}},g=b=>{switch(b.toString("utf8").charCodeAt(0)){case 64992:case 64993:case 64994:case 64995:return}};this.factorio.on("stdout",b=>{if(b[0]===239&&b[1]===183)switch(b[2]){case 144:case 145:case 148:case 149:case 150:case 151:case 152:l(b);return;case 160:case 161:case 162:case 163:g(b);return;case 173:this.sendEvent(new X.Event("x-Factorio-Profile",b.toString().slice(1)));return}b.toString()&&this.sendEvent(new X.OutputEvent(b.toString()+`
|
|
72
|
+
`,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=nt.parse(super.convertClientPathToDebugger(t)).toString(),t.startsWith("output:"))return t;let n;return this._modules.forEach(i=>{i.symbolFilePath&&t.startsWith(i.symbolFilePath)&&i.symbolFilePath.length>(n?.symbolFilePath||"").length&&(n=i)}),n?.name==="#user"&&t.startsWith(n.symbolFilePath+"/mods")&&(n=void 0),n?t.replace(n.symbolFilePath,"@__"+n.name+"__"):t}convertDebuggerPathToClient(t){let n=t.match(/^@__(.*?)__\/(.*)$/);if(n){let i=this._modules.get(n[1]);if(i?.symbolFilePath)return super.convertDebuggerPathToClient(Rt.joinPath(nt.parse(i.symbolFilePath),n[2]).toString())}return t}customRequest(t,n,i,o){switch(t){case"x-Factorio-ConvertPath":n.body=this.convertDebuggerPathToClient(i.path);break;case"modules":return this.modulesRequest(n,i);default:n.success=!1,n.message="Unknown request";break}this.sendResponse(n)}setBreakPointsRequest(t,n){let i;if(n.source.path){let d=n.source.path;i=this.convertClientPathToDebugger(d)}else i=`&ref ${n.source.sourceReference}`;let o=this.lines_by_source.get(n.source.sourceReference??i),s=this.breakPoints.get(i)??[],c=(n.breakpoints??[]).map(d=>{d.line=this.convertClientLineToDebugger(d.line);let l=s.find(b=>d.line===b.line&&d.column===b.column);if(l)return l.condition=d.condition,l.hitCondition=d.hitCondition,l.logMessage=d.logMessage,l;let g=!1;if(o){let b=0;for(let P of o){if(P>=d.line){d.line=P,g=!0;break}P>b&&(b=P)}!g&&b>0&&(d.line=b,g=!0)}return Object.assign(d,{id:this.nextBreakpointID++,verified:g})});this.breakPoints.set(i,c),this.breakPointsChanged.add(i),t.body={breakpoints:c},this.sendResponse(t)}revalidateBreakpoints(t){let n=typeof t=="number"?`&ref ${t}`:t,i=this.breakPoints.get(n);if(!i)return;this.breakPointsChanged.add(n);let o=this.lines_by_source.get(t);for(let s of i){let c=0;for(let d of o){if(d>=s.line){s.line=d,s.verified=!0,this.sendEvent(new X.BreakpointEvent("changed",s));break}d>c&&(c=d)}!s.verified&&c>0&&(s.line=c,s.verified=!0,this.sendEvent(new X.BreakpointEvent("changed",s)))}}async threadsRequest(t){this.inPrompt>0?(t.body=await new Promise(n=>{this._responses.set(t.request_seq,n),this.writeStdin(`__DebugAdapter.__dap.threads(${t.request_seq})
|
|
73
|
+
`)}),this.sendResponse(t)):(t.body={threads:[{id:1,name:"thread"}]},this.sendResponse(t))}async stackTraceRequest(t,n){let i=typeof n.startFrame=="number"?n.startFrame:0,o=await new Promise(s=>{this._responses.set(t.request_seq,s),this.writeStdin(`__DebugAdapter.__dap.stackTrace(${n.threadId},${i},${t.request_seq})
|
|
74
|
+
`)});t.body={stackFrames:o.map(s=>{if(s&&s.source){s.source.path&&(s.source.path=this.convertDebuggerPathToClient(s.source.path));let c=s.source.sourceReference??s.source.name;if(c){let d=this.dumps_by_source.get(c)?.get(s.linedefined);d&&d.baseAddr&&(s.instructionPointerReference="0x"+(d.baseAddr+s.currentpc).toString(16))}}return s})},this.sendResponse(t)}modulesRequest(t,n){let i=Array.from(this._modules.values());t.body={modules:i},this.sendResponse(t)}async scopesRequest(t,n){let i=new Promise(o=>{this._responses.set(t.request_seq,o),this.writeStdin(`__DebugAdapter.__dap.scopes(${n.frameId}, ${t.request_seq})
|
|
75
|
+
`)});t.body={scopes:await i},this.sendResponse(t)}async variablesRequest(t,n,i){let o,s=new Promise(l=>o=l),c=new AbortController,d=await Promise.race([new Promise(async l=>{this._responses.set(t.request_seq,l),await this.writeOrQueueStdin(`__DebugAdapter.__dap.variables(${n.variablesReference},${t.request_seq},${n.filter?`"${n.filter}"`:"nil"},${n.start||"nil"},${n.count||"nil"})
|
|
76
|
+
`,s,c.signal)||(this._responses.delete(t.request_seq),o(),l([{name:"",value:`Expired variablesReference ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}]))}),new Promise(l=>{setTimeout(()=>{c.abort(),l([{name:"",value:`No Lua State Available ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}])},this.launchArgs.runningTimeout??2e3)})]);o(),t.body={variables:d},d.length===1&&d[0].type==="error"&&(t.success=!1,t.message=d[0].value),this.sendResponse(t)}async setVariableRequest(t,n,i){let o=await new Promise(s=>{this._responses.set(t.request_seq,s),this.writeStdin(`__DebugAdapter.__dap.setVariable(${n.variablesReference},${hr(Buffer.from(n.name))},${hr(Buffer.from(n.value))},${t.request_seq})
|
|
77
|
+
`)});o.type==="error"?(t.success=!1,t.message=o.value):t.body=o,this.sendResponse(t)}async evaluateRequest(t,n,i){let o,s=new Promise(v=>o=v),c=new AbortController,d=n.expression.match(/^__(.+?)__ (.*)$/),l;d&&(l=d[1],n.expression=d[2]);let g=l?hr(Buffer.from(l)):n.frameId?n.frameId:"nil",b=hr(Buffer.from(n.expression.replace(/\n/g," "))),P=await Promise.race([new Promise(async v=>{this._responses.set(t.request_seq,v),await this.writeOrQueueStdin(`__DebugAdapter.__dap.evaluate(${g},"${n.context}",${b},${t.request_seq})
|
|
78
|
+
`,s,c.signal)||(this._responses.delete(t.request_seq),o(),v({result:`Expired evaluate seq=${t.request_seq}`,type:"error",variablesReference:0}))}),new Promise(v=>{setTimeout(()=>{c.abort(),v({result:`No Lua State Available seq=${t.request_seq}`,type:"error",variablesReference:0})},this.launchArgs.runningTimeout??2e3)})]);if(o(),P.type==="error"&&(t.success=!1,t.message=P.result),t.body=P,P.timer){let v=P.timer.replace(/^.*: /,"");P.result+=`
|
|
79
|
+
\u23F1\uFE0F `+v}this.sendResponse(t)}continueRequest(t,n){this.writeStdin("__DebugAdapter.__dap.step_enabled(false)"),this.continue(),this.sendResponse(t)}pauseRequest(t,n,i){this.pauseRequested=!0,this.sendResponse(t)}step(t="in",n="statement"){let i={in:-1,over:0,out:1};this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.writeStdin("__DebugAdapter.__dap.step_enabled(true)"),this.writeStdin(`__DebugAdapter.__dap.step(${i[t]},${n==="instruction"})`),this.writeStdin("cont"),this.inPrompt--}nextRequest(t,n){this.step("over",n.granularity),this.sendResponse(t)}stepInRequest(t,n){this.step("in",n.granularity),this.sendResponse(t)}stepOutRequest(t,n){this.step("out",n.granularity),this.sendResponse(t)}setExceptionBreakPointsRequest(t,n,i){this.exceptionFilters.clear(),n.filters.forEach(o=>this.exceptionFilters.add(o)),this.sendResponse(t)}nextdump=1;dumps_by_source=new Map;dumps_by_address=[];lines_by_source=new Map;loadedSources=[];loadedSourceEvent(t){let n=t.source;if(t.dump){let i=n.sourceReference??n.name,o=new bi(t.dump);this.nextdump=o.rebase(this.nextdump);let s=new Set,c=new Map;o.walk_functions(d=>{if(d.baseAddr){let l=this.dumps_by_address.findIndex(g=>d.baseAddr<g.baseAddr);l===-1?this.dumps_by_address.push(d):this.dumps_by_address.splice(l,0,d)}c.set(d.firstline,d),d.lines.forEach(l=>s.add(l))}),this.dumps_by_source.set(i,c),this.lines_by_source.set(i,Array.from(s).sort((d,l)=>d-l)),this.revalidateBreakpoints(i)}this.loadedSources.push(n),this.sendEvent(new X.LoadedSourceEvent("new",n))}disassembleRequest(t,n,i){let o=parseInt(n.memoryReference),s=[];t.body={instructions:s};let c=o+(n.instructionOffset??0),d=n.instructionCount;for(;c<1;)s.push({address:"0x"+c.toString(16),instruction:"<no instruction>"}),c++,d--;let l=this.dumps_by_address.findIndex(g=>g.baseAddr&&g.baseAddr<c&&g.baseAddr+g.instruction_count>=c);do{let b=this.dumps_by_address[l].getInstructionsAtBase(c,d);b&&(s.push(...b),d-=b.length,c+=b.length),l++}while(d>0&&c<this.nextdump&&l<this.dumps_by_address.length);for(;d>0;)s.push({address:"0x"+c.toString(16),instruction:"<no instruction>"}),d--;this.nextdump+=d,this.sendResponse(t)}breakpointLocationsRequest(t,n,i){let o=n.source.sourceReference??n.source.path;if(o){typeof o=="string"&&(o=this.convertClientPathToDebugger(o));let s=this.lines_by_source?.get(o);s&&(t.body={breakpoints:s.map(c=>({line:c})).filter(c=>c.line>=n.line&&c.line<=(n.endLine??n.line))})}this.sendResponse(t)}loadedSourcesRequest(t,n,i){t.body={sources:this.loadedSources},this.sendResponse(t)}async sourceRequest(t,n){let i=n.source?.sourceReference;if(i){let o,s=new Promise(l=>o=l),c=new AbortController,d=await Promise.race([new Promise(async l=>{this._responses.set(t.request_seq,l),await this.writeOrQueueStdin(`__DebugAdapter.__dap.source(${i},${t.request_seq})
|
|
80
|
+
`,s,c.signal)||(this._dumps.delete(i),o(),l(`Expired source ref=${i}`))}),new Promise(l=>{setTimeout(()=>{c.abort(),l(`No Lua State Available ref=${i} seq=${t.request_seq}`)},this.launchArgs.runningTimeout??2e3)})]);o(),t.body={content:d??"Invalid Source ID"}}this.sendResponse(t)}async updateInfoJson(t){try{let n=t.path;pr.platform()==="win32"&&n.startsWith("/")&&(n=n.slice(1));let i=Buffer.from(await this.fs.readFile(t)).toString("utf8");if(i){let o=JSON.parse(i);if(o){let s={uri:Rt.dirname(t),name:o.name,version:o.version,info:o};this.workspaceModInfo.push(s)}}}catch(n){this.sendEvent(new X.OutputEvent(`failed to read ${t} ${n}
|
|
81
|
+
`,"stderr"))}}objectInfoChunks;sendClassData(){for(let t of this.objectInfoChunks)this.writeStdin(Buffer.concat([Buffer.from("__DebugAdapter.loadObjectInfo("),hr(t),Buffer.from(")")]));this.writeStdin("__DebugAdapter.loadObjectInfo()")}writeStdin(t){if(this.inPrompt<=0){this.sendEvent(new X.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
|
|
82
|
+
`,"console"));return}this.factorio?.writeStdin(Buffer.concat([t instanceof Buffer?t:Buffer.from(t),Buffer.from(`
|
|
83
|
+
`)]))}async writeOrQueueStdin(t,n,i){return this.inPrompt>0?(this.writeStdin(t),n&&await n,!0):new Promise(s=>this.stdinQueue.push({mesg:t,resolve:s,consumed:n,signal:i}))}async runQueuedStdin(){if(this.stdinQueue.length>0){for(let t of this.stdinQueue)t.signal?.aborted?t.resolve(!1):(this.writeStdin(t.mesg),t.resolve(!0),t.consumed&&await t.consumed);this.stdinQueue=[]}}clearQueuedStdin(){this.stdinQueue.length>0&&(this.stdinQueue.forEach(t=>{t.resolve(!1)}),this.stdinQueue=[])}continue(t){if(this.inPrompt<=0){this.sendEvent(new X.OutputEvent(`!! Attempted to continue while not in a prompt
|
|
84
|
+
`,"console"));return}(t||this.breakPointsChanged.size!==0)&&this.updateBreakpoints(t),this.writeStdin("cont"),this.inPrompt--}continueRequire(t,n){if(this.inPrompt<=0){this.sendEvent(new X.OutputEvent(`!! Attempted to continueRequire while not in a prompt
|
|
85
|
+
`,"console"));return}if(t){let i="";this.launchArgs.hookLog!==void 0&&(i+=`hooklog=${this.launchArgs.hookLog},`),this.launchArgs.keepOldLog!==void 0&&(i+=`keepoldlog=${this.launchArgs.keepOldLog},`),this.launchArgs.runningBreak!==void 0&&(i+=`runningBreak=${this.launchArgs.runningBreak},`),this.writeStdin(`__DebugAdapter={__config={${i}}}`)}this.writeStdin("cont"),this.inPrompt--}continueProfile(t,n){if(this.inPrompt<=0){this.sendEvent(new X.OutputEvent(`!! Attempted to continueProfile while not in a prompt
|
|
86
|
+
`,"console"));return}if(t){let i="";this.launchArgs.profileSlowStart!==void 0&&(i+=`slowStart=${this.launchArgs.profileSlowStart},`),this.launchArgs.profileUpdateRate!==void 0&&(i+=`updateRate=${this.launchArgs.profileUpdateRate},`),this.launchArgs.profileLines!==void 0&&(i+=`trackLines=${this.launchArgs.profileLines},`),this.launchArgs.profileFuncs!==void 0&&(i+=`trackFuncs=${this.launchArgs.profileFuncs},`),this.launchArgs.profileTree!==void 0&&(i+=`trackTree=${this.launchArgs.profileTree},`),this.writeStdin(`__Profiler${n||""}={${i}}`)}this.writeStdin("cont"),this.inPrompt--}async trydir(t,n){try{if((await this.fs.stat(t)).type&2){let o=JSON.parse(Buffer.from(await this.fs.readFile(Rt.joinPath(t,"info.json"))).toString("utf8"));if(o.name===n.name&&ws.eq(o.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new X.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
|
|
87
|
+
`,"console")),!0}}catch(i){return i.code!=="FileNotFound"&&i.code!=="ENOENT"&&this.sendEvent(new X.OutputEvent(`failed loading ${n.name} ${n.version} from modspath: ${i}
|
|
88
|
+
`,"console")),!1}return!1}async updateModules(t){let n=this.editorInterface.getExtension?.("slevesque.vscode-zipexplorer");n&&(await n.activate(),await this.editorInterface.executeCommand("zipexplorer.clear"));for(let i of t)try{if(this._modules.set(i.name,i),i.name==="#user"){i.symbolFilePath=nt.file(await this.activeVersion.writeDataPath()).toString(),i.symbolStatus="Loaded Write Data Directory",this.sendEvent(new X.OutputEvent(`loaded ${i.name} from config ${i.symbolFilePath}
|
|
89
|
+
`,"console"));continue}if(i.name==="level"){i.symbolStatus="No Symbols (Level)";continue}try{let s=Rt.joinPath(nt.file(await this.activeVersion.dataPath()),i.name);if(JSON.parse(Buffer.from(await this.fs.readFile(Rt.joinPath(s,"info.json"))).toString("utf8")).name===i.name){i.symbolFilePath=s.toString(),i.symbolStatus="Loaded Data Directory",this.sendEvent(new X.OutputEvent(`loaded ${i.name} from data ${i.symbolFilePath}
|
|
90
|
+
`,"console"));continue}}catch{}let o=this.workspaceModInfo.find(s=>s.name===i.name&&ws.eq(s.version,i.version,{loose:!0}));if(o){i.symbolFilePath=o.uri.toString(),i.symbolStatus="Loaded Workspace Directory",this.sendEvent(new X.OutputEvent(`loaded ${i.name} ${i.version} from workspace ${i.symbolFilePath}
|
|
91
|
+
`,"console"));continue}if(this.launchArgs.modsPath){let s=Rt.joinPath(nt.file(this.launchArgs.modsPath),i.name);if(await this.trydir(s,i)||(s=Rt.joinPath(nt.file(this.launchArgs.modsPath),i.name+"_"+i.version),await this.trydir(s,i)))continue;if(n){let c=Rt.joinPath(nt.file(this.launchArgs.modsPath),i.name+"_"+i.version+".zip"),d;try{d=await this.fs.stat(c)}catch(l){l.code!=="FileNotFound"&&this.sendEvent(new X.OutputEvent(`${l}
|
|
92
|
+
`,"stderr"))}if(d&&d.type&1)try{await this.editorInterface.executeCommand("zipexplorer.exploreZipFile",c);let l=Rt.joinPath(c,i.name+"_"+i.version).with({scheme:"zip"});i.symbolFilePath=l.toString(),i.symbolStatus="Loaded Zip",this.sendEvent(new X.OutputEvent(`loaded ${i.name} ${i.version} from mod zip ${c.toString()}
|
|
93
|
+
`,"console"));continue}catch(l){this.sendEvent(new X.OutputEvent(`failed loading ${i.name} ${i.version} from mod zip ${c.toString()}: ${l}
|
|
94
|
+
`,"console"))}}}i.symbolStatus="Unknown",this.sendEvent(new X.OutputEvent(`no source found for ${i.name} ${i.version}
|
|
95
|
+
`,"console"))}catch(o){i.symbolStatus="Error",this.sendEvent(new X.OutputEvent(`failed locating source for ${i.name} ${i.version}: ${o}
|
|
96
|
+
`,"console"))}this._modules.forEach(i=>{this.sendEvent(new X.ModuleEvent("new",i))})}updateBreakpoints(t=!1){let n=Array();this.breakPoints.forEach((i,o)=>{(t||this.breakPointsChanged.has(o))&&n.push(Buffer.concat([Buffer.from("__DebugAdapter.__dap.updateBreakpoints("),hr(Gl(o,i)),Buffer.from(`)
|
|
97
|
+
`)]))}),this.breakPointsChanged.clear(),this.writeStdin(Buffer.concat(n))}async terminate(t){this.factorio?.kill?.();let n=this.launchArgs?.modsPath;if(n)if(this.launchArgs.manageMod===!1)this.sendEvent(new X.OutputEvent(`automatic management of mods disabled by launch config
|
|
98
|
+
`,"console"));else try{let i=new fn(n);await i.Loaded,i.set("debugadapter",!1),await i.write(),this.sendEvent(new X.OutputEvent(`debugadapter disabled in mod-list.json
|
|
99
|
+
`,"console"))}catch(i){this.sendEvent(new X.OutputEvent(`failed to disable debugadapter in mod-list.json:
|
|
100
|
+
${i}
|
|
101
|
+
`,"console"))}this.sendEvent(new X.TerminatedEvent(t)),this.shutdown()}};var Ht={adjust:{table:{BlueprintEntity:{exact:!1}},class:{LuaLazyLoadedValue:{generic_params:["T"],generic_parent:"{get:fun():T}"},LuaCustomTable:{generic_params:["K","V"],generic_parent:"{[K]:V}",no_index:!0},LuaGuiElement:{index_key:{complex_type:"union",options:["string","uint"]},split_funcs:!0}}}};function ub(r){return["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"].includes(r)?`${r}_`:r}function Br(r){return ub(r.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Es(r){return!!r.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Xt(r,e){if(!e)return;let t=await e;t&&r.write(`---${t.replace(/\n/g,`
|
|
102
|
+
---`)}
|
|
103
|
+
`)}var Ut=class{constructor(e,t,n="_"){this.name=e;this.app_version=t;this.meta=n}members;add(e){this.members||(this.members=[]),this.members.push(e)}async write(e){if(typeof this.meta=="string"&&e.write(`---@meta ${this.meta}
|
|
104
|
+
`),e.write(`
|
|
105
|
+
`),e.write(`--$Factorio ${this.app_version}
|
|
106
|
+
`),e.write(`--$Generator ${lr}
|
|
107
|
+
`),e.write(`--$Section ${this.name}
|
|
108
|
+
`),e.write(`-- This file is automatically generated. Edits will be overwritten without warning.
|
|
109
|
+
`),e.write(`
|
|
110
|
+
`),this.members)for(let t of this.members)await t.write(e)}},ue=class{constructor(e,t){this.name=e;this.generic_args=t}format(){return this.generic_args?`${this.name}<${this.generic_args.map(e=>e.format()).join(", ")}>`:this.name}},Bt=class{constructor(e){this.value=e}format(){switch(typeof this.value){case"string":return`"${this.value}"`;case"number":case"boolean":return this.value.toString();default:throw new Error("Invalid value")}}},vi=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},gn=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},wi=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Jt=class{constructor(e){this.members=e}format(){return this.members.map(e=>`(${e.format()})`).join("|")}},Zt=class{constructor(e,t,n){this.name=e;this.type=t;this.description=n}async write(e){await Xt(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
|
|
111
|
+
|
|
112
|
+
`)}},Ei=class{constructor(e,t,n,i){this.name=e;this.type_name=t;this.fields=n;this.description=i}async write(e){await Xt(e,this.description),e.write(`---@enum ${this.type_name}
|
|
113
|
+
`),e.write(`${this.name}={
|
|
114
|
+
`);for(let t of this.fields)await t.write(e);e.write(`}
|
|
115
|
+
`)}},Di=class{constructor(e,t,n,i){this.name=e;this.typename=t;this.description=n;this.value=i}async write(e){await Xt(e,this.description);let t=Es(this.name)?this.name:`['${this.name}']`;e.write(`${t}=`),this.value?e.write(`${this.value.format()},
|
|
116
|
+
`):e.write(`#{} --[[@as ${this.typename.format()} ]],
|
|
117
|
+
`)}},yt=class{constructor(e){this.name=e}description;parents;generic_args;global_name;exact;operators;call_op;fields;functions;add(e){e instanceof pn?(this.operators||(this.operators=[]),this.operators.push(e)):e instanceof jt?(this.call_op||(this.call_op=[]),this.call_op.push(e)):e instanceof We?(this.fields||(this.fields=[]),this.fields.push(e)):e instanceof $e&&(this.functions||(this.functions=[]),this.functions.push(e))}async write(e){if(e.write(`do
|
|
118
|
+
`),await Xt(e,this.description),e.write("---@class "),this.exact&&e.write("(exact) "),e.write(`${this.name}`),this.generic_args&&this.generic_args.length>0&&e.write(`<${this.generic_args.join(",")}>`),this.parents&&this.parents.length>0&&e.write(`:${this.parents.map(t=>t.format()).join(", ")}`),e.write(`
|
|
119
|
+
`),this.fields)for(let t of this.fields)await t.write(e);if(this.call_op)for(let t of this.call_op)await t.write(e);if(this.operators)for(let t of this.operators)await t.write(e);if(e.write(`${this.global_name??"local "+Br(this.name)}={
|
|
120
|
+
`),this.functions)for(let t of this.functions)await t.write(e);e.write(`}
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
`)}format(){if(this.description||this.parents||this.generic_args||this.global_name||this.functions||this.call_op)throw new Error("Can't inline table with unsupported features");return this.fields?`{${this.fields.map((e,t)=>typeof e.name=="string"?`${e.name}:${e.type.format()}`:`[${e.name.format()}]:${e.type.format()}`).join(", ")}}`:"{}"}},pn=class{constructor(e,t,n){this.name=e;this.type=t;this.input_type=n}description;async write(e){await Xt(e,this.description),e.write(`---@operator ${this.name}`),this.input_type&&e.write(`(${this.input_type.format()})`),e.write(`:${this.type.format()}
|
|
124
|
+
`)}},We=class{constructor(e,t,n,i){this.name=e;this.type=t;this.description=n;this.optional=i}async write(e){await Xt(e,this.description),e.write("---@field "),typeof this.name=="string"?e.write(this.name):e.write(`[${this.name.format()}]`),this.optional&&e.write("?"),e.write(` ${this.type.format()}
|
|
125
|
+
`)}},jt=class{constructor(e,t,n){this.description=e;this.params=t;this.returns=n}async write(e){await Xt(e,this.description);let t="";this.params&&(t=this.params.map(i=>`${i.name}${i.optional?"?":""}:${i.type.format()}`).join(", "));let n="";this.returns&&(n=`:${this.returns.map(i=>i.type.format()).join(", ")}`),e.write(`---@overload fun(${t})${n}
|
|
126
|
+
`)}},$e=class{constructor(e,t,n,i){this.name=e;this.params=t;this.returns=n;this.description=i}overloads;nodiscard;add(e){this.overloads||(this.overloads=[]),this.overloads.push(e)}async write(e){if(await Xt(e,this.description),this.params)for(let t of this.params)await t.write(e);if(this.returns)for(let t of this.returns)await t.write(e);if(this.nodiscard&&e.write(`---@nodiscard
|
|
127
|
+
`),this.overloads)for(let t of this.overloads)await t.write(e);e.write(`${this.name} = function(`),this.params&&e.write(this.params.map(t=>t.name).join(", ")),e.write(`) end;
|
|
128
|
+
`)}format(){if((!this.params||this.params.length===0)&&!this.returns)return"function";let e="";this.params&&(e=this.params.map(n=>`${n.name}${n.optional?"?":""}:${n.type.format()}`).join(", "));let t="";return this.returns&&(t=`:${this.returns.map(n=>n.type.format()).join(", ")}`),`fun(${e})${t}`}},Ce=class{constructor(e,t,n,i){this.name=e;this.type=t;this.description=n;this.optional=i}async write(e){e.write(`---@param ${this.name}${this.optional?"?":""} ${this.type.format()} ${await this.description??""}
|
|
129
|
+
`)}},Ri=class{constructor(e,t,n,i){this.type=e;this.name=t;this.description=n;this.optional=i}async write(e){e.write(`---@return ${this.type.format()}${this.optional?"?":""} ${this.name??""}`);let t=await this.description;t&&e.write(` #${t}`),e.write(`
|
|
130
|
+
`)}};function Ds(r,e){return r.order-e.order}var nd=class{docs;classes;events;concepts;globals;defines;constructor(e){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw new Error(`Unknown application: ${this.docs.application}`);if(this.docs.api_version!==6)throw new Error(`Unsupported Runtime Docs JSON Version ${this.docs.api_version}`);if(this.docs.stage!=="runtime")throw new Error(`Wrong stage: ${this.docs.stage}`);this.classes=new Map(this.docs.classes.map(n=>[n.name,n])),this.events=new Map(this.docs.events.map(n=>[n.name,n])),this.concepts=new Map(this.docs.concepts.map(n=>[n.name,n])),this.globals=new Map(this.docs.global_objects.map(n=>[n.type,n]));let t=(n,i)=>{let o=`${i}${n.name}`;this.defines.add(o);let s=`${o}.`;n.values&&n.values.forEach(c=>{this.defines.add(`${s}${c.name}`)}),n.subkeys&&n.subkeys.forEach(c=>t(c,s))};this.defines=new Set,this.defines.add("defines"),this.docs.defines.forEach(n=>t(n,"defines."))}isVersion(e){return this.api_version===e}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["classes","events","concepts","defines"].includes(e))return`/${e}.html${t}`;if(["libraries","storage","migrations","data-lifecycle","prototype-tree","noise-expressions","instrument","item-weight"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/concepts/${e}.html${t}`;if(this.classes.has(e))return`/classes/${e}.html${t}`;if(this.events.has(e))return`/events.html#${e}`;if(this.defines.has(e))return`/defines.html#${e}`;let n=e.match(/defines\.prototypes\[\'(.+)\'\]/);if(n&&this.defines.has(`defines.prototypes.${n[1]}`))return`/defines.html#defines.prototypes.${n[1]}`;console.warn(`Invalid Link: runtime:${e}${t}`)}with_base_classes(e,t){let n=[];return n.push(...t(e)),e.parent&&n.push(...t(this.classes.get(e.parent))),n}generate_debuginfo(){let e={alwaysValid:{},expandKeys:{}};return this.classes.forEach(t=>{if(["LuaCustomTable"].includes(t.name))return;let n={},i=!1;e.expandKeys[t.name]=n;for(let o of this.with_base_classes(t,s=>s.attributes))if(o.name==="valid")i=!0;else if(o.name!=="object_name"){if(!(t.name==="LuaEntity"&&o.name==="crafting_speed"&&this.application_version.match(/2\.0\.5[67]/))){if(o.read_type){n[o.name]={},o.write_type||(n[o.name].readOnly=!0);let s=o.read_type;typeof s=="string"&&s.startsWith("defines.")&&(n[o.name].enumFrom=s)}}}i||(e.alwaysValid[t.name]=!0);for(let o of t.operators)switch(o.name){case"index":n["[]"]={readOnly:!o.write_type,thisAsTable:!0,iterMode:"count"};break;case"length":default:break}for(let o of this.with_base_classes(t,s=>s.methods))["help","generate_event_name"].includes(o.name)||o.parameters.length>0||o.return_values.length!==0&&(o.raises||(n[o.name]={readOnly:!0,fetchable:!0}))}),e}async generate_LuaLS_docs(e){return Promise.all([...await this.generate_LuaLS_classes(e),this.generate_LuaLS_concepts(e),this.generate_LuaLS_defines(e),this.generate_LuaLS_events(e),this.generate_LuaLS_LuaObjectNames(),this.generate_LuaLS_global_functions(e)])}async generate_LuaLS_classes(e){let t=[];for(let n of this.docs.classes)t.push(await this.generate_LuaLS_class(n,e));return t}async generate_LuaLS_class(e,t){let n=new Ut(`runtime-api/${e.name}`,this.docs.application_version),i=new yt(e.name),o=this.globals.get(e.name);o&&(i.global_name=o.name),i.description=t(this.collect_description(e,{scope:"runtime",member:e.name})),i.parents=e.parent?[new ue(e.parent)]:[new ue("LuaObject.base")],i.generic_args=Ht.adjust.class[e.name]?.generic_params,Ht.adjust.class[e.name]?.generic_parent&&i.parents.push(await this.LuaLS_type(Ht.adjust.class[e.name]?.generic_parent));for(let c of e.attributes){let d=c.name==="object_name"?new Bt(e.name):await this.LuaLS_type(c.write_type??c.read_type,{file:n,table_class_name:`${e.name}.${c.name}`,format_description:t});i.add(new We(c.name,d,t(this.collect_description(c,{scope:"runtime",member:e.name,part:c.name})),c.optional))}for(let c of e.operators)switch(c.name){case"call":{i.add(new jt(t(this.collect_description(c,{scope:"runtime",member:e.name,part:"call_operator"})),await this.LuaLS_params(c.parameters,t),await this.LuaLS_returns(c.return_values,t)));break}case"length":{let d=new pn("len",await this.LuaLS_type(c.read_type));d.description=t(this.collect_description(c,{scope:"runtime",member:e.name,part:"length_operator"})),i.add(d);break}case"index":{if(Ht.adjust.class[e.name]?.no_index)break;i.add(new We(await this.LuaLS_type(Ht.adjust.class[e.name]?.index_key??"uint"),await this.LuaLS_type(c.write_type??c.read_type),t(this.collect_description(c,{scope:"runtime",member:e.name,part:"index_operator"}))));break}default:throw new Error(`Unkown operator: ${c.name}`)}let s=i;Ht.adjust.class[e.name]?.split_funcs&&(s=new yt(`${e.name}_funcs`),n.add(s),i.parents.push(new ue(`${e.name}_funcs`)));for(let c of e.methods)s.add(await this.LuaLS_function(c,n,t,e.name));return n.add(i),n}async generate_LuaLS_concepts(e){let t=new Ut("runtime-api/concepts",this.docs.application_version);for(let n of this.docs.concepts){let i=e(this.collect_description(n,{scope:"runtime",member:n.name}));if(typeof n.type=="string")t.add(new Zt(n.name,await this.LuaLS_type(n.type),i));else switch(n.type.complex_type){case"dictionary":let o=n.type.key,s=n.type.value;if(typeof s=="object"&&s.complex_type==="literal"&&s.value===!0&&typeof o=="object"&&o.complex_type==="union"){let c=new yt(n.name);c.exact=!0,c.description=i;for(let d of o.options)c.add(new We(await this.LuaLS_type(d),await this.LuaLS_type(s)));t.add(c);break}case"union":case"array":case"table":case"tuple":case"LuaStruct":{let c=await this.LuaLS_type(n.type,{file:t,table_class_name:n.name,format_description:e});c instanceof ue&&c.name===n.name||t.add(new Zt(n.name,c,i));break}case"builtin":break;default:break}}return t}async generate_LuaLS_defines(e){let t=new Ut("runtime-api/defines",this.docs.application_version),n=new yt("defines");n.global_name="defines",n.description=e(void 0,{scope:"runtime",member:"defines"}),t.add(n);let i=(s,c)=>Es(c)?`${s}.${c}`:`${s}['${c}']`,o=async(s,c,d,l)=>{let g=i(c,s.name),b=`${d}.${Br(s.name)}`,P=e(this.collect_description(s,{scope:"runtime",member:g}));if(g==="defines.prototypes"&&(l=new Bt(0)),s.values)t.add(new Ei(g,b,s.values.map(v=>{let j=v.description.replace(/^deprecated,?/i,"@deprecated"),x=new ue(`${b}.${Br(v.name)}`);return new Di(v.name,x,j,l)}),P));else{let v=new yt(g);if(v.global_name=g,v.description=P,t.add(v),s.subkeys)for(let j of s.subkeys)await o(j,g,b,l)}};for(let s of this.docs.defines)await o(s,"defines","defines");return t}async generate_LuaLS_events(e){let t=new Ut("runtime-api/events",this.docs.application_version),n=new yt("event_handler.events");for(let[i,o]of this.events){let s=new yt(`EventData.${o.name}`);s.exact=!0,s.parents=[new ue("EventData")],s.description=e(this.collect_description(o,{scope:"runtime",member:o.name}));for(let d of o.data)s.add(new We(d.name,await this.LuaLS_type(d.type),e(this.collect_description(d,{scope:"runtime",member:o.name,part:d.name})),d.optional));if(t.add(s),o.name==="CustomInputEvent")continue;let c=new $e("handler",[new Ce("event",new ue(`EventData.${o.name}`))]);n.add(new We(new ue(`defines.events.${o.name}`),c)),n.add(new We(new Bt(o.name),c))}return n.add(new We(new ue("LuaCustomInputPrototype"),new $e("handler",[new Ce("event",new ue("EventData.CustomInputEvent"))]))),n.add(new We(new ue("LuaCustomEventPrototype"),new $e("handler",[new Ce("event",new ue("EventData"))]))),n.add(new We(new ue("string"),new $e("handler",[new Ce("event",new ue("EventData"))]))),n.add(new We(new ue("defines.events"),new $e("handler",[new Ce("event",new ue("EventData"))]))),t.add(n),t}generate_LuaLS_LuaObjectNames(){let e=new Ut("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new Zt("LuaObject.object_name",new Jt(this.docs.classes.filter(t=>!t.abstract).map(t=>new Bt(t.name))))),e.add(new Zt("LuaObject",new Jt(this.docs.classes.filter(t=>!t.abstract).map(t=>new ue(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new Ut("runtime-api/global_functions",this.docs.application_version);for(let n of this.docs.global_functions)t.add(await this.LuaLS_function(n,t,e));return t}async LuaLS_params(e,t){return Promise.all(e.sort(Ds).map(async n=>new Ce(Br(n.name),await this.LuaLS_type(n.type),t(this.collect_description(n)),n.optional)))}async LuaLS_returns(e,t){return Promise.all(e.sort(Ds).map(async n=>new Ri(await this.LuaLS_type(n.type),void 0,t(this.collect_description(n)),n.optional)))}async LuaLS_function(e,t,n,i){let o=e.format.takes_table?[new Ce("param",await this.LuaLS_table_type(e,t,`${i??""}${i?".":""}${e.name}_param`,n),void 0,e.format.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_parameter&&o.push(new Ce("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let s=new $e(e.name,o,await this.LuaLS_returns(e.return_values,n),n(this.collect_description(e),{scope:"runtime",member:i??"libraries",part:i?e.name:"new-functions"}));if(i==="LuaBootstrap"&&e.name==="on_event"){o[1].type.members[0].params[0].name="event",s.add(new jt(void 0,[new Ce("event",new ue("string")),new Ce("handler",new $e("handler",[new Ce("event",new ue("EventData"))]))])),s.add(new jt(void 0,[new Ce("event",new ue("LuaCustomEventPrototype")),new Ce("handler",new $e("handler",[new Ce("event",new ue("EventData"))]))])),s.add(new jt(void 0,[new Ce("event",new ue("LuaCustomInputPrototype")),new Ce("handler",new $e("handler",[new Ce("event",new ue("EventData.CustomInputEvent"))]))]));for(let[c,d]of this.events){let l=new Jt([new ue(`defines.events.${d.name}`),new Bt(d.name)]),g=new ue(`EventData.${d.name}`);if(d.name==="CustomInputEvent")continue;let b=[new Ce("event",l),new Ce("handler",new $e("handler",[new Ce("event",g)]))];d.filter&&b.push(new Ce("filters",new gn(new ue(d.filter)),void 0,!0)),s.add(new jt(void 0,b))}}return s}async LuaLS_table_type(e,t,n,i,o){let s=new yt(n);s.exact=Ht.adjust.table[n]?.exact??!0,s.parents=o,t.add(s);let c=1;for(let d of e.parameters.sort(Ds)){let l="complex_type"in e&&e.complex_type==="tuple";s.add(new We(l?new Bt(c++):d.name,await this.LuaLS_type(d.type),i(this.collect_description(d)),d.optional))}if(e.variant_parameter_groups){let d=[],l=new Zt(s.name,new Jt(d));t.add(l),s.name+=".base";for(let g of e.variant_parameter_groups){let b=await this.LuaLS_table_type(g,t,`${n}.${Br(g.name)}`,i,[new ue(s.name)]);d.push(b)}return d.push(new ue(s.name)),new ue(l.name)}return new ue(s.name)}async LuaLS_type(e,t){if(!e)return new ue("any");if(typeof e=="string")return new ue(e);let n=i=>t&&{file:t.file,table_class_name:`${t.table_class_name}.${i}`,format_description:t.format_description};switch(e.complex_type){case"array":return new gn(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new vi(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Jt(await Promise.all(e.options.map((i,o)=>this.LuaLS_type(i,n(`${o}`)))));case"LuaLazyLoadedValue":return new ue("LuaLazyLoadedValue",[await this.LuaLS_type(e.value,n("value"))]);case"LuaCustomTable":return new ue("LuaCustomTable",await Promise.all([this.LuaLS_type(e.key,n("key")),this.LuaLS_type(e.value,n("value"))]));case"literal":return new Bt(e.value);case"function":return new $e(void 0,await Promise.all(e.parameters.map(async(i,o,s)=>new Ce(`p${o+1}`,await this.LuaLS_type(i,n(`param${s.length>1?o:""}`))))));case"type":return this.LuaLS_type(e.value,t);case"tuple":return new wi(await Promise.all(e.values.map((i,o)=>this.LuaLS_type(i,n(`${o}`)))));case"table":if(!t)throw new Error(`${e.complex_type} without parent`);return this.LuaLS_table_type(e,t.file,t.table_class_name,t.format_description);case"LuaStruct":{if(!t)throw new Error(`${e.complex_type} without parent`);let i=new yt(t.table_class_name);i.exact=!0;for(let o of e.attributes)i.add(new We(o.name,await this.LuaLS_type(o.write_type??o.read_type,{file:t.file,table_class_name:`${t.table_class_name}.${o.name}`,format_description:t.format_description}),t.format_description(this.collect_description(o)),o.optional));return t.file.add(i),new ue(t.table_class_name)}}throw new Error("Invalid Type")}collect_description(e,t,n){return n||(n=e.description),"read"in e&&(n=`[${e.read?"R":""}${e.write?"W":""}] ${n??""}`),[n,e.lists?.join(`
|
|
131
|
+
|
|
132
|
+
`),e.raises&&`**Events:**
|
|
133
|
+
${e.raises?.map(i=>` * ${i.optional?"May":"Will"} raise [${i.name}](runtime:events::${i.name}) ${{instantly:"instantly",current_tick:"later in the current tick",future_tick:"in a future tick"}[i.timeframe]}.${i.description?`
|
|
134
|
+
`+i.description:""}`)?.join(`
|
|
135
|
+
|
|
136
|
+
`)}`,t&&`[View Documentation](${t.scope}:${t.member}${t.part?"::"+t.part:""})`,e.examples?.map(i=>`### Example
|
|
137
|
+
${i}`)?.join(`
|
|
138
|
+
|
|
139
|
+
`),e.subclasses&&`_Can only be used if this is ${e.subclasses.length===1?e.subclasses[0]:`${e.subclasses.slice(0,-1).join(", ")} or ${e.subclasses[e.subclasses.length-1]}`}_`].filter(i=>!!i).join(`
|
|
140
|
+
|
|
141
|
+
`)}};var Ps={};Ie(Ps,{default:()=>lb});var id=Ae(De()),lb=(0,id.decompressFromBase64)("FAWhG12BBAnBzABABwIawM4FNaIGawD2AtgFyIAWALlchqQPQPwCWVFArgEYB0AxiQYApVADsAyhXTIGAGQ6o48AArpssYMACyASQAqiWSz5ZR2TQGFCyAJ6wW8aogAUfAJSIATAAZPARhAfTwAWRBFRRC0WDD4pAGtNZRxiaIwWQgjoyhwsLhtEeFgxKiwAEwAafFgsLERCPERY9HgsSqpCRDF85BwMDLquKlQWURGkVEbrG2B6xHYsvrwqAHd0WrFSzow+vhZUEs3Swj4OYlMhqnSIvBYAGywMF3ZagCJxepW1l7c2jtKsVC3YAjOYUWrvJaraqIZZsCiEDhURDVDBUex8S4ZSojPi3DilMYwuEIpG3FgpC5XUG1eyOKgYYDtRAcbCVAS2SrEQgEvA2Tk4FqVZDcMkYCiVAmo+xcRGtRAYEXGUyszqiUoMQi4bC3IHslgPOoNZ6ICGfaqVDZzDo9WAUlC9DKPJnLeHEakmj5Q2rRYB4DiwUZispWxBHeWESoKrgAKywGJDxrwhB1hFhoiQAjVbCu9E0ejBnS4hAAbrV2XYHE5RIRLiZVZt5o8bSltlTq7XamLAbdEFxvaJcfjgyDu8A9QbNfLuKjinse8hNZizIb3aavTw8wAJACiJoA8gAxPQAdWgACVdzpxIhlGe9wA1HQAEW3T8QL2g16vL0qx/0m73ABVAxTzPM9oAAOT0ABNRBD0QSDYIAaR0CCn0qbcAA1b23cRrz3M9gB0LRlFkHRX0qVCLFkQCn1QgBxRAACFgMQCC9wMMjdD0V9ED0Pc+J3RBQPAqDyPwg9Im3M8LE3SC9GgJidDImDymAA99Ag3DrwPAiEJvc89B0CxANkc8b0As9lD3cRd0gt92Ig1CDzPBjty0bcoJ4RBULYgTt3vTyDHEOTZFkQTtxgYCALPfCz0QCw92UaDXPozcDAA2QX1i5jdzIxTZF3XT4sQhKzOIyon2gLRoHo3C4Pijid0I/KlJU6Dfx3PRmp8iCEL66ALCMvc+vgxKoPAobKn4s8DD0prpL/WzKnPK8GMQFy9y0NSgLmyS9N88atKGnQRuE/8Iv3I9QN3PTut3QDbIauD7vil9oDIiD6K/Pr7uAcRDxPc9tw3ABdUHNDAEAAAFcVQbYEIQDArFEG54D3ZAl1AMBoZuLBbk2PGCflNExmxmGic2MVFxJ+x0wAH1GHtofleFYCRawl0QURUDOCUsBuURg1hdgSUQe5UAJdNEAAAxAGXvJZYWwQiMQ6kxqkRYoTp5TGe5xYBKWkDlmXECyUwBA4UQSmqUpydx/ViduDIkClMZGbuRAWed6XObbXm5X+QXheJREDclwk5flxXsE2F1TFVdWua18OjdlsBTfNgcEWtnI7ahh38cOB4+HsDX+jdhmma90MS7Lrmlc2EFjTBW5kEQM5tlQFp7cp/Bbm73tCGTAFRA95mzadCgsj9/oJjwAf4AAfl7x2qb1rAAH00CKN0ixHsRx5ro4DUbJOqSGOJ1l19N9Z3gObZXgu+5SURt/QXnHhGEoWlgI+WfjhEdsOsF6D0nGkW+W977EEqPCZYHcugoA/sQR4J8p7rFgEUfIUhSwhhwbUV+5JThL0QE+AWqAOC3CRN4VeRcEEAA9367y/rnX+/8YQq25jWEBi86hag3kw3msDUwINEN0ZBX90GdEwagfI3ZUzBiZPghhRDiAkLIXgChVDZZM1NmcMQhIrZkgpGUWhxNoEsJ/jgdhmidRcFQHwOI+BJxFnYB3EYgiUH1gYZ4hkz815zBsD0Wm7tq4s2cNUAAjhwFgtsPAsE2LMY0VAgm1GNBA+A9xPF8OkVgxA5x7AGmUUyPs3kILcMbs43AoD4B+Jxn3WePMez7wlmPMJk93SNPPhkQEJDyTIDJIojofY5iwA4LUJM1TF51IpgEoOWiqCb2LICcZqp8gs2NPMyhSJll4jSR0JWVTulNOORgbyx5OHYCoJURpgIOn9MGQ2YZtQZZonGTLSGOM4YIyUMjDIaNlCEDSEuQEZj16QKHgfNpnsWZZDPguYFVw7kTAyfrXZ4yn71ICa/TevMc5Im/lgNh7TAFcKRCijewj4HEEQc0VBhBT4FnQHk4pHRlGEOIMQ0h5DtmIBof4uhNLGF4qtgS1h1iSWcOARSyBVLRFyKRh040zLZGdBTMsIZlBUC4KFao9RPLtEy10R3UehjRDGLYKYgVxMRXWzNuKv+7TbG3HsY4o5rjtY4tteStUPjvVgsCcEyuSBYWJKNAWFJwT0kbxySq/IBT9SPFZb2LAAbbnNOHq09hcKCxdPTX04gAz9RPJTaM1Zkz+7dwZPbb5jxfkozRmm8uy563/IcBjJc4BQbjwDQi7MPSeyttRg4QFiKB1dp7TWgePykabnxsgBtDgA0sm7p2UmVcYXCU4cgIgxYEnBgmDLF4gEMCrvIC8HgPAV0tFNmSIWRIdSlslv8TYfZJlpILK3dundT092tU3NU5xN73HTG4wlxLN0aIWYgYI3kdCAbtRW40jSGB9pBT2AefZbgzMLk7VAWHgOmHgGBh17CoO8oAMyeG8rIfD+NHiwkfS0JEaBSgvqJG4rgA9RBOIwGgOsHB25MjPiB4jFA4MNCwPQkwZRCTGlE+wNoBZ/gxHrlSLIwoOYRGNELehpIRipv/fKfjYxCOge1uBiVkGDVImoyafjtQ+wrBqBETD+NvEqdLiwZtmhnZ8DuZGreQdHgAF5EAAG8AC+vnjh3L9AOLm1RWCohwJvQLzgg4jH7aINwwBECBqCwLDA4BMujCXDwBJoNEBhdK9l4Apg7bACS9EG2aXUnhby2bTYYWXjBp/J15om9LZ2rC34NS+XMylnZtV/AVsMRXGcM0NkGQSh6dy/l/Lfm7kKj4CYbYlR0W1DC8gfzOpnDtGDRaBA62NssAaMAnbe30GiE6xt5EWAqD+iAXcA7KysCXpeO+S9mZVtUABzwF4r38lqih9UT7AZECHc6w18bkxC1rBm/F+bGRnD3CWJUWk1Abv5bh19g2SxqthcJ1QZHapUcXfXUgMLWOlzOClB4UnCOpTQ4qMAaLTWiUtdS4Fjr+WEkzZeKIU4fZYD9fy4N4bSJRuo8mzgJXs2EsLaW5MXOa2odbZ7I9h4GBft7Jmyd7s52MjS5wFd+AxOzb3e4UbhGzwXtvZJx9snTNTfjIB0D/gK2pNg4hxDqHDXYde4R0j/LKPOsCHR9CZnc3Wd4+uciSsVAHec9cwLJXVPM+095/z5rKXYBtZ6KLrrEuWmjzl9I+AQ38UzbG/HjIU31cs61wgZbuus9Q7uw3yn743lYEB5OZow+Xh+EB27qHnv4fabGamt79GsCD8nyFnrtjsDj9wJvnr3hZ8q3n+9xf+BATmFX9hlfHuc/cx+++bc9CegYgPZC1plR4DcIAOQXp4AznTPAIttdgDj/gHiDsHuDpDqvjDrHnTm3onkdhrtjqILjnngTpntnlHrnhTlvhnnSEXmpPzgbtkG3JvF0mFlXn3D1l+vXj7Ezu+HQajtTNNrQfXp5mpv0D1pICIl+ial3C0BDqjjUjNqPsQTFqdigVzMxhQc2pvJwd5u0LAM4I0jdvfqoc2jwKwT6psM4C8CAP/o0toWzFnjki8N8FDpepoeVgwd4sYTod4oDvTO+OYZYW9tYcYXYZaPoWAEYVoQwR4JOBYblhHvbNAg3o8MGl2uEcgjrmjIjLUouvALEbvCTOgIsiMP8PQn0g6jXH4L2PDMOAOHiEbPbPfkMFxlgEfHSjXDno8EancJnOGjkDCPDInDgEQBoAXPfpZn/MGuLPDIspmAqGcKUJvFkVJhQeXj+qujXDoC0dCKsI8GrJ0ZOGfDmrUGsbgLMT3KQV3v0DvNgCAbUr3mjJGEMOzBMYBvQjdqQZ0Z1qQSwDNmzpcZkTcd4q8RkdcdkYgCAIgH4G4EEbgDQptrFj2CcJgucI8eCdIW2MHriggM4A7s8WFs8QANQAlQ6QnVAjaRHgAsAQxvb344nQnwF2xglSEHERA9BYBxCby6ZUDImR7n50oEmICYl+BEk86aCUlxYp5UgjGnBbx0q4pqhN6iAd6byTIV5YDnapITEVA66g4olO5IiBYKFFbgAamVbUju4e7bH6Hwa7Li4alBzV5/6Xo6mlBgEQFB56bg5sQdCBY65TZpD9Cl42whxuLsD7BdYQ4O4R5vakEam1FUHRZvYVrRgt5tAKnBbakKmVY8AK7N5HCn6D7AKMmInAEeBz4e4badES7P6v4HAB7Rj+7NBs4eBIYRqpKICWkAGJk2kQ7gH/6QEOmh4wH5ln5fan5Bke6hlIzgDRhVZhaknWzh5wEbaDm1LgAADEM5GA6JXJM27ZNOwZsJKI2ykeCoVClQhZYWZpWp1poMgekpau52+G9wV6og/GcQ8pPQ2ZGAQJLJZOW5VCRevJ4ssJ1Ym8XI1QchS4oWF+N+X5+xAp/QQpZwT5Yp4xquVxMpg5WCD5W8CSnIIwnIqA9CveKp+usJh2TeoqM2oJG2pBh2wFUWUOLodwtQzgzgwCQqwJiOf2hFdqAAPAwg7vLr6rSfSYycyfmT4b+f+VvI0o8JOM4ARYrogBxa/Exc4LxQycHsiaQFGM4GNgCR4AAH49aGEvmCW+r0XcKdEO5pn5lSXN5hYWVEWcmn7kXgDWXWyjk66jEilIywUSlSmIWpIoWKk4XB6BlTli6SaYJ6k9nR5/aPD9nBXMV7KsVIiyXNwn75kHlP4v5xiln/6vzWFCqfG5U6XuKqyGWz4dBZVYVMUhHmE5IiXuHdn+7QIfa9ArjJJ1kNnWlgFf7cL/6OUh6A5tn2m9Vh6wEUkbb37kWfkwlSHvnq6UV8k9hJhWzjFiUzaUWTV3JoZIq3A/FSbEVrUQn+i4mLIbUDp7Vwn9BZnHVNICUbaXWAjbX0Lm5ArZZ3WTEPW2VvbjlHVPXoarltrwA8C3U9iWiZhowA3fWbXgCA33VVaThMyvkI6fXbzg0nXklfnUX6xZmVkeBmW3ZqlcJ/maiiXNrPan5gD4CxKoiNBghuoVpiXpkNCfWqXcDqWVCAlT6GF6mn5zXHISmNrdmO6NAHXnBM1cDOCeCVCeAeD4EGHH6mBc2kWwl2FjlC3Wwi3OAUZcUe6D5K09ay36n835bCWE2AU5hiHL7y1vbf5Mgg4jDjIW35KgUG243fnSz4Ffom0ZA8B2F5lO0baNK80OAzbu2NL22x6O2+35YVqbw3LNr2pmxoAU2uB/U8DLWThRbY2ECh1a0NBeEuzD7e3JUR0e7+0g2B1hYh1F0e5cDVCoAJCV2o2V3RUG1N0pVBUGnh382kGOHK1Qmq1qWS322D7d262c0R334+7vjGmAji6T4/4gA/5DXN1t35lD2mHD7B1aGOE+1O0l1/VB3zoe363dlr5Z1R0x1cwgjebDCYBJ3Dr/Wp24Dp2hiZ2V2D4OFr34Fb2F2V27130zYV313V0Ah11F0t3H3L0GkQOo3y0ZncK/0JHb3dnj2P4vBT1kiJKx0NmfVgGL2t2Nb82D4LXiliXgDwMOBVaIP5nIO3CVAvBPiCZkj+YlDHL1n/6yH+2KGYyag2FXAB3244Ndl4Py1ENLXE2kPyGl3wDOWj5fkr050SPJ2iGUN34PDbLiNLh8M8CUzSPm381r5v0KN33aECIRHKPEmqNULqO8OSNaNrzOVQVuW1IeXwWLLeU9DOBZ1kP/WBao5O0vA1m1BdINnsPyGcPKE8MZB8NuBgGCPdma1vaD6FlmMqPn4T0PFO1gNh1X4G3TVWORM2PaO/VmDCkwUbCeVq7SmaiymInIWeOGOg0+N1MaM2M4oWI5JeMA0SK+MG0dNCq+LtP1MOCdPMLdP83+PrG5qYNsMfaH2amqZKHcNePRMtmxP5nxPO1JPf05M4EP40P5KYL22ZM8n81W0dA21S637DWTn4MbZk2A2RFQ5G0AXLWHm6PO2ZkImA3Imj1V010gPQMJMzbPH/EFFk3GgONnXLhSYlnuifUoDI3abPKIDRgshIhvqE0cJ+nPAKpliOinBkwD4M0q1fVjpNLGMQrKO5OI2A22NFz2N4vQWillMuOVPl7pby3UsIuAiNk9CjMbbjO4Bzn/5Q2vX1VctA0ICsPA7EtI2kvcs8xnAxOn6a2JOhXJPUP7kHNCPX7ZPmO7lUDgCctyu3C0sEz0vFOMvuXMvt4VNuNuW1P81GvPUmuNOOsys0tepchEWThOvobJlevWx8sTbuvis8B9Peo5K+ubX+v4pBvvgVpCuXois3FivGtD6FAIjtxYMhvGs8AKv/YrPKv037O4Dqs7NpNauQMjUAsbakCkDnPjJ1sTWR2TjR0sOX0J0302MP0RaRYZ2EtkrOKLWH3FaNIUNbMxXGFKMTujUWMGtTt2OY6X6XMFk34GPlbpo5IROiA8BbJUJLJ/aIAFVMy5kzue76t5M7uFPl1aF7uLIx7t3YCwNIjTU8D8FlupMoNRCti+xTOXohMaNhOLPNrLMvAL2rPHMFlTlhH5bo21AXXivfM40xVRsDrkuZIfpy1yODuodkubvJPPvvb6tvvzo/P80avvjfsZKICJtg3Gv3WpvOtD7Zu90kvOt5sBwCPy1gNN0n3YdGVIi4fcvpoeDA05vseevN4FXeBkfZ2Duvvvtnuzuft7MvBUeEi0fJvZGMc/WT4ZuCZSv8Did+v5tcd6MQNgNUvGfRvXu9vXPNvhURDTXYh/FYlhHgWa79CyHpb+1VOA03bru8N+ehvTtYfKdk4WHI5rvyMaPBe5uopQJxGTi+fl40sJeyf36A5sX+GxepehuBYA4AB8XZfH4XCOWXOXQXeXubBXEOXaxXn57nsJ1JBQMz7twat95xZByAUTnW7tkj+95BA3adEZ35Uhkx1sZmYmg3PXNjE3iyCm2sk4wQp1bmW1i3M3mja3U3bik4VGp1fGDipmG3YW/Xydh3uw6YO3S3uAngp183M2waPA1QyA+h742ICGC3RG7AdxzXlCW1D3YWT3L3b3P49q/wk3G3mJ23UPxmR3V3i3v3Uh/B4ZYFf3nnqsbGm8BSNguOdGezYTVwDuX685X6y5zla3A7hP/Qyjg+c5a3iAhXgxBGG3yTJPc5ZPK5PWAAOqIBB/luz5z85X6DqNtROSlR3R7oL/OuT494zs91gK931ZUDD999rP8fT/jxyXD5d43oj32RA9L23LLzVnXEoVcKQLUszS8Lz2Dzb3z5eiLwD594FdW916TzL1z++Lbw5x56gbXJotsge3FYAWMNuw7iGUCozi8UeXgKO1oYFqeaH77KW1H0Aaqccuh1kqYzOxUWn2H8YXe8H+MoGZL9zeRStaN5GZOCwL7v2PHdfRgNu7uzZsX1gP2/zfZYSWIfn+mJJX9prZZzs5UdeZmEw/33sibu9++K777+j/78+ofeH1Dkb8gCb+D2SQrVIZTwkzF1cFo7wsl1oZu0f+VkX4dke2FtXMowzz1uANM4shw2b1wyoWof+zMz5yB/LdYfbYX63xf8ezuD20fCzhAPgsnPSXpz+LFZPsATULrN8swRfnogFA6gxYmpXYMlrzCwAdeGQHV/iB3f6LJP+S4Wfm9kX4488eWGc+vv2p45YHOg+M7kY2vSYcj6q/dfsel/RYBz0K/edB72N5e8GBoNJgdwLbi8C1+Xve3iVxhydYz67bTIJ2yb7dtiaOSJ+sh06BY9Gky/Gtovw0Eb1iBX5DMspUUFAVlBfbbxPxRsb3MRup7MLgLx4Ec9PezlCQQ5xkH3MO2jfTrkM0sGP1TBqg1gV73m54Vt++PAdjS3w4ztb+74e/gQNlIKVxWKAtAWX2Z7uYsBH/Hyv53s6kCse5AtbkKFDY0CbsMHd3vYLbjOVq4ZNaoFyFwTTokQQsZYHelvwVEry/2MfvsGcBfpQiUgguBEVqLREIYXQuIgNyHSNp+haRAQQ4BIS/I50bcZIuUWH5NCaiiqFmPUR0RNEBazwJYu0VWKYJNQlQGWOFhR5losAkWZombCRDLFuusw8/H0SPjVCJSrlcYq9TqI4EGixqRajgHdCnozgOuAkOVmAB+8uYRxEUuKR3TfwKCb8bYtMU3hfoTiU/SRrAgPqSMkedyZziW0hGPDjsagLAGAEgDQx2i8WRbOUC4BuBSAI/LAEvHKB9El44MGEWcQcABcGgAnIjtsiYoKdSOiDQjtNVk75YQR1sZwJ0TRE3FNaPIpkoP0wQCjfiV/IATqxXbnteUVBA4aPir6QduRdMJkrIXa6M4PB8AeEUNz+r6VIO9+FEfyKqavV6sUg+/FXk9LC46yVOQXGXllKo5AR5uTEY6MxEeVhRYI7HtsPLxVMDhgI90aqM9EQjfR86VHOqIPoDEUhiyDUUAVRy6CqQp3A+o0kqBk0MgZYNWFyB5D5Az4pI3sPkGqB4AcgA4VNNFiAA");var Ss={};Ie(Ss,{default:()=>db});var od=Ae(De()),db=(0,od.decompressFromBase64)("LTDEoKAgbB7BjAhtABAVwC4EtUF4UBOApgI5pbEAUARAGaLwawFazAAO0aA5lgHYA6TDmoBKGAmQp4sALazEfACYB9aPyIrZsJWmiba0RNxT5h0Adt36Vh4wGcBM+YtXq+RCUlTvN9jIgEGCr2RvYAFkT2pujYFr4hAUEhYZH2UHDe0nIKyvZqmDEA3hAoKADa1M65StQAujEYBGhEADSlFVX1jc1tHZX2OER8GMDVrt34TS3tZQPwkyjTfXPUskSI9mjESmM5Ew1Tve0AvlAgwAAC7IGIsugsKP4sfCaXKAAqkQ9YKLC0KFoQwgF2ut3uGCIAA8ME8mvw3p9vjIRsNYf9AcDQTcCHcUEosLRaNEACKE2jlBrvL5EfHk6JMFCIJRKFDaYh0okM2BeKS0NB8RisPiEIicBhESjbLCtJbQjCyglc8RlEAoAAKBAQUWiCX8gWCoU2aSZtEhBFiOBQ7GIKht2vs0XCm0xfCwESISllg0FtM4PH4dPsiAARvpgL4mXw+LAAthYHxotD3RgBB01QAhTZYbzQACeTNhGG+2HWfwBwxkAvNCKW3yNEULddp+qC5ebKF8sqwsKUsCiKBjsIA1jGAO4oQl1xCw9iwQbxvjp4CTkXF2lA/RsxAF5jbgtDlDOgButPX2RcyjUGjZOj0tIJwbDnrTZXMAmI9iIwXdKkfof0VQmFsIZEgNSgVUBPdfnwABGWU9SSQ1UiiJxYGrfEeTKMpMikBtwjtecYkQg0UmNKJyiwOoOhwyRUHGZRZVoFQGNZKZ5QALgUDB4HCGgAD1KHKRBgAAL2AOoAGoAFIKWk+wAB0AAY6lECDqG9VJCOiSSUFgyCyinQ9WObEVuFjWBshGfgWhQYYlBowEWP2ZRGk47jeIElAVBUYSxIAQWAAAtJTgAAThUCTJJ89SmOcy8lFEP4LWY1jHKnVj8i4DBylYhpXEHWNLQsX9/2fJRKHw7TZVY68PC0O8bDsbgkvXJdsOw99mVUJVaEoXr7E041qqc1jZWoMRHPsxyOI4lFsD4FpZo6abpogYgMG2EUSjKYhxXgWl8D2owDtOCAgA");var Is={};Ie(Is,{default:()=>fb});var sd=Ae(De()),fb=(0,sd.decompressFromBase64)("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");var Ls={};Ie(Ls,{default:()=>hb});var ad=Ae(De()),hb=(0,ad.decompressFromBase64)("LTDEoKAgbB7BjAhtABAVwC4EtUF4UBOApgI5pbEAUARAGaLwawFazAAO0aA5lgHYA6TDmoBKGAmSFS5YgH0AtrAAmaaETm1oibinzDoApavWbt3AM4DiZCkSghgAAXaICiBSjkoLGFn10nFAAVAAsidBYUWFoUWhx7Rxc3DxQMIgAPDB8/fkCQ8JR4WD500ujY+PUIJNd3T2UsWloLFAARJtoAbQBdFCCwiMbm1qYURGVlFCViFGGWtNgakGT68YJLFAAFLl4+AEENiwkkVFo0PkZWPmlOBiJKOQAaNMyMF/mLF7dLcRR0bCGYgWIgYORYCxyRoWRAAI3UyjkTE0CTkvjcGEofzizDichssiIL3RBHeKD4HiJcX4ENCKH4EH+/3SWQAXNwFIgMPBQjQCXYsQBSCwAKkFlAA/MKRV0AOQAHWoPSxlAEwFEWLlip60sFoglYhAXVwXSciFa5z4WNZ9NKRG4RAIL346QdTpy/m4zrtbp6uB6jLmSyZKDgp2iLD2yDkFIUEXwsfsgf+jgAwiUAG6O7IYQrGcmUlDsYjxDL02K5x0RCHRPj2EOJvQFuPsixoWE0AB6cjkqvVPeoL2ogoAjGIoCHHChU1xfI7WNMVGoiK03BFfAQ0Iw0MQpgB3LC5tLhCg+WA7+DVm6yzg8fgxykAemMy8fsoEyZQU8GodgE0d0h7iw6SjKENZjLKL7qBYj63nsD5xm+xKwPS2SIOw7BEG4q6tLK/JUNQUErrBuz3omj5VEQYjvp+36FHA/4EOM0AWCh8DEFyK7HhElEoJBS7QSRd58AhRACFwiCynEBCwJ4N6kSJ5FEc+AkaJk7DMBgVgSbKtEgO0KGICgsIMAA1j47a+IewglBUxmwEePKIAEXG0LiyCoK4uatJkl7sNkREwfAs7pCwsDfKBETBWgc5hbcwZMlOoTmqhrSsReXFcnxrjwKZOjEaEsC+CpJjEdFsWsI+6FYOJaCSR+IZNOslgCOVoWsIoqmrnwUx8A5zZEKy8Q9V2gWPm186wI+YjcXwn7/E1iZDfwyijV1j5dJ2j49MAAAkM2VnNIaTsAfFjXBZGUlJwAAHxnetF2KU+RFyOpmkWLpx1Mo2CaFgIAgoNQJXLq9GQaaSFjUPNKBED10P6fxpUwY9omwVyoSPkwFEJNdd3ycJqPKV5GNY5Rn3HT9A2tu2a1I4+lCbdt6rTUOo7A+o03Yv8sPKBOiUgAAkhWhTEygyVpdoFjhK0/Coc6AWIAAnsxrFi4gWbjDcbywxY1x6cAlYoAAMgAyvSrR9dk6lEFcAQAwAYgwTBxXu57QFMyCq8FsCwrCAHOcr2t8LrJT62MtVGQHe5KwDYQ1gAVjF2Qblg7AyzmKHcChB5HobyhEPQajZAABhKEfF/rIJuDyRZcqFNyy9QRt1dYFzYHGAjE1DJ3AD+IHZF59dFOEuUWu5QYYOkvWFogtChdx1IUqgFiS6E+s/sQdyXnG5SD46NyHR6qeRaG5rZMoDlTz49o7xgn6LZSrKctyvLUF08ryttm0f0zgoCJtAgf49AANT7VELNaGlMlqWBpsOf+nZAGfxAftIc44Qw8z5gtWIjYAB++BmBYCjNAUSmter9QMAICEUIIRwgRJQWg+IZB2C/CgEcLx8IaBeloHQ4DDrQwoRMRE8xKCfGJBgDELxhq0heImLmMM4bczhhgiAxAMA7huAAb0DJvbQl4mw6PuE8CAABfCAQA===");var Cs={};Ie(Cs,{default:()=>gb});var cd=Ae(De()),gb=(0,cd.decompressFromBase64)("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");var ks={};Ie(ks,{default:()=>pb});var ud=Ae(De()),pb=(0,ud.decompressFromBase64)("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");var Bs={};Ie(Bs,{default:()=>mb});var ld=Ae(De()),mb=(0,ld.decompressFromBase64)("LQgCFsFMBcEMFgBQSTFAYwDawM44ASQBukAdtAPoAWspAJppAE4pgBmAlpJnYSeTgD8fMpRr1GTAHTFROVmk7deAe1IVyVCtA7oA1sIDeAbVIBXcACNmAXQBcbM6QAUs8nYBy0KgBVdegFF+aAARWDgASgBfBVAlHnw1Cg5SDmhhRxcI2PjVdUwVWDoMp2dsxFQ4rgSk9DVOAHMzJnCOWvEGyGL8TOc6cNg7AGF6jiaWnTUhjq6wyJzq3iK6CiZIcBVoSGTyZjZYdEgSrIXlfGWKOvBwWjohHtLy2KxcAjcxW8kKTA5LJAL0LBMPhxAxmPgALz4QwxZAVMAAB1gLXA+B+lhE5Gon2YSFBkikF3RkIepHQkxc6IihHoSFiSJRaN+b2C2IkzGMNjxOOkRN+LSYXAIUMy5LalOZ1LIdDpiDW0GapBBPKAA=");var Ms={};Ie(Ms,{default:()=>Ab});var dd=Ae(De()),Ab=(0,dd.decompressFromBase64)("LQgCFsFMBcEMFgBQSTFAYwDawM44ARSYAmKYAZgJaQn4AOATpQG6zST7oD2AdtA10wB9cLAYBrSA0I1iAOm58Bw0RKlk0VWfSat2nXv0FCAFrB7FMUgkXmKjwsxasMcG0F2ZTMXWMXzkAK48ABRwDADmMABccABGVgA0+DhcgQzokLGwCZAAlNm5SD7osJgytAC8+ADeAL5I7li4BCGQAB6w6NB5FXaGyiJikgxItgoDxqoj+NX1+CD4kOB00ACe+HGB0PjBlACOgRzxVrs4kP64+LCEw+rIiKgY2Hh9E0rGTpbWY7LvDqZzN9XLNag0Hk9mq82p1ur1xvZBlw6O4tLRplI3oipndRhCwFDWh0uj03sQaDBIEJkfholjJsJkajqLQaQAiclWdhsxqPMAMGDpHhkinsakoxDjTmU0FBHjdSi8EK9SAWXkIhmA5zWOTS/TVOUKpXhKLQZLiZLMPJIfD4E0wADa4gAuqCeJRMEhVaR8WhCfgYST4X9PFIAO5MMU0ukaj6MiVPNH+dmhhgRyjc5naYhsG7mNa8p4C6BCt6p9NRiXjcuRjgG4JG0I8SBhlVqh6xgFfFw4OQ1jN1gIN6CK0L2s34C34K02u1iU1O13VbYeiZ0NYhZi63PWxDewsEl5E2Gk8aUHjMLiScW0+lx8VZ1l0fBs8+XyQ8vmaFn+cjdIehMw0T5gU+YHmgxalmeF5XlSTKSn8b6wbKw6jiEf6kvuHZ/NijhAj2chIZIKHyiOxrzjA5qWrutrjouoJbhhYQUdAi67lhTRHgGxJwm8sB0HQ3o3jGOGavBiY/vg7L8YJFifhJ2a5tcPBrA6zrgaAkEMMK4wyUJ8G6QJ3okY2IQ5nAbY+p2gzdjqekWCZZFjixVHTjRARcNIQjJNAXBCPZ/jnvQsCUK4m7bhZ+DEFws60TkViETw5wMNAzGRI6LrJCumBrhuvn+UZFh5O5WEcV++ACug6Q4CwxzxRwUDpZs2z4BmFWQIE5wEOOc65AG0WQAQPBcDs5KQHQ3Drq1PRyPgADqJiqnO6U7JQQ0jXaXCbBwAqdRcUnSOAnnHE4Gi2gATL1VgEGIxxbXEDVSFExDJIoNXktInXnhEuwjjljVRLNC1LdAi0Cq1BCKOQmCUP+XDkPgl2sJgRw4MkNzI0cAQCOAdqLSkaQZBwYYep65X4CTwr9iOPA/aDHAdGtNM/ZjkCzQAKmDHC3dcmCpAYcYpPwgTdOkg3XKwHr1R50gdPwNzIlIbCjt1Zg7GGaS0MN0Bndt9BcHglB9cEH34MNDCiOUAM7YE13uFEzZMOg+Ds+4dBiLAuM9a7X6gO7DCewT6SZFdkDuFpwo++MtiOWh47JKkwf5Es7ZIBHfRAA==");var Ts={};Ie(Ts,{default:()=>yb});var fd=Ae(De()),yb=(0,fd.decompressFromBase64)("LQgCFsFMBcEMFgBQSQG1VIBKQDY4PYAEAzgMYBOAlgA7SGQAe1B5k5ANIZQGaECe+AK6FYrQgXwBrSgDsA5oWhFB1OeVgATSPyHlC4fBsXLi26AAttBo3MGVOlaMULVW0aHxKVwzSADokJAAVPmpKUlg8TwFhAHdKPEJzWAA3bWJ8KAtZBRxKSUgALkIAA2ZYPjY/W0o/HEhuaD9NDQBvPw6AXxLAxABBRJjCeMSZSEgjJUINfAdnUmT5bUdjQqQSjZxBBERrAH0a6pg97nUoE4JYgApyyvIASmaNNo6/TvWN3r6ZI258PQARoJ3PgZM5HM4AFaCYh0CzpWBQNaIDYlLY7faHOTHIEgmQXfDXW5sR4tdpdD49ZCIACSdGI5iEOCMAO0sGcxG8vhEzm4siMsB+hFY5VI/iQ308+HhegAjoJILDKKDnL52dpuOMcIRTuNjDzJIRQYpLPpDBocklcNQdf9BOAAogALpOlBgUg4dnOazAGpIAgRbWYuyEAC8hFaSEIhFxSnxsL49TDhAA5MHKHtY6CU+wozqzpA9gmk+GUzJQXsNOo5HJYAD6icCymkO9qSBgKBqKJES5PXdCAAZbYABT7bDdHbcgnIMkH2wA4nYAKL1KAyOgAYiCpvTMeBcZ1lyQ3EEMlI0GVs/TR2gmf3Fe4lxuY4e9B+vXbne74F7FTYc9gUc/3ICdQCnGcAMXSgV0gNdN23KxDAOENTkRDUj0QE8zwvY1r2xW9UPOR9CWfYD7jfDRenAq8kJqIA=");var xs={};Ie(xs,{default:()=>bb});var hd=Ae(De()),bb=(0,hd.decompressFromBase64)("LQgCFsFMBcEMCh4mAdQJYBsMAIDGAnSWaSbWbDNAZ2mwHsAzbKugVwDsATbTyBtdmmho67KgDokIKcACqVSFWzQAFqX4ZI7WFGwAHYiXzt6TAAYAiDZAOqL48ReD3xAaQf26Acy8Wz2AHc1QmxXbGplNWwAN1h8NGIRE3ZWcAAjSHxJZFADfB1sa20oAH0aePYvZmgKrxlcuILY+MTRJQESL0z6vKa6DFTIEt6oIwB+Qow6Yh7G8GxwOk40fkyqYbmYTInOYlhxAGU2LgBZJZW0TIBtAF0AH124Q+POM+XV/HrCaFZjHj3nhxOAARPgCIRJW7wBgcXDCUTMF4lZoJeFiAAURR0Q3KAi8ABoYnFUUkqITov1Bht8qNMoTFu9Lvh1iMtvgAJTYLScRDIdBYPCEYikciUGimRFAnhgwRopQBIQqGKU3Qo1pibLSZDyRSRdSYLTY/SGTImRjYSzWWwqFxOFzuRziby+fxBTKkMIRVSkNVo7ApdKZTXABo0woG4o4mp46q1WZh32k8LsTrdHIjBYCZEqyATBhTGbpuYLWAAD2zAygeYL0HjBQZFzW1Ox43+TyOQLejfwtweAI7p3OHy+MF+Jke+wHIJlENEUJh7DhSUlXGRxPV6wVqgrVMTbUxEexZWjlXJ67l9KzFMrkHpZZ3UHpQ6ZLM2Rk53N5YAz0AAnnohlZIw20nF4uw+AAVf9IDreZrypcBWAwYQ9EoTJm1pfBJmmWscm+McQMBQdGW6BclwReDSkQ5C0FQpl0T/ACMLZckcxKaiULQ/BmPfLkuHgIA===");var Os={};Ie(Os,{default:()=>vb});var gd=Ae(De()),vb=(0,gd.decompressFromBase64)("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");var Fs={};Ie(Fs,{default:()=>wb});var pd=Ae(De()),wb=(0,pd.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGkxTQJ4AdJ4ATWOAOgDFJSBXAJ0goBtYBzAZzQDNrp7JEXFh3gBeeAAoA3gF8AlGiA==");var Ns={};Ie(Ns,{default:()=>Eb});var md=Ae(De()),Eb=(0,md.decompressFromBase64)("LQjaDUEsFMHcAIAiB7AxgVwLbQHYBcBDPSZHAXQAoALPPABwGcAuAehdkgGtIA6AMwKo8yAE4keqZJhYAVdMLEEANkwCyyACYB9BtFqQcAcwYBiGVWg69xI1rwBPOpbojkTkQ4CUAKBDAAAsqQBAzwGkQEPOoaAMrWBoZx+kYyjtDwFABEDIQe6HSZngA+WSLo+JDYwIZKyABGyoUlmRrI6HVK0MC6yYZNpeXEVe7A6Loihd6+YFBwSGhYuITEpJQ09MxsHNz8ggriktJy+8pqmla9DD5+gUrBoeGEPACCOPbRSTaGAAquwg5OMIRKKaABCyGQSk+CV+yH+aSKj0i0QAkvhoUZYfCnIjgdEUO1Ohifn84QikSDYngxEZiViyTiKdEAMKQ0R00kA6BTVrTYAQGAIFAYbD4IgkcjUWiMVjsLi8ARCUQHKSyeTK07RC5fK58/yoJQhUIUaAADz2niBTw+8UxnLSTAp9K5oJC3L8ArmwsWYpWkvWMq28t2SrEyAkquOGpUWp6OrMFi0VEgGg0uC0Ljc0A89muIH8fBgSg08GTqdwAH54HUIZ0CDg+Z6hQtRcsJWtpZs5TtFftw4c1ScY+c4wlTOZLKPbFyM653F49YXoMX4FPDHY0lbkZpicTUk5vLVUMot1obb0ALwAb28AF9vLgNDzkI3Zs2RUtxaspRtZdsFXsyr9pG6qKMO2hrqYNaQt0tqGHmAQGkaGRmhaW6UuCkIcnCDLQI6eI7nBzppIuRYlly8CZNBSiwb0mSkcuJZpgI6BKHgWgAG7KOg6TUdA9YMSufCiKg0DaFxSg8VWfECUeJ5ImeYK1sS153g+OBPt4vIem+8wfr67Y/oG3YAaGKpHKBwTgdqY4mAYeC0V8CH6oaDDGqhQiWkymhong2HYnh3mxER9oHjcS4rhRmT2Y5CT0eFZFhNALFsZx3HpPZABsAAsgklpgBiVFgaWSdAVZZblCWMfAmAEKaRWYCVUnwBVeXwMotSwGJTXQAw5X4DloBkIeaDyREikaJhUJwap96Ps+r6CnpPptt+AZdv+IZ9hGFlDmcEFwaYrSEl0a7OUhbkoeannofibQdNA/m4fh1qEb0xFhfmEXkZuLT3Z0sVGPFX2JcxBCsexEk8WE/3uiD1UFTgDU9VWx0PW1tX1ZgxVQ2VMMnW1HXIF14npX1+MPUNI3Hkop7RFNKk3nNGkLTpS3eq2X7+p2f7Br2QE7YO0b7TZRimDkNKGID8F6hd7nXXgXkEVSktPVyL3bsF72hXDATffAUUSwk0vA3roPJeDqW46u1IJITSidVoHT1pw0m1vxDZVSu4PCHYYiYG7kIe/bnXdbj5NG0YVNybTCn08pM1M+pmnaTM7Mtp+fodr+QY9oBYaC1GYEi5BJiSLUIjS+drny2hQWshXasOkFTefWb1VReXogm21YMQz16EN6I1NjYQE0M4nanzd4QA=");var qs={};Ie(qs,{default:()=>Db});var Ad=Ae(De()),Db=(0,Ad.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGkxQGdKXgDICusAQgPbnTbQBOsADgHSwDG0AlgG6SLjkATbBjDQAng3wBvANo1aHAHYBzALoAuePKXKAvmn5D4AXnhT9qIA=");var Us={};Ie(Us,{default:()=>Rb});var yd=Ae(De()),Rb=(0,yd.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGkwAiB7ArgEYA2k8ADgE6QDGAlgM604B28AZkTrNLcwObkcvaPGZ5wBSBXoA6eAFlYAT1E4Rk+ADlYm+L3IU1apWUiyMYWEVqx68ACb5ipMRKkXgAZV58SBmgxMrBxcPPyCwqLiktJyiirMavAa2rr6lEbQJmYyHqBWNnYh3FFuFGgeABzJtCKMfMyQ9nrM0JB8UnIASrD8ZuyG4PDAAIwATNXQOPDjAOwANPA4FPAA2sBjAHoL8FuzowC6eQW2LdDVwu3uqJjVBLXweMz1jc2XHRTdvR1Fg/AADPAprsAKwgxbLNb/RZbSqHY7WU54YQXVpXco3EAjABsNTqtAaTTO6K+fV+OCGwAAzGMAGTMAj0MgAblm2Mm0xp9MZLLZO0h6y2I3Bu02wvhmOA+URdmEOOJHw88vuIieLyJ7068B6ZIGFIBQOm2JB3KZzJBVJFAuhopxEsw0sKjzluM1GMwNLx8HVbzRH1JPz1lLpDLNIwALLNTSzw5UqdHmdjY4bdgmI1HQzG4wmk/yVoLNlSRjDCyN7ZYZWdPW6PJ6VY9ngTXgqtTrA2w/oDgeGE2MAJw9zPMvvYjM85n9q35m1bGnlqUnOzI1rVv3XD1jL0+lufbXffod/UbNORhOx+NDpMc1ND9Nn7OXyMQ/MbUslovzx2nSI1yV1h5qk2GprrubYHp2KaDuO/ZQWaI5jmak7PlC75jJ+i7Oq0O4eEmW5Ab6bT+giTrCLhv6YLh9aAYSBEksRSKkeGO5AA===");var js={};Ie(js,{default:()=>Pb});var bd=Ae(De()),Pb=(0,bd.decompressFromBase64)("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");var Qs={};Ie(Qs,{default:()=>Sb});var vd=Ae(De()),Sb=(0,vd.decompressFromBase64)("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");var _s={};Ie(_s,{default:()=>Ib});var wd=Ae(De()),Ib=(0,wd.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGkwAiBXS9oB7AgC3wGMTYA7Ac0gGcDiADAB1nIGtZ6WAaUvgBmOauWgBLQtVgAbSdACe8QsPgsATpACOOSdoAUAShbxKNegwB08AOplq8HA0l14sAEYNCcnNHwOaBIGQWDA2GD4BjhNaCZIoXhwQgATeE1CQmhbAEFU1MVpWTk5JUEWa2szSSZChi85SHTYBPggkngAN1hNSUbIWwAVElrkyBomYMTFeDHqbPbCBldPJuZ4OUJYFs1PRU1elWFJJqZhTPBVf1dU/HDktPhC7QlCTSVrDBBv4AAxThEPrEVKERjwEiEADukC6kE07UyXUkdwIUOIUNgSimxC2O3gJzOBMuqnCCJSqQYAC5fr94AAqeAjfAAIj88kknhZzwMkDeH1U6ge5He+ApcyYbnIfju6TcSQ6OPgngoZG4zQJ7wJp0Ygh8c2gEqWK056yIGV0+m02qJLz50DKxMIVzJkD1OEoHimZHgLP8p25hPwnhULjctA02j0vMMfqkchZpi+qEwDPgfxwcTImhS2kEszGbGWqzNxCjVpEOvOJOy2celOVodc7i0lpjLMQiApwFkUE71iDicqtJTIFb0aMpnMNHgC0NKucDA18uFMh8TXzTlhkGohoUMR38KYWtSmfDHkjkBSAWs5HkchMlSZPtE4ikMngkAAHmx7QlqMcOobDu6RQoonQPJU7JmN+ATUK4MjJpgoAcIcVwUr2+AxH0dC/KA2jQJmThiFwCxQtQaCvhIxQWhOkCGBhsBQMYn7UKkaB4dKrTnIC7zSNYHDcLwkAKJ4eEnCJ6R4rK8CyQQAxoIJPD0PAAC88AAN4AL4cagBFEe0nDKZAQA==");var Gs={};Ie(Gs,{default:()=>Lb});var Ed=Ae(De()),Lb=(0,Ed.decompressFromBase64)("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");var Ks={};Ie(Ks,{default:()=>Cb});var Dd=Ae(De()),Cb=(0,Dd.decompressFromBase64)("LQgCFsFMBcEMAIDO0BOBLAdgcwLACh8RhCQAlGAVxQ0XgQCNNYUBPJVTLeAYwHsM4mTvGgALSPABusADYVItAAaSAjIoA08ZQCYN8GNwB08AA6xuAa0gATeAAoxsaPDSJNiSOlloAXjZcY8IwYzGwAZrwo4ACUdNx8KNbC0Lwi4vARUU7s6NhaYeDQivYeEgDaAOUAbIYALIbaALp2fODgsBjWAFyQAB7QkDRo/IZysIbWvNwA/GUARIPAFIgA9ACs2ivtGBSyhqLQ4DIrNfXac43RsYYkxHhEZQBqaJAA7vCT3BRQAojNrdtun0BkMRmMJlNZgsMEtVhsth1djJ9odjiZrGFgMhclhDGZLBdordbqAzChYOAMoUcpwSWSKVIVPAadgAD47cD0Tx05gMyTaaYsrDs75clA88mUwzSoUiznc+5gFCUahCoJMVgkjC8JKIbjMaz4MIUDDcaDDQLYzh48wWOwFaCaVRO7SaaWGWKDQ0ERV3IjkaBUGhpCSIXwSXhhOhq5WICgyc15MIoXiUxRW7A2yzFV5oMQh+BYNCSQYZSLtZwZriKB3FOyleCVU4Nf6pwE9fqDMNg3YQmbzRbLdabbZIlFHE51BqE67E31PF7vT7fQbQP4tNsdIGd0EYUa9z5QwdwkeIvYHCfozFVrMWMN+Qlzoik3mUh1CknKwOqzADLAK59tV1fVEiNE0zQtIVb3vSB7UKT1OnwJ8yBVYMxAkaQ5AUUxbX8TA1XMBIkjyFIC0yCs1RrQo6wbJspyaDc2i3DsQW7PdwUPAcYSHeFR3PVFJzOGd4BuX1bgXN4PimFdflbJjOhYrsLX3cZOOhWFhwRHZ+MvDEsQ4TMTXxCxHzE30X0lKlnA/cz6UpWhmRs587NMXhEEFX9IH/cVzK/IM6AwNh3U/VCAj/Tx4EjMIPGgLUdVcEDvWNU1zX4KCjNtODHSQTQTDchDvSAA==");var Ys={};Ie(Ys,{default:()=>kb});var Rd=Ae(De()),kb=(0,Rd.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGkxQGMA2sBnA+AGQFdYB5AIwCtJtoA6awyALnjIMgCcATWHAxgAZgEtIufvABusXOJnUA9ityRYAOxFYJUmSroNoiLbCikKNeoyZHbp81DRA");var Vs={};Ie(Vs,{default:()=>Bb});var Pd=Ae(De()),Bb=(0,Pd.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGk9IA9oCcEAzAS0gBsATAZ3gDsB7aeM4q6SC+Y2+aAC0jwAVlXo8K9AMZUAdHLQYwksrCo0AQmQCukAA55u0AKK1oxaAE9FwUCXKd6ByKdhmxAfjpbwAI0h5rW1JKeDxISWJdSE82A1oAc0C7EO4AN2doRwtPAG8fWDx3AC5abz88ABp4EjJ2PCpigEladNMsgDFiWv8AbQBdeABfJODOfMKvX38R+2quuob4ZtbMvAtO7rx+mZDLKM8AIm5dLWgDgB8D+lOTs53OY9PEfWJHc2z4A7JIQjPLg3ifDuqBANmSDhuTxeb0sh2+vwuBwBQIO9zmmxi+G4iRBYHB6LqiHA9Ao0U+AHc+OZyKw/gcfCpJABrFhsVG4sGjeD0dJ4AykxBsWDMwXEABeZNKUwCHKCszCAEcdGxEDUFp4ADL0eK04iSDZ1bay/GK5XQVV4ejgRA+LSEQj+RY+ej0b6wWho3QFWBQdXwAAKlviBHA4FgDMgAGUorAmf5/d7fY60bBvnhzV6QzBHZ5A9qQ2GI9HILH/ABBNPQBNZhZoySuxyeADCDZloLlISFblomLiOMCylUGm0eji0CbxDwki05hbtFo4W7Cllg7U8E0Ohepjn+Fd6kgfFgqVebbxXPrtAo5lePfgE6nM/HYivS+N58n0/MiAvL5vzY/j5zr+YhomqObwJGxDxLQqZGu2+KsIgHjwM6rolh6b6zAU5h8L6erfs+15iIsZYGPweGSC2vjcK4jjVj62b1GipIRKSeAEZeRG0IsAAi4TEGxVE+DRqz0UmTGYSEEQPl+zjht8iBXlQ8lkqhboYfB74yeaYSwBQiBhKIWhTpATouupdYAV+hnXCZBklvpxKkp4pIkAusgXruZA2geR4njI4DcNiikGGQZAyDZxmSJA9l6USJKQGiun6Ww9C6FE+n4LA3CeGp6Foll3CCpk6UcKK0Gpp4kEVWQjQ8UlDkWlaiCFbeeXumiVDOJl9AtQQOUoeZ+WSZw0mfuaTkxfQhBIVEBDdp4hiQPE/jwAAKlSNBUHw1whH4vACPAc3AHsgiudwpkoacB2uAA5DQh54BQlnabF+mHpeHHsKYZloR1I3wGNj6IB9+nJfFznwOd7kyJ5lreX4h7Ho4MjcF16bTADQNfl15pCiKVDiqpQ3/Zpsz40yX3w4gjx41BMFkFV9OpnVaJaF1BFkI4v0WQD4OWs6eNwNAPPDWTITg1zOpsHqouk2eWGpNlKgRogUu6pISGQnTNVMzVrMA5kcDeerMua9c0C3OVDN6wzBvi5wR7KypHGxFokjdlrltPITusQcztX1YbjCpq7+Du57FtW77Nv+/rQcO4DVnmp5GRUG9ENktDpmw2IXk+Uj/lZdxuiOOafi1GiUc+wHtsswnCtScn35cxzMeVXHdsN5yszYzpjXt4znf1w1+nVzrsfVV3VcEAkU3a9bHdTyPAPBpAzhe9HtfD4HaIMjom8137y+71jzdpRv8SuMTf0aY3o3N+DXXcY2g23y943PImjGLHmwY+oWb4xZSx4HvONMSP80BAA==");var Ws={};Ie(Ws,{default:()=>Mb});var Sd=Ae(De()),Mb=(0,Sd.decompressFromBase64)("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=");var Hs={};Ie(Hs,{default:()=>Tb});var Id=Ae(De()),Tb=(0,Id.decompressFromBase64)("LQgCFsFMBcEMAID6BYAUGkxTQJ4AdJ44AjAG0jQGdoB7AJ1gHNCBeeAbwF80g===");var Js={};Ie(Js,{default:()=>xb});var Ld=Ae(De()),xb=(0,Ld.decompressFromBase64)("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=");var Ob=[Ps,Ss,Is,Ls,Cs,ks,Bs,Ms,Ts,xs,Os,Fs,Ns,qs,Us,js,Qs,_s,Gs,Ks,Ys,Vs,Ws,Hs,Js],Zs=Ob,Cd=["../luals-addon/factorio/factorio-plugin/arg-parser.lua","../luals-addon/factorio/factorio-plugin/command-line.lua","../luals-addon/factorio/factorio-plugin/remote.lua","../luals-addon/factorio/factorio-plugin/require.lua","../luals-addon/factorio/factorio-plugin/storage.lua","../luals-addon/factorio/factorio-plugin/util.lua","../luals-addon/factorio/library/core/lualib/event_handler.lua","../luals-addon/factorio/library/core/lualib/meld.lua","../luals-addon/factorio/library/core/lualib/mod-gui.lua","../luals-addon/factorio/library/core/lualib/sound-util.lua","../luals-addon/factorio/library/core/lualib/util.lua","../luals-addon/factorio/library/data/feature_flags.lua","../luals-addon/factorio/library/data/mod-settings.lua","../luals-addon/factorio/library/data/mods.lua","../luals-addon/factorio/library/lua/builtins.lua","../luals-addon/factorio/library/lua/debug.lua","../luals-addon/factorio/library/lua/math.lua","../luals-addon/factorio/library/lua/package.lua","../luals-addon/factorio/library/lua/serpent.lua","../luals-addon/factorio/library/lua/string.lua","../luals-addon/factorio/library/runtime/LuaObject.lua","../luals-addon/factorio/library/runtime/blueprint.lua","../luals-addon/factorio/library/runtime/deprecated_2.0.lua","../luals-addon/factorio/library/runtime/storage.lua","../luals-addon/factorio/plugin.lua"];var kd={name:"Factorio",files:["control%.lua","data%.lua","data%-updates%.lua","data%-final%-fixes%.lua","settings%.lua","settings%-updates%.lua","settings%-final%-fixes%.lua"],settings:{"Lua.runtime.version":"Lua 5.2","Lua.runtime.path":["?.lua"],"Lua.runtime.builtin":{io:"disable",os:"disable",coroutine:"disable",package:"disable",math:"disable",debug:"disable"},"Lua.diagnostics.globals":["__DebugAdapter","__Profiler"],"Lua.diagnostics.disable":["lowercase-global"],"Lua.language.fixIndent":!1}};var Si;function s0(){if(!Si){Si=[];for(let r=0;r<Zs.length;r++)Si.push({name:Cd[r].replace("../luals-addon/",""),content:Zs[r].default})}return Si}function c0(r){return{name:"factorio/config.json",content:JSON.stringify(Object.assign({},kd,{bundleVersion:lr,factorioVersion:r}))}}var mn=Ae(Od(),1);import*as ft from"os";import*as be from"path";import{execFile as Nb}from"child_process";function Fd(r,e){return r.match(/^~[\\\/]/)&&(r=be.posix.join(ft.homedir().replace(/\\/g,"/"),r.replace(/^~[\\\/]/,""))),r=r.replace("${userHome}",ft.homedir()),e?.[0]&&(r=r.replace("${workspaceFolder}",e[0].uri.fsPath)),r=r.replace(/\$\{env:(\w+)}/g,(t,n)=>process.env[n]??t),r}var Nd=class{constructor(e,t,n,i){this.fs=e;this.fv=t;this.docs=n;this.workspaceFolders=i}async getBinaryVersion(){return new Promise((e,t)=>{Nb(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,i,o)=>{n&&t(new Error(n.message));let s=i?.match(/^Version: ([0-9\.]+) /m);s&&e(s[1]),t(new Error(`Unable to read version:
|
|
142
|
+
stdout: ${i}
|
|
143
|
+
stderr: ${o}`))})})}async debugLaunchArgs(){let e=[];return e.push(this.factorioPath),this.fv.docsPath&&e.push("--docs",this.fv.docsPath),this.configPathIsOverriden()&&e.push("--config",await this.configPath()),this.workspaceFolders&&e.push("--workspace",...this.workspaceFolders.map(t=>t.uri.fsPath)),e}get name(){return this.fv.name}get onlineOnly(){return!this.fv.factorioPath}get factorioPath(){if(!this.fv.factorioPath)throw new Error("No factorioPath");return Fd(this.fv.factorioPath,this.workspaceFolders)}get docArgs(){return this.fv.onlineDocs?["luals-addon","-o",this.fv.onlineDocs===!0?"latest":this.fv.onlineDocs]:["luals-addon","-d",this.docsPath,"-p",this.protosPath]}get docsPath(){return be.join(this.factorioPath,this.fv.docsPath?this.fv.docsPath:ft.platform()==="darwin"?"../../doc-html/runtime-api.json":"../../../doc-html/runtime-api.json")}get protosPath(){return be.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?be.join(this.fv.docsPath,"../prototype-api.json"):ft.platform()==="darwin"?"../../doc-html/prototype-api.json":"../../../doc-html/prototype-api.json")}configPathIsOverriden(){return!!this.fv.configPath}async configPath(){if(this.fv.configPath)return Fd(this.fv.configPath,this.workspaceFolders);let e=be.resolve(be.dirname(this.factorioPath),"../../config-path.cfg");try{let t=mn.parse((await this.fs.readFile(nt.file(e))).toString());return be.resolve(this.translatePath(t["config-path"]),"./config.ini")}catch{}return this.translatePath("__PATH__system-write-data__/config/config.ini")}get nativeDAP(){return this.fv.nativeDAP}iniData;async configIni(){return this.iniData||(this.iniData=this.fs.readFile(nt.file(await this.configPath())).then(e=>mn.parse(e.toString()))),this.iniData}async isPrototypeCacheEnabled(){try{return(await this.configIni()).other?.["cache-prototype-data"]}catch{return}}async disablePrototypeCache(){this.iniData=void 0;let e=nt.file(await this.configPath()),t=(await this.fs.readFile(e)).toString();t=t.replace("cache-prototype-data=","; cache-prototype-data="),await this.fs.writeFile(e,Buffer.from(t)),this.iniData=mn.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=nt.file(await this.configPath()),t=(await this.fs.readFile(e)).toString(),n=t.match(/^;? *disable-mouse-auto-capture=.*$/m);if(n)t=t.slice(0,n.index)+`
|
|
144
|
+
disable-mouse-auto-capture=true
|
|
145
|
+
`+t.slice(n.index+n[0].length);else{let i=t.match(/^\[other\]$/m);t=t.slice(0,i.index+i[0].length)+`
|
|
146
|
+
disable-mouse-auto-capture=true
|
|
147
|
+
`+t.slice(i.index+i[0].length)}await this.fs.writeFile(e,Buffer.from(t)),this.iniData=mn.parse(t)}async defaultModsPath(){let e=(await this.configIni())?.path?.["write-data"];if(!e)throw new Error("path.write-data missing in config.ini");return be.posix.normalize(be.resolve(this.translatePath(e),"mods"))}async dataPath(){let e=(await this.configIni().catch(()=>({path:{"read-data":"__PATH__executable__/../../data"}}))).path?.["read-data"];if(!e)throw new Error("path.read-data missing in config.ini");return be.posix.normalize(this.translatePath(e))}async lualibPath(){return be.posix.normalize(be.resolve(await this.dataPath(),"core","lualib"))}async writeDataPath(){let e=(await this.configIni()).path?.["write-data"];if(!e)throw new Error("path.write-data missing in config.ini");return be.posix.normalize(this.translatePath(e))}translatePath(e){if(e.startsWith("__PATH__executable__"))return be.join(be.dirname(this.factorioPath),e.replace("__PATH__executable__",""));if(e.startsWith("__PATH__system-write-data__")){let t=ft.platform()==="win32"?be.resolve(process.env.APPDATA,"Factorio"):ft.platform()==="linux"?be.resolve(ft.homedir(),".factorio"):ft.platform()==="darwin"?be.resolve(ft.homedir(),"Library/Application Support/factorio"):"??";return be.join(t,e.replace("__PATH__system-write-data__",""))}if(e.startsWith("__PATH__system-read-data__")){let t=ft.platform()==="linux"?"/usr/share/factorio":ft.platform()==="darwin"?be.resolve(be.dirname(this.factorioPath),"../data"):be.resolve(be.dirname(this.factorioPath),"../../data");return be.join(t,e.replace("__PATH__system-read-data__",""))}return e}is(e){let t=this.fv;return t.name===e.name&&t.factorioPath===e.factorioPath&&t.configPath===e.configPath&&t.nativeDAP===e.nativeDAP&&t.onlineDocs===e.onlineDocs&&t.docsPath===e.docsPath&&t.protosPath===e.protosPath}};var Ud=(l=>(l[l.Nil=0]="Nil",l[l.BoolFalse=1]="BoolFalse",l[l.BoolTrue=2]="BoolTrue",l[l.Number=3]="Number",l[l.String=4]="String",l[l.Table=5]="Table",l[l.ExistingGCObject=6]="ExistingGCObject",l[l.LuaObject=7]="LuaObject",l[l.TableWithMeta=8]="TableWithMeta",l))(Ud||{}),jd=(A=>(A[A.LuaEntity=0]="LuaEntity",A[A.LuaInvalidObject=1]="LuaInvalidObject",A[A.LuaRecipe=2]="LuaRecipe",A[A.LuaTechnology=3]="LuaTechnology",A[A.LuaRandomGenerator=4]="LuaRandomGenerator",A[A.LuaForce=5]="LuaForce",A[A.LuaBurner=6]="LuaBurner",A[A.LuaLogisticPoint=7]="LuaLogisticPoint",A[A.LuaDecorativePrototype=8]="LuaDecorativePrototype",A[A.LuaCustomChartTag=9]="LuaCustomChartTag",A[A.LuaPermissionGroups=10]="LuaPermissionGroups",A[A.LuaPermissionGroup=11]="LuaPermissionGroup",A[A.LuaUnitGroup=12]="LuaUnitGroup",A[A.LuaTrain=13]="LuaTrain",A[A.LuaFluidBox=14]="LuaFluidBox",A[A.LuaEntityPrototype=15]="LuaEntityPrototype",A[A.LuaItemPrototype=16]="LuaItemPrototype",A[A.LuaEquipmentGrid=18]="LuaEquipmentGrid",A[A.LuaEquipment=19]="LuaEquipment",A[A.LuaItemStack=20]="LuaItemStack",A[A.LuaPlayer=21]="LuaPlayer",A[A.LuaGui=22]="LuaGui",A[A.LuaGuiElement=23]="LuaGuiElement",A[A.LuaStyle=24]="LuaStyle",A[A.LuaSurface=25]="LuaSurface",A[A.LuaFluidPrototype=26]="LuaFluidPrototype",A[A.LuaGroup=27]="LuaGroup",A[A.LuaTile=28]="LuaTile",A[A.LuaChunkIterator=29]="LuaChunkIterator",A[A.LuaStructMapSettings=30]="LuaStructMapSettings",A[A.LuaTransportLine=31]="LuaTransportLine",A[A.LuaLogisticNetwork=32]="LuaLogisticNetwork",A[A.LuaLogisticCell=33]="LuaLogisticCell",A[A.LuaInventory=34]="LuaInventory",A[A.LuaControlBehavior=35]="LuaControlBehavior",A[A.LuaFlowStatistics=36]="LuaFlowStatistics",A[A.LuaTilePrototype=37]="LuaTilePrototype",A[A.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",A[A.LuaCircuitNetwork=39]="LuaCircuitNetwork",A[A.LuaDamagePrototype=40]="LuaDamagePrototype",A[A.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",A[A.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",A[A.LuaRecipePrototype=43]="LuaRecipePrototype",A[A.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",A[A.LuaBurnerPrototype=45]="LuaBurnerPrototype",A[A.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",A[A.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",A[A.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",A[A.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",A[A.LuaModSettingPrototype=50]="LuaModSettingPrototype",A[A.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",A[A.LuaRailPath=52]="LuaRailPath",A[A.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",A[A.LuaAISettings=54]="LuaAISettings",A[A.LuaProfiler=55]="LuaProfiler",A[A.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",A[A.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",A[A.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",A[A.LuaAchievementPrototype=59]="LuaAchievementPrototype",A[A.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",A[A.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",A[A.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",A[A.LuaShortcutPrototype=63]="LuaShortcutPrototype",A[A.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",A[A.LuaParticlePrototype=65]="LuaParticlePrototype",A[A.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",A[A.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",A[A.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",A[A.LuaFontPrototype=69]="LuaFontPrototype",A[A.LuaQualityPrototype=70]="LuaQualityPrototype",A[A.LuaSpaceLocationPrototype=71]="LuaSpaceLocationPrototype",A[A.LuaPlanet=72]="LuaPlanet",A[A.LuaUndoRedoStack=73]="LuaUndoRedoStack",A[A.LuaSurfacePropertyPrototype=74]="LuaSurfacePropertyPrototype",A[A.LuaCustomEventPrototype=75]="LuaCustomEventPrototype",A[A.LuaSpaceConnectionPrototype=76]="LuaSpaceConnectionPrototype",A[A.LuaActiveTriggerPrototype=77]="LuaActiveTriggerPrototype",A[A.LuaSpacePlatform=78]="LuaSpacePlatform",A[A.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",A[A.LuaWireConnector=80]="LuaWireConnector",A[A.LuaAsteroidChunkPrototype=81]="LuaAsteroidChunkPrototype",A[A.LuaLogisticSection=82]="LuaLogisticSection",A[A.LuaRailEnd=83]="LuaRailEnd",A[A.LuaNamedNoiseFunction=84]="LuaNamedNoiseFunction",A[A.LuaCollisionLayerPrototype=85]="LuaCollisionLayerPrototype",A[A.LuaSimulation=86]="LuaSimulation",A[A.LuaAirbornePollutionPrototype=87]="LuaAirbornePollutionPrototype",A[A.LuaItem=88]="LuaItem",A[A.LuaTrainManager=89]="LuaTrainManager",A[A.LuaRenderObject=90]="LuaRenderObject",A[A.LuaRecord=91]="LuaRecord",A[A.LuaBurnerUsagePrototype=92]="LuaBurnerUsagePrototype",A[A.LuaSurfacePrototype=93]="LuaSurfacePrototype",A[A.LuaProcessionPrototype=94]="LuaProcessionPrototype",A[A.LuaProcessionLayerInheritanceGroupPrototype=95]="LuaProcessionLayerInheritanceGroupPrototype",A[A.LuaLogisticSections=96]="LuaLogisticSections",A[A.LuaCargoHatch=97]="LuaCargoHatch",A[A.LuaSchedule=98]="LuaSchedule",A[A.LuaTerritory=99]="LuaTerritory",A[A.LuaSegmentedUnit=100]="LuaSegmentedUnit",A[A.LuaSegment=101]="LuaSegment",A[A.LuaModData=104]="LuaModData",A[A.xLuaFutureObject=-1]="xLuaFutureObject",A))(jd||{}),zt=(x=>(x[x.None=0]="None",x[x.EntityInventory=1]="EntityInventory",x[x.ControllerInventory=2]="ControllerInventory",x[x.ItemEntity=3]="ItemEntity",x[x.EntityCursorStack=4]="EntityCursorStack",x[x.ControllerCursorStack=5]="ControllerCursorStack",x[x.Inserter=6]="Inserter",x[x.ItemWithInventory=7]="ItemWithInventory",x[x.BeltConnectable=8]="BeltConnectable",x[x.Equipment=9]="Equipment",x[x.TargetableInventory=10]="TargetableInventory",x[x.TargetableItemStack=11]="TargetableItemStack",x[x.PlayerBlueprint=12]="PlayerBlueprint",x[x.ScriptInventory=13]="ScriptInventory",x[x.LinkedInventory=14]="LinkedInventory",x))(zt||{}),Qd=(D=>(D[D.Container=1]="Container",D[D.GenericOnOff=2]="GenericOnOff",D[D.Inserter=3]="Inserter",D[D.Lamp=4]="Lamp",D[D.LogisticContainer=5]="LogisticContainer",D[D.Roboport=6]="Roboport",D[D.StorageTank=7]="StorageTank",D[D.TrainStop=8]="TrainStop",D[D.DeciderCombinator=9]="DeciderCombinator",D[D.ArithmeticCombinator=10]="ArithmeticCombinator",D[D.ConstantCombinator=11]="ConstantCombinator",D[D.TransportBelt=12]="TransportBelt",D[D.Accumulator=13]="Accumulator",D[D.RailSignal=14]="RailSignal",D[D.Wall=15]="Wall",D[D.MiningDrill=16]="MiningDrill",D[D.ProgrammableSpeaker=17]="ProgrammableSpeaker",D[D.RailChainSignal=18]="RailChainSignal",D[D.AssemblingMachine=19]="AssemblingMachine",D[D.SelectorCombinator=20]="SelectorCombinator",D[D.Pump=21]="Pump",D[D.RocketSilo=22]="RocketSilo",D[D.Turret=23]="Turret",D[D.Reactor=24]="Reactor",D[D.SpacePlatformHub=25]="SpacePlatformHub",D[D.ArtilleryTurret=26]="ArtilleryTurret",D[D.Radar=27]="Radar",D[D.AsteroidCollector=28]="AsteroidCollector",D[D.DisplayPanel=29]="DisplayPanel",D[D.Loader=30]="Loader",D[D.CargoLandingPad=31]="CargoLandingPad",D[D.AgriculturalTower=32]="AgriculturalTower",D[D.Furnace=33]="Furnace",D[D.ProxyContainer=34]="ProxyContainer",D))(Qd||{}),Li=(s=>(s[s.ItemProduction=1]="ItemProduction",s[s.FluidProduction=2]="FluidProduction",s[s.KillCount=3]="KillCount",s[s.EntityBuild=6]="EntityBuild",s[s.ElectricNetwork=7]="ElectricNetwork",s[s.Pollution=8]="Pollution",s))(Li||{}),qd=class{version;data;gcid=0;gcidmap=[];gcidmaps;constructor(e){this.version=gr.load(e.read(9)),this.data={},this.gcidmaps={};let t=e.readUInt32LE();for(let n=0;n<t;n++){let i=e.readPackedUInt_8_32(),o=e.readString(i),s=e.readPackedUInt_8_32(),c=new Cr(e.read(s));gr.load(c.read(9)),this.gcid=0,this.gcidmap=[];let d=this.loadLuaValue(c);if(c.readableLength>0)throw new Error(`Data for ${o} not fully consumed, ${c.readableLength} bytes left`);e.readUInt8(),this.data[o]=d,this.gcidmaps[o]=this.gcidmap}}find(e,t){return this.gcidmaps[e][t]}loadLuaValue(e){let t=e.readUInt8(),n=Ud[t];switch(n){case"Nil":case"BoolFalse":case"BoolTrue":return{type:n,size:1};case"Number":{let o=e.readDoubleLE();return{type:n,value:o,size:9}}case"String":{let o=e.readPackedUInt_8_32(),s=e.readString(o);return{type:n,value:s,size:2+(o>=255?4:0)+o}}case"TableWithMeta":case"Table":{let o=this.gcid++,s,c=1;if(n==="TableWithMeta"){let b=e.readPackedUInt_8_32();s=e.readString(b),c+=1+(b>=255?4:0)+b}let d=e.readPackedUInt_8_32();c+=d>=255?5:1;let l=[];for(let b=0;b<d;b++){let P=this.loadLuaValue(e),v=this.loadLuaValue(e);l.push({key:P,value:v}),c+=P.size+v.size}let g={type:n,id:o,values:l,meta:s,size:c};return this.gcidmap[o]=g,g}case"ExistingGCObject":let i=e.readPackedUInt_16_32();return{type:n,id:i,size:3+(i>=65535?4:0)};case"LuaObject":{let o="LuaObject",s=this.gcid++,c=e.readUInt32LE(),d=jd[c],l=Object.assign({type:d},this.loadLuaObjectData(c,e));return{type:o,id:s,value:l,size:5+l.size}}default:throw new Error(`Invalid type ${t} in saved lua value`)}}loadLuaObjectData(e,t){switch(e){case 0:case 11:case 12:case 13:case 14:case 18:case 19:case 21:case 22:case 32:case 33:case 52:case 54:case 72:case 90:case 73:case 78:case 88:case 97:case 98:case 99:case 100:return{target:t.readUInt32LE(),size:4};case 10:case 89:return{size:0};case 2:case 3:{let n=t.readUInt8(),i=t.readUInt16LE();return{force:n,id:i,size:3}}case 4:return{seed:[t.readUInt32LE(),t.readUInt32LE(),t.readUInt32LE()],size:12};case 6:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{entity:n,equipment:i,size:8}}case 7:{let n=t.readUInt8(),i=t.readUInt32LE();return{index:n,owner:i,size:5}}case 9:{let n=t.readUInt8(),i=1,o;this.version.isBeyond(1,2,0,259)||(o=t.readPackedUInt_8_32(),i+=o>=255?5:1);let s=t.readUInt32LE();return i+=4,{force:n,surface:o,target:s,size:i}}case 8:return this.version.isBeyond(1,2,1,4)?{id:t.readUInt16LE(),size:2}:{id:t.readUInt8(),size:1};case 37:return this.version.isBeyond(1,2,0,3)?{id:t.readUInt16LE(),size:2}:{id:t.readUInt8(),size:1};case 5:case 40:case 42:case 49:case 51:case 57:case 58:case 60:case 61:case 62:case 70:case 95:return{id:t.readUInt8(),size:1};case 15:case 16:case 26:case 38:case 41:case 43:case 44:case 47:case 48:case 50:case 59:case 63:case 64:case 65:case 66:case 67:case 68:case 79:case 71:case 74:case 75:case 76:case 77:case 81:case 85:case 87:case 92:case 93:case 94:return{id:t.readUInt16LE(),size:2};case 56:case 84:case 104:return{id:t.readUInt32LE(),size:4};case 28:{let n={x:t.readInt32LE(),y:t.readInt32LE()},i=t.readPackedUInt_8_32();return{position:n,surface:i,size:8+(i>=255?5:1)}}case 23:{if(this.version.isBeyond(1,2,0,415))return{id:t.readUInt32LE(),size:4};{let n=t.readUInt32LE(),i=t.readUInt32LE();return{player:n,index:i,size:8}}}case 24:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{player:n,index:i,size:8}}case 25:{if(this.version.isBeyond(1,2,7,1))return{target:t.readUInt32LE(),size:4};{let n=t.readPackedUInt_8_32();return{surface:n,size:n>=255?5:1}}}case 27:{let n=t.readUInt8(),i=t.readUInt16LE();return{group:n,subgroup:i,size:3}}case 29:{let n=t.readPackedUInt_8_32(),i={x:t.readInt32LE(),y:t.readInt32LE()};return{surface:n,position:i,size:(n>=255?5:1)+8}}case 31:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,index:i,size:5}}case 34:{let n=t.readUInt32LE(),i=t.readUInt32LE(),o=t.readUInt32LE(),s=t.readUInt32LE(),c=t.readUInt32LE(),d=t.readUInt8()!==0,l=21,g;if(d){let P=t.readUInt8(),v=t.readUInt16LE(),j=t.readUInt32LE();g={force:P,proto:v,linkid:j},l+=7}let b=t.readUInt8();return l+=1,{entity:n,controller:i,item:o,equipment:s,scriptinv:c,link:g,index:b,size:l}}case 45:case 46:{let n=t.readUInt16LE(),i=t.readUInt16LE();return{entity:n,equipment:i,size:4}}case 53:{let n=t.readUInt16LE(),i=t.readUInt32LE(),o=t.readUInt8();return{entity:n,index:i,targettype:o,size:7}}case 55:return{stopped:t.readUInt8()!==0,size:1};case 69:{let n=t.readUInt8()!==0,i=1,o;if(n){let s=t.readPackedUInt_8_32();o=t.readString(s),i+=(s>=255?5:1)+s}return{name:o,size:i}}case 39:{let n=t.readUInt32LE(),i=4,o,s;return this.version.isBeyond(1,2,0,155)?(s=t.readUInt8(),i+=1):(o=t.readUInt8(),s=t.readUInt8(),i+=2),{target:n,connector:o,wire:s,size:i}}case 80:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,connector:i,size:5}}case 83:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,direction:i,size:5}}case 91:{let n=t.readUInt16LE(),i=t.readUInt32LE();return{player:n,id:i,size:6}}case 96:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,member:i,size:5}}case 101:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{target:n,index:i,size:8}}case 20:return this.loadLuaItemStack(t);case 35:return this.loadLuaControlBehavior(t);case 36:return this.loadLuaFlowStatistics(t);case 82:return this.loadLuaLogisticSection(t);case 30:case 86:throw new Error(`LuaObject of type ${e} cannot have been saved`);default:throw new Error(`Unknown LuaObject type ${e}`)}}loadItemStackLocation(e){let t=this.version.isBeyond(1,2,0,33)?e.readUInt8():0;if(t!==0)return{standaloneStack:t,size:1};let n=e.readUInt8(),i=e.readUInt16LE();return{inventoryIndex:n,slotIndex:i,size:(this.version.isBeyond(1,2,0,33)?1:0)+1+2}}loadLuaItemStack(e){let t=this.version.isBeyond(1,2,0,359)?e.readUInt8():e.readUInt32LE(),n=this.version.isBeyond(1,2,0,359)?1:4;switch(t){case 0:return{stacktype:zt[t],size:n};case 1:case 2:case 7:case 9:{let i=e.readUInt32LE();n+=4;let o;if(this.version.isBeyond(1,2,0,361))o=this.loadItemStackLocation(e),n+=o.size;else{let s=e.readUInt8(),c=e.readUInt16LE();o={inventoryIndex:s,slotIndex:c},n+=3}return{stacktype:zt[t],target:i,location:o,size:n}}case 3:case 4:case 5:case 6:case 12:{let i=e.readUInt32LE();return n+=4,{stacktype:zt[t],target:i,size:n}}case 8:{let i=e.readUInt32LE(),o=e.readUInt8();n+=5;let s,c;return this.version.isBeyond(1,2,0,361)?(s=e.readUInt16LE(),c=e.readUInt32LE(),n+=6):(s=e.readUInt8(),n+=1),{stacktype:zt[t],target:i,line:o,item:s,itemid:c,size:n}}case 10:throw new Error(`LuaItemStack type ${t} cannot have been saved`);case 11:return{stacktype:zt[t],size:n};case 13:{let i=e.readUInt32LE(),o=e.readUInt16LE();return n+=6,{stacktype:zt[t],target:i,slot:o,size:n}}case 14:{let i=e.readUInt8(),o=e.readUInt16LE(),s=e.readUInt32LE();return n+=7,{stacktype:zt[t],force:i,proto:o,linkid:s,size:n}}default:throw new Error(`Unknown LuaItemStack type ${t}`)}}loadLuaControlBehavior(e){let t=e.readUInt32LE(),n=e.readUInt32LE();return{behavior:Qd[t],target:n,size:8}}loadLuaFlowStatistics(e){let t=e.readUInt32LE(),n=4;switch(t){case 1:case 2:case 3:case 6:{let i;this.version.isBeyond(1,2,0,360)&&(i=e.readPackedUInt_8_32(),n+=i>=255?5:1);let o=e.readUInt8();return n+=1,{flow:Li[t],force:o,surface:i,size:n}}case 7:{let i=e.readUInt32LE();n+=4;let o;return this.version.isBeyond(2,0,48,4)&&(o=e.readPackedUInt_8_32(),n+=o>=255?5:1),{flow:Li[t],target:i,surface:o,size:n}}case 8:{let i;return this.version.isBeyond(1,2,0,360)&&(i=e.readPackedUInt_8_32(),n+=i>=255?5:1),{flow:Li[t],surface:i,size:n}}default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}loadLuaLogisticSection(e){let t=0;this.version.isBeyond(1,2,31,1)||(e.readUInt8(),t+=1);let n;this.version.isBeyond(1,2,0,265)?(n=e.readUInt32LE(),t+=4):(e.readUInt8(),t+=1);let i=e.readUInt32LE();return t+=4,{entity:i,section:n,size:t}}};export{tt as a,lw as b,B as c,Ie as d,Ae as e,dw as f,gw as g,lr as h,cb as i,fn as j,nt as k,Rt as l,Cr as m,Ai as n,qp as o,uw as p,ov as q,fr as r,un as s,jl as t,Ut as u,ue as v,Bt as w,vi as x,gn as y,wi as z,Jt as A,Zt as B,yt as C,We as D,jt as E,$e as F,Ce as G,nd as H,De as I,s0 as J,c0 as K,Fd as L,Nd as M,dn as N,td as O,qd as P};
|
|
148
|
+
//# sourceMappingURL=chunk-LMNAIRFX.js.map
|