@spacebarchat/pion-webrtc 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PionSignalingDelegate.d.ts +3 -0
- package/dist/PionSignalingDelegate.d.ts.map +1 -1
- package/dist/PionSignalingDelegate.js +36 -4
- package/dist/PionSignalingDelegate.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/PionSignalingDelegate.ts +138 -100
|
@@ -6,9 +6,12 @@ export declare class PionSignalingDelegate implements SignalingDelegate {
|
|
|
6
6
|
private _ip;
|
|
7
7
|
private _port;
|
|
8
8
|
private _rooms;
|
|
9
|
+
private _sfuProcess?;
|
|
10
|
+
private _isStopping;
|
|
9
11
|
ipc: IpcClient;
|
|
10
12
|
constructor();
|
|
11
13
|
start(public_ip: string, portMin: number, portMax: number): Promise<void>;
|
|
14
|
+
private startSfu;
|
|
12
15
|
join(roomId: string, userId: string, ws: any, type: "guild-voice" | "dm-voice" | "stream"): Promise<WebRtcClient<any>>;
|
|
13
16
|
onOffer(client: WebRtcClient<any>, sdpOffer: string, codecs: Codec[]): Promise<{
|
|
14
17
|
sdp: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PionSignalingDelegate.d.ts","sourceRoot":"","sources":["../src/PionSignalingDelegate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PionSignalingDelegate.d.ts","sourceRoot":"","sources":["../src/PionSignalingDelegate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,qBAAsB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,WAAW,CAAC,CAAiC;IACrD,OAAO,CAAC,WAAW,CAAS;IACrB,GAAG,EAAE,SAAS,CAAC;;IAMT,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAOxE,QAAQ;IA0Bf,IAAI,CACT,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,GAAG,EACP,IAAI,EAAE,aAAa,GAAG,UAAU,GAAG,QAAQ,GAC1C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAuChB,OAAO,CAClB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,KAAK,EAAE,GACd,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAgKhD,aAAa,GAAI,QAAQ,YAAY,CAAC,GAAG,CAAC,UAG/C;IAEK,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAQnE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAUnE,UAAU,CACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,GAAG,UAAU,GAAG,QAAQ,GAC1C,IAAI;IAIP,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAElC;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { once } from "node:events";
|
|
1
3
|
import { VoiceRoom } from "./VoiceRoom.js";
|
|
2
4
|
import { PionWebRtcClient } from "./PionWebRtcClient.js";
|
|
3
5
|
import { CodecInfo, MediaInfo, SDPInfo } from "semantic-sdp";
|
|
@@ -6,14 +8,38 @@ export class PionSignalingDelegate {
|
|
|
6
8
|
_ip;
|
|
7
9
|
_port;
|
|
8
10
|
_rooms = new Map();
|
|
11
|
+
_sfuProcess;
|
|
12
|
+
_isStopping = false;
|
|
9
13
|
ipc;
|
|
10
14
|
constructor() {
|
|
11
|
-
this.ipc = new IpcClient(
|
|
15
|
+
this.ipc = new IpcClient("sfu-ipc", this);
|
|
12
16
|
}
|
|
13
17
|
async start(public_ip, portMin, portMax) {
|
|
14
18
|
this._port = portMin;
|
|
15
19
|
this._ip = public_ip;
|
|
20
|
+
if (!await this.startSfu())
|
|
21
|
+
await this.ipc.connect();
|
|
22
|
+
}
|
|
23
|
+
async startSfu() {
|
|
24
|
+
if (!process.env.PION_SFU_BIN) {
|
|
25
|
+
console.warn(`PION_SFU_BIN environment variable not set, skipping integrated SFU startup - voice will not work if running at least an SFU instance at ${this._ip}:${this._port}!`);
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
this._sfuProcess = spawn(process.env.PION_SFU_BIN, ["-port", this._port.toString(), "-ip", this._ip]);
|
|
29
|
+
this._sfuProcess.stdout.on("data", (data) => {
|
|
30
|
+
console.log(`[Pion SFU] ${data}`);
|
|
31
|
+
});
|
|
32
|
+
this._sfuProcess.stderr.on("data", (data) => {
|
|
33
|
+
console.error(`[Pion SFU] ${data}`);
|
|
34
|
+
});
|
|
16
35
|
await this.ipc.connect();
|
|
36
|
+
once(this._sfuProcess, "close").then(([code]) => {
|
|
37
|
+
console.log(`Pion SFU exited with code: ${code} - restarting...`);
|
|
38
|
+
this.ipc.close(); // clean up state, since the SFU won't have any
|
|
39
|
+
if (!this._isStopping)
|
|
40
|
+
this.startSfu();
|
|
41
|
+
});
|
|
42
|
+
return true;
|
|
17
43
|
}
|
|
18
44
|
join(roomId, userId, ws, type) {
|
|
19
45
|
// if this is guild-voice or dm-voice, make sure user isn't already in a room of those types
|
|
@@ -49,7 +75,7 @@ export class PionSignalingDelegate {
|
|
|
49
75
|
console.error("error, client sent an offer but has not authenticated");
|
|
50
76
|
Promise.reject();
|
|
51
77
|
}
|
|
52
|
-
const offer = SDPInfo.parse("m=audio\n" + sdpOffer);
|
|
78
|
+
const offer = sdpOffer.startsWith("v=0") ? SDPInfo.parse(sdpOffer) : SDPInfo.parse("m=audio\n" + sdpOffer);
|
|
53
79
|
const rtpHeaders = new Map(offer.medias[0].extensions);
|
|
54
80
|
const getIdForHeader = (rtpHeaders, headerUri) => {
|
|
55
81
|
for (const [key, value] of rtpHeaders) {
|
|
@@ -109,9 +135,13 @@ export class PionSignalingDelegate {
|
|
|
109
135
|
}
|
|
110
136
|
}
|
|
111
137
|
offer.medias = [audioMedia, videoMedia];
|
|
112
|
-
const finalOffer = offer.toString().replace(
|
|
138
|
+
const finalOffer = offer.toString().replace(" NaN ", " 3984 ").replace(":actpass", ":active");
|
|
113
139
|
console.log(finalOffer);
|
|
114
|
-
const res = await this.ipc.request({
|
|
140
|
+
const res = await this.ipc.request({
|
|
141
|
+
type: "offer",
|
|
142
|
+
clientId: client.uniqueId,
|
|
143
|
+
sdp: finalOffer,
|
|
144
|
+
});
|
|
115
145
|
if (!res.sdp)
|
|
116
146
|
return Promise.reject();
|
|
117
147
|
const answerSdp = SDPInfo.parse(res.sdp);
|
|
@@ -163,10 +193,12 @@ export class PionSignalingDelegate {
|
|
|
163
193
|
return this._rooms;
|
|
164
194
|
}
|
|
165
195
|
async stop() {
|
|
196
|
+
this._isStopping = true;
|
|
166
197
|
for (const room of this._rooms.values()) {
|
|
167
198
|
await room.stop();
|
|
168
199
|
}
|
|
169
200
|
await this.ipc.close();
|
|
201
|
+
this._sfuProcess?.kill();
|
|
170
202
|
return Promise.resolve();
|
|
171
203
|
}
|
|
172
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PionSignalingDelegate.js","sourceRoot":"","sources":["../src/PionSignalingDelegate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PionSignalingDelegate.js","sourceRoot":"","sources":["../src/PionSignalingDelegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/typescript/lib/lib.esnext.error.d.ts","../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@spacebarchat/spacebar-webrtc-types/index.d.ts","../src/PionWebRtcClient.ts","../src/VoiceRoom.ts","../node_modules/semantic-sdp/dist/SourceGroupInfo.d.ts","../node_modules/semantic-sdp/dist/RTCPFeedbackInfo.d.ts","../node_modules/semantic-sdp/dist/CodecInfo.d.ts","../node_modules/semantic-sdp/dist/TrackEncodingInfo.d.ts","../node_modules/semantic-sdp/dist/TrackInfo.d.ts","../node_modules/semantic-sdp/dist/StreamInfo.d.ts","../node_modules/semantic-sdp/dist/DirectionWay.d.ts","../node_modules/semantic-sdp/dist/RIDInfo.d.ts","../node_modules/semantic-sdp/dist/SimulcastStreamInfo.d.ts","../node_modules/semantic-sdp/dist/SimulcastInfo.d.ts","../node_modules/semantic-sdp/dist/DataChannelInfo.d.ts","../node_modules/semantic-sdp/dist/Direction.d.ts","../node_modules/semantic-sdp/dist/MediaInfo.d.ts","../node_modules/semantic-sdp/dist/CandidateInfo.d.ts","../node_modules/semantic-sdp/dist/ICEInfo.d.ts","../node_modules/semantic-sdp/dist/Setup.d.ts","../node_modules/semantic-sdp/dist/DTLSInfo.d.ts","../node_modules/semantic-sdp/dist/CryptoInfo.d.ts","../node_modules/semantic-sdp/dist/SDPInfo.d.ts","../node_modules/semantic-sdp/dist/SourceInfo.d.ts","../node_modules/semantic-sdp/dist/index.d.ts","../src/PionSignalingDelegate.ts","../src/IpcClient.ts","../src/index.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts"],"fileIdsList":[[113,155,167],[113,152,155],[113,154,155],[155],[113,155,160,189],[113,155,156,161,167,168,175,186,197],[113,155,156,157,167,175],[113,155],[108,109,110,113,155],[113,155,158,198],[113,155,159,160,168,176],[113,155,160,186,194],[113,155,161,163,167,175],[113,154,155,162],[113,155,163,164],[113,155,165,167],[113,154,155,167],[113,155,167,168,169,186,197],[113,155,167,168,169,182,186,189],[113,150,155],[113,155,163,167,170,175,186,197],[113,155,167,168,170,171,175,186,194,197],[113,155,170,172,186,194,197],[111,112,113,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[113,155,167,173],[113,155,174,197,202],[113,155,163,167,175,186],[113,155,176],[113,155,177],[113,154,155,178],[113,152,153,154,155,156,157,158,159,160,161,162,163,164,165,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[113,155,180],[113,155,181],[113,155,167,182,183],[113,155,182,184,198,200],[113,155,167,186,187,189],[113,155,188,189],[113,155,186,187],[113,155,189],[113,155,190],[113,152,155,186,191],[113,155,167,192,193],[113,155,192,193],[113,155,160,175,186,194],[113,155,195],[113,155,175,196],[113,155,170,181,197],[113,155,160,198],[113,155,186,199],[113,155,174,200],[113,155,201],[113,155,167,169,178,186,189,197,200,202],[113,155,186,203],[104,113,155],[85,104,113,155],[99,104,113,155],[86,91,93,94,95,104,113,155],[90,104,113,155],[88,89,96,97,98,100,101,104,113,155],[90,92,104,113,155],[88,104,113,155],[86,104,113,155],[84,87,104,113,155],[84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,113,155],[113,122,126,155,197],[113,122,155,186,197],[113,117,155],[113,119,122,155,194,197],[113,155,175,194],[113,155,204],[113,117,155,204],[113,119,122,155,175,197],[113,114,115,118,121,155,167,186,197],[113,122,129,155],[113,114,120,155],[113,122,143,144,155],[113,118,122,155,189,197,204],[113,143,155,204],[113,116,117,155,204],[113,122,155],[113,116,117,118,119,120,121,122,123,124,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,155],[113,122,137,155],[113,122,129,130,155],[113,120,122,130,131,155],[113,121,155],[113,114,117,122,155],[113,122,126,130,131,155],[113,126,155],[113,120,122,125,155,197],[113,114,119,122,129,155],[113,155,186],[113,117,122,143,155,202,204],[105,113,155,160,175,176],[81,82,83,104,106,113,155],[81,83,113,155,160,167],[82,105,113,155],[105,113,155]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bebb37cd8ded8c1b0151d711c98f2160f8dbf603284caa230241dd21f7491c76","impliedFormat":1},{"version":"2a06ab6a77d63c70fbbbb3a139034fae21f1c817c080c62a111978d660a2209c","signature":"39285b1a7ee4cdfef9aacf01be5ea453217e97f2d81f8e247307a8f2d92f9f3c","impliedFormat":99},{"version":"50fade65bd7273ac8af9f3c3278f562d51743cea841d0655bc14bf291e834472","signature":"0c3fd69ce919e0799c1995a60e7a4911296924f405f43940dfb2576e895401fe","impliedFormat":99},{"version":"ab0f30abc6a08f22b7f0e64e9f89dcb2ec223a84cc1adae53f2de7d3e925e53c","impliedFormat":1},{"version":"2f4dc4aaf004d5592519cd644e7127850efacfb5e094aa37488a0e32dffa70fb","impliedFormat":1},{"version":"6aa273402008662cc2fbd3088fc5c4b50b6a754c285ccfc0e2de974dfe2fcfac","impliedFormat":1},{"version":"19cfa19e69f8c01cb1fb8f1f1301341b97b79946e70d8827b3a5db0f96455af9","impliedFormat":1},{"version":"8cdd81affe34c88906c136f38cd7d56cda6ee79bfa32a4891fc664f782973953","impliedFormat":1},{"version":"e704a123a781f8772f2cfd01eca922f3ce10c95cd4009c899978b40fa7bcb55f","impliedFormat":1},{"version":"1b945f39e90922712df8707e563730a7e7722ee02e920104cd0a8a6523148361","impliedFormat":1},{"version":"e14b1d4716e952ec75a3524db835b85465d18c3c9c1ee6e23e087297a2190838","impliedFormat":1},{"version":"1f12f3d94661123b4eccd25aed42b81f834ae2d9f0d686ed601faa46db19ebb8","impliedFormat":1},{"version":"361ca3f55e6bf5d439651c1e26fa08a9287d1b9b5093969b11215e1c7f2b7373","impliedFormat":1},{"version":"63526b1055d3c85be26b7f61efe3cf780ba25427ef6852503369f2976f30dd35","impliedFormat":1},{"version":"b414dc690527c2af9bb36d4b9cb0ab192a155841437f144021dc101b4ba81f04","impliedFormat":1},{"version":"9d52e2e21523a13e5a9656fd9c847a95512677ce200a16f605bbb8ac4cd46d6f","impliedFormat":1},{"version":"bb0e33c8ef13283e9f00fcc6f0e7af2bbaaebb8a2900c6cdfdaffae9eeeeaeb7","impliedFormat":1},{"version":"b868de165294a5c99672528fdf1ee66b81f2549c097e33d49c4d10454e26ad72","impliedFormat":1},{"version":"95a50fdfaf0ce83156078bf66c032785a216e1f49495e182b423e00d748b595c","impliedFormat":1},{"version":"e0d87f772ce1eb1c55af6e984b0ffd6042bf0882d4d8104b2dd2f5486680ab59","impliedFormat":1},{"version":"c21419bd8b2f0fe5a74513a1aac1f8d13e5ecb1f85633801d354ebe5a59cac26","impliedFormat":1},{"version":"5d562c71282c0d6c682fbe103763705ef4432eb00efd02b6350beb35a298d2ad","impliedFormat":1},{"version":"c80366fbee8cd9ea1e36ace20f7140c258bf869ae24817f5c6b5c6ba93dcaee5","impliedFormat":1},{"version":"571876c619dce518dda771de7737b2a3a08f113545fb12590f3666ea0b3bb62e","impliedFormat":1},{"version":"cc61935dfa9f4b377431b6b1ba2651b7bd4dc4d03ee154418775d402d39ceb84","signature":"b26732cb968756c55ee860c8f552d8909097fa9244abe7532bded39291d52f82","impliedFormat":99},{"version":"1a330f9d49298d4de19757e824990ab6dd238b2209e82db65af5ac1993fe27a7","signature":"8fb291b96fbdd6b4b942e28d553a6233f38c9abd8a91b2336313c60f13fc4552","impliedFormat":99},{"version":"0c8bada894b27db3cee693af857225b657b9718da74b2fb11cd30f526a94446b","signature":"067b7473faa397cde64c0c892c4440ac0125a34ac8dd3d017f76cfaf8ee9fad6","impliedFormat":99},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"49a5a44f2e68241a1d2bd9ec894535797998841c09729e506a7cbfcaa40f2180","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"1ca84b44ad1d8e4576f24904d8b95dd23b94ea67e1575f89614ac90062fc67f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d586db0a09a9495ebb5dece28f54df9684bfbd6e1f568426ca153126dac4a40","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"567b7f607f400873151d7bc63a049514b53c3c00f5f56e9e95695d93b66a138e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"84c1930e33d1bb12ad01bcbe11d656f9646bd21b2fb2afd96e8e10615a021aef","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4b87f767c7bc841511113c876a6b8bf1fd0cb0b718c888ad84478b372ec486b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"2bf469abae4cc9c0f340d4e05d9d26e37f936f9c8ca8f007a6534f109dcc77e4","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ada07543808f3b967624645a8e1ccd446f8b01ade47842acf1328aec899fed0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4c21aaa8257d7950a5b75a251d9075b6a371208fc948c9c8402f6690ef3b5b55","impliedFormat":1},{"version":"b5895e6353a5d708f55d8685c38a235c3a6d8138e374dee8ceb8ffde5aa8002a","impliedFormat":1},{"version":"54c4f21f578864961efc94e8f42bc893a53509e886370ec7dd602e0151b9266c","impliedFormat":1},{"version":"de735eca2c51dd8b860254e9fdb6d9ec19fe402dfe597c23090841ce3937cfc5","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"5155da3047ef977944d791a2188ff6e6c225f6975cc1910ab7bb6838ab84cede","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"e16d218a30f6a6810b57f7e968124eaa08c7bb366133ea34bbf01e7cd6b8c0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb8692dea24c27821f77e397272d9ed2eda0b95e4a75beb0fdda31081d15a8ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"5b6844ad931dcc1d3aca53268f4bd671428421464b1286746027aede398094f2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"0dbcebe2126d03936c70545e96a6e41007cf065be38a1ce4d32a39fcedefead4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"461e54289e6287e8494a0178ba18182acce51a02bca8dea219149bf2cf96f105","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"e31e51c55800014d926e3f74208af49cb7352803619855c89296074d1ecbb524","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"dfb96ba5177b68003deec9e773c47257da5c4c8a74053d8956389d832df72002","affectsGlobalScope":true,"impliedFormat":1},{"version":"92d3070580cf72b4bb80959b7f16ede9a3f39e6f4ef2ac87cfa4561844fdc69f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"613deebaec53731ff6b74fe1a89f094b708033db6396b601df3e6d5ab0ec0a47","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"e56eb632f0281c9f8210eb8c86cc4839a427a4ffffcfd2a5e40b956050b3e042","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1}],"root":[82,83,[105,107]],"options":{"allowJs":true,"alwaysStrict":true,"checkJs":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitAny":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"strictPropertyInitialization":false,"target":99},"referencedMap":[[81,1],[152,2],[153,2],[154,3],[113,4],[155,5],[156,6],[157,7],[108,8],[111,9],[109,8],[110,8],[158,10],[159,11],[160,12],[161,13],[162,14],[163,15],[164,15],[166,8],[165,16],[167,17],[168,18],[169,19],[151,20],[112,8],[170,21],[171,22],[172,23],[204,24],[173,25],[174,26],[175,27],[176,28],[177,29],[178,30],[179,31],[180,32],[181,33],[182,34],[183,34],[184,35],[185,8],[186,36],[188,37],[187,38],[189,39],[190,40],[191,41],[192,42],[193,43],[194,44],[195,45],[196,46],[197,47],[198,48],[199,49],[200,50],[201,51],[202,52],[203,53],[97,54],[86,55],[101,54],[100,56],[94,54],[95,8],[90,8],[98,54],[96,57],[91,58],[85,54],[102,59],[99,8],[93,60],[92,54],[84,54],[103,54],[89,61],[87,62],[88,63],[104,64],[79,8],[80,8],[14,8],[13,8],[2,8],[15,8],[16,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[3,8],[23,8],[24,8],[4,8],[25,8],[29,8],[26,8],[27,8],[28,8],[30,8],[31,8],[32,8],[5,8],[33,8],[34,8],[35,8],[36,8],[6,8],[40,8],[37,8],[38,8],[39,8],[41,8],[7,8],[42,8],[47,8],[48,8],[43,8],[44,8],[45,8],[46,8],[8,8],[52,8],[49,8],[50,8],[51,8],[53,8],[9,8],[54,8],[55,8],[56,8],[58,8],[57,8],[59,8],[60,8],[10,8],[61,8],[62,8],[63,8],[11,8],[64,8],[65,8],[66,8],[67,8],[68,8],[1,8],[69,8],[70,8],[12,8],[74,8],[72,8],[77,8],[76,8],[71,8],[75,8],[73,8],[78,8],[129,65],[139,66],[128,65],[149,67],[120,68],[119,69],[148,70],[142,71],[147,72],[122,73],[136,74],[121,75],[145,76],[117,77],[116,70],[146,78],[118,79],[123,80],[124,8],[127,80],[114,8],[150,81],[140,82],[131,83],[132,84],[134,85],[130,86],[133,87],[143,70],[125,88],[126,89],[135,90],[115,91],[138,82],[137,80],[141,8],[144,92],[106,93],[105,94],[82,95],[83,96],[107,97]],"version":"5.9.2"}
|
|
1
|
+
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/typescript/lib/lib.esnext.error.d.ts","../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@spacebarchat/spacebar-webrtc-types/index.d.ts","../src/PionWebRtcClient.ts","../src/VoiceRoom.ts","../node_modules/semantic-sdp/dist/SourceGroupInfo.d.ts","../node_modules/semantic-sdp/dist/RTCPFeedbackInfo.d.ts","../node_modules/semantic-sdp/dist/CodecInfo.d.ts","../node_modules/semantic-sdp/dist/TrackEncodingInfo.d.ts","../node_modules/semantic-sdp/dist/TrackInfo.d.ts","../node_modules/semantic-sdp/dist/StreamInfo.d.ts","../node_modules/semantic-sdp/dist/DirectionWay.d.ts","../node_modules/semantic-sdp/dist/RIDInfo.d.ts","../node_modules/semantic-sdp/dist/SimulcastStreamInfo.d.ts","../node_modules/semantic-sdp/dist/SimulcastInfo.d.ts","../node_modules/semantic-sdp/dist/DataChannelInfo.d.ts","../node_modules/semantic-sdp/dist/Direction.d.ts","../node_modules/semantic-sdp/dist/MediaInfo.d.ts","../node_modules/semantic-sdp/dist/CandidateInfo.d.ts","../node_modules/semantic-sdp/dist/ICEInfo.d.ts","../node_modules/semantic-sdp/dist/Setup.d.ts","../node_modules/semantic-sdp/dist/DTLSInfo.d.ts","../node_modules/semantic-sdp/dist/CryptoInfo.d.ts","../node_modules/semantic-sdp/dist/SDPInfo.d.ts","../node_modules/semantic-sdp/dist/SourceInfo.d.ts","../node_modules/semantic-sdp/dist/index.d.ts","../src/PionSignalingDelegate.ts","../src/IpcClient.ts","../src/index.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts"],"fileIdsList":[[113,155,167],[113,152,155],[113,154,155],[155],[113,155,160,189],[113,155,156,161,167,168,175,186,197],[113,155,156,157,167,175],[113,155],[108,109,110,113,155],[113,155,158,198],[113,155,159,160,168,176],[113,155,160,186,194],[113,155,161,163,167,175],[113,154,155,162],[113,155,163,164],[113,155,165,167],[113,154,155,167],[113,155,167,168,169,186,197],[113,155,167,168,169,182,186,189],[113,150,155],[113,155,163,167,170,175,186,197],[113,155,167,168,170,171,175,186,194,197],[113,155,170,172,186,194,197],[111,112,113,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[113,155,167,173],[113,155,174,197,202],[113,155,163,167,175,186],[113,155,176],[113,155,177],[113,154,155,178],[113,152,153,154,155,156,157,158,159,160,161,162,163,164,165,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[113,155,180],[113,155,181],[113,155,167,182,183],[113,155,182,184,198,200],[113,155,167,186,187,189],[113,155,188,189],[113,155,186,187],[113,155,189],[113,155,190],[113,152,155,186,191],[113,155,167,192,193],[113,155,192,193],[113,155,160,175,186,194],[113,155,195],[113,155,175,196],[113,155,170,181,197],[113,155,160,198],[113,155,186,199],[113,155,174,200],[113,155,201],[113,155,167,169,178,186,189,197,200,202],[113,155,186,203],[104,113,155],[85,104,113,155],[99,104,113,155],[86,91,93,94,95,104,113,155],[90,104,113,155],[88,89,96,97,98,100,101,104,113,155],[90,92,104,113,155],[88,104,113,155],[86,104,113,155],[84,87,104,113,155],[84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,113,155],[113,122,126,155,197],[113,122,155,186,197],[113,117,155],[113,119,122,155,194,197],[113,155,175,194],[113,155,204],[113,117,155,204],[113,119,122,155,175,197],[113,114,115,118,121,155,167,186,197],[113,122,129,155],[113,114,120,155],[113,122,143,144,155],[113,118,122,155,189,197,204],[113,143,155,204],[113,116,117,155,204],[113,122,155],[113,116,117,118,119,120,121,122,123,124,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,144,145,146,147,148,149,155],[113,122,137,155],[113,122,129,130,155],[113,120,122,130,131,155],[113,121,155],[113,114,117,122,155],[113,122,126,130,131,155],[113,126,155],[113,120,122,125,155,197],[113,114,119,122,129,155],[113,155,186],[113,117,122,143,155,202,204],[105,113,155,160,175,176],[81,82,83,104,106,113,155,156,167],[81,83,113,155,160,167],[82,105,113,155],[105,113,155]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bebb37cd8ded8c1b0151d711c98f2160f8dbf603284caa230241dd21f7491c76","impliedFormat":1},{"version":"2a06ab6a77d63c70fbbbb3a139034fae21f1c817c080c62a111978d660a2209c","signature":"39285b1a7ee4cdfef9aacf01be5ea453217e97f2d81f8e247307a8f2d92f9f3c","impliedFormat":99},{"version":"50fade65bd7273ac8af9f3c3278f562d51743cea841d0655bc14bf291e834472","signature":"0c3fd69ce919e0799c1995a60e7a4911296924f405f43940dfb2576e895401fe","impliedFormat":99},{"version":"ab0f30abc6a08f22b7f0e64e9f89dcb2ec223a84cc1adae53f2de7d3e925e53c","impliedFormat":1},{"version":"2f4dc4aaf004d5592519cd644e7127850efacfb5e094aa37488a0e32dffa70fb","impliedFormat":1},{"version":"6aa273402008662cc2fbd3088fc5c4b50b6a754c285ccfc0e2de974dfe2fcfac","impliedFormat":1},{"version":"19cfa19e69f8c01cb1fb8f1f1301341b97b79946e70d8827b3a5db0f96455af9","impliedFormat":1},{"version":"8cdd81affe34c88906c136f38cd7d56cda6ee79bfa32a4891fc664f782973953","impliedFormat":1},{"version":"e704a123a781f8772f2cfd01eca922f3ce10c95cd4009c899978b40fa7bcb55f","impliedFormat":1},{"version":"1b945f39e90922712df8707e563730a7e7722ee02e920104cd0a8a6523148361","impliedFormat":1},{"version":"e14b1d4716e952ec75a3524db835b85465d18c3c9c1ee6e23e087297a2190838","impliedFormat":1},{"version":"1f12f3d94661123b4eccd25aed42b81f834ae2d9f0d686ed601faa46db19ebb8","impliedFormat":1},{"version":"361ca3f55e6bf5d439651c1e26fa08a9287d1b9b5093969b11215e1c7f2b7373","impliedFormat":1},{"version":"63526b1055d3c85be26b7f61efe3cf780ba25427ef6852503369f2976f30dd35","impliedFormat":1},{"version":"b414dc690527c2af9bb36d4b9cb0ab192a155841437f144021dc101b4ba81f04","impliedFormat":1},{"version":"9d52e2e21523a13e5a9656fd9c847a95512677ce200a16f605bbb8ac4cd46d6f","impliedFormat":1},{"version":"bb0e33c8ef13283e9f00fcc6f0e7af2bbaaebb8a2900c6cdfdaffae9eeeeaeb7","impliedFormat":1},{"version":"b868de165294a5c99672528fdf1ee66b81f2549c097e33d49c4d10454e26ad72","impliedFormat":1},{"version":"95a50fdfaf0ce83156078bf66c032785a216e1f49495e182b423e00d748b595c","impliedFormat":1},{"version":"e0d87f772ce1eb1c55af6e984b0ffd6042bf0882d4d8104b2dd2f5486680ab59","impliedFormat":1},{"version":"c21419bd8b2f0fe5a74513a1aac1f8d13e5ecb1f85633801d354ebe5a59cac26","impliedFormat":1},{"version":"5d562c71282c0d6c682fbe103763705ef4432eb00efd02b6350beb35a298d2ad","impliedFormat":1},{"version":"c80366fbee8cd9ea1e36ace20f7140c258bf869ae24817f5c6b5c6ba93dcaee5","impliedFormat":1},{"version":"571876c619dce518dda771de7737b2a3a08f113545fb12590f3666ea0b3bb62e","impliedFormat":1},{"version":"61a99bb694790289b6a29d6bc48b7827c73a773d1c3c8b36ab0d1d8527f0b101","signature":"eb92529e5737c6229b44ebfc397466bb682a0a2da44976bab14d1054f8d41db6","impliedFormat":99},{"version":"1a330f9d49298d4de19757e824990ab6dd238b2209e82db65af5ac1993fe27a7","signature":"8fb291b96fbdd6b4b942e28d553a6233f38c9abd8a91b2336313c60f13fc4552","impliedFormat":99},{"version":"0c8bada894b27db3cee693af857225b657b9718da74b2fb11cd30f526a94446b","signature":"067b7473faa397cde64c0c892c4440ac0125a34ac8dd3d017f76cfaf8ee9fad6","impliedFormat":99},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"49a5a44f2e68241a1d2bd9ec894535797998841c09729e506a7cbfcaa40f2180","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"1ca84b44ad1d8e4576f24904d8b95dd23b94ea67e1575f89614ac90062fc67f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d586db0a09a9495ebb5dece28f54df9684bfbd6e1f568426ca153126dac4a40","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"567b7f607f400873151d7bc63a049514b53c3c00f5f56e9e95695d93b66a138e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"84c1930e33d1bb12ad01bcbe11d656f9646bd21b2fb2afd96e8e10615a021aef","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4b87f767c7bc841511113c876a6b8bf1fd0cb0b718c888ad84478b372ec486b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"2bf469abae4cc9c0f340d4e05d9d26e37f936f9c8ca8f007a6534f109dcc77e4","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ada07543808f3b967624645a8e1ccd446f8b01ade47842acf1328aec899fed0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4c21aaa8257d7950a5b75a251d9075b6a371208fc948c9c8402f6690ef3b5b55","impliedFormat":1},{"version":"b5895e6353a5d708f55d8685c38a235c3a6d8138e374dee8ceb8ffde5aa8002a","impliedFormat":1},{"version":"54c4f21f578864961efc94e8f42bc893a53509e886370ec7dd602e0151b9266c","impliedFormat":1},{"version":"de735eca2c51dd8b860254e9fdb6d9ec19fe402dfe597c23090841ce3937cfc5","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"5155da3047ef977944d791a2188ff6e6c225f6975cc1910ab7bb6838ab84cede","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"e16d218a30f6a6810b57f7e968124eaa08c7bb366133ea34bbf01e7cd6b8c0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb8692dea24c27821f77e397272d9ed2eda0b95e4a75beb0fdda31081d15a8ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"5b6844ad931dcc1d3aca53268f4bd671428421464b1286746027aede398094f2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"0dbcebe2126d03936c70545e96a6e41007cf065be38a1ce4d32a39fcedefead4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"461e54289e6287e8494a0178ba18182acce51a02bca8dea219149bf2cf96f105","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"e31e51c55800014d926e3f74208af49cb7352803619855c89296074d1ecbb524","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"dfb96ba5177b68003deec9e773c47257da5c4c8a74053d8956389d832df72002","affectsGlobalScope":true,"impliedFormat":1},{"version":"92d3070580cf72b4bb80959b7f16ede9a3f39e6f4ef2ac87cfa4561844fdc69f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"613deebaec53731ff6b74fe1a89f094b708033db6396b601df3e6d5ab0ec0a47","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"e56eb632f0281c9f8210eb8c86cc4839a427a4ffffcfd2a5e40b956050b3e042","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1}],"root":[82,83,[105,107]],"options":{"allowJs":true,"alwaysStrict":true,"checkJs":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitAny":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"strictPropertyInitialization":false,"target":99},"referencedMap":[[81,1],[152,2],[153,2],[154,3],[113,4],[155,5],[156,6],[157,7],[108,8],[111,9],[109,8],[110,8],[158,10],[159,11],[160,12],[161,13],[162,14],[163,15],[164,15],[166,8],[165,16],[167,17],[168,18],[169,19],[151,20],[112,8],[170,21],[171,22],[172,23],[204,24],[173,25],[174,26],[175,27],[176,28],[177,29],[178,30],[179,31],[180,32],[181,33],[182,34],[183,34],[184,35],[185,8],[186,36],[188,37],[187,38],[189,39],[190,40],[191,41],[192,42],[193,43],[194,44],[195,45],[196,46],[197,47],[198,48],[199,49],[200,50],[201,51],[202,52],[203,53],[97,54],[86,55],[101,54],[100,56],[94,54],[95,8],[90,8],[98,54],[96,57],[91,58],[85,54],[102,59],[99,8],[93,60],[92,54],[84,54],[103,54],[89,61],[87,62],[88,63],[104,64],[79,8],[80,8],[14,8],[13,8],[2,8],[15,8],[16,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[3,8],[23,8],[24,8],[4,8],[25,8],[29,8],[26,8],[27,8],[28,8],[30,8],[31,8],[32,8],[5,8],[33,8],[34,8],[35,8],[36,8],[6,8],[40,8],[37,8],[38,8],[39,8],[41,8],[7,8],[42,8],[47,8],[48,8],[43,8],[44,8],[45,8],[46,8],[8,8],[52,8],[49,8],[50,8],[51,8],[53,8],[9,8],[54,8],[55,8],[56,8],[58,8],[57,8],[59,8],[60,8],[10,8],[61,8],[62,8],[63,8],[11,8],[64,8],[65,8],[66,8],[67,8],[68,8],[1,8],[69,8],[70,8],[12,8],[74,8],[72,8],[77,8],[76,8],[71,8],[75,8],[73,8],[78,8],[129,65],[139,66],[128,65],[149,67],[120,68],[119,69],[148,70],[142,71],[147,72],[122,73],[136,74],[121,75],[145,76],[117,77],[116,70],[146,78],[118,79],[123,80],[124,8],[127,80],[114,8],[150,81],[140,82],[131,83],[132,84],[134,85],[130,86],[133,87],[143,70],[125,88],[126,89],[135,90],[115,91],[138,82],[137,80],[141,8],[144,92],[106,93],[105,94],[82,95],[83,96],[107,97]],"version":"5.9.2"}
|
package/package.json
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { spawn, ChildProcessWithoutNullStreams } from "node:child_process";
|
|
2
|
+
import { once } from "node:events";
|
|
1
3
|
import { Codec, SignalingDelegate, WebRtcClient } from "@spacebarchat/spacebar-webrtc-types";
|
|
2
4
|
import { VoiceRoom } from "./VoiceRoom.js";
|
|
3
5
|
import { PionWebRtcClient } from "./PionWebRtcClient.js";
|
|
@@ -5,34 +7,63 @@ import { CodecInfo, MediaInfo, SDPInfo } from "semantic-sdp";
|
|
|
5
7
|
import { IpcClient } from "./IpcClient.js";
|
|
6
8
|
|
|
7
9
|
export class PionSignalingDelegate implements SignalingDelegate {
|
|
8
|
-
|
|
10
|
+
private _ip: string;
|
|
9
11
|
private _port: number;
|
|
10
12
|
private _rooms: Map<string, VoiceRoom> = new Map();
|
|
13
|
+
private _sfuProcess?: ChildProcessWithoutNullStreams;
|
|
14
|
+
private _isStopping = false;
|
|
11
15
|
public ipc: IpcClient;
|
|
12
16
|
|
|
13
17
|
constructor() {
|
|
14
|
-
this.ipc = new IpcClient(
|
|
18
|
+
this.ipc = new IpcClient("sfu-ipc", this);
|
|
15
19
|
}
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
public async start(public_ip: string, portMin: number, portMax: number): Promise<void> {
|
|
18
22
|
this._port = portMin;
|
|
19
23
|
this._ip = public_ip;
|
|
24
|
+
if(!await this.startSfu())
|
|
25
|
+
await this.ipc.connect();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private async startSfu() {
|
|
29
|
+
if (!process.env.PION_SFU_BIN) {
|
|
30
|
+
console.warn(`PION_SFU_BIN environment variable not set, skipping integrated SFU startup - voice will not work if running at least an SFU instance at ${this._ip}:${this._port}!`);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
this._sfuProcess = spawn(process.env.PION_SFU_BIN, [ "-port", this._port.toString(), "-ip", this._ip ]);
|
|
34
|
+
|
|
35
|
+
this._sfuProcess!.stdout.on("data", (data) => {
|
|
36
|
+
console.log(`[Pion SFU] ${data}`);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
this._sfuProcess!.stderr.on("data", (data) => {
|
|
40
|
+
console.error(`[Pion SFU] ${data}`);
|
|
41
|
+
});
|
|
42
|
+
|
|
20
43
|
await this.ipc.connect();
|
|
21
|
-
}
|
|
22
44
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
once(this._sfuProcess!, "close").then(([ code ]) => {
|
|
46
|
+
console.log(`Pion SFU exited with code: ${code} - restarting...`);
|
|
47
|
+
this.ipc.close(); // clean up state, since the SFU won't have any
|
|
48
|
+
if (!this._isStopping) this.startSfu();
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public join(
|
|
55
|
+
roomId: string,
|
|
56
|
+
userId: string,
|
|
57
|
+
ws: any,
|
|
58
|
+
type: "guild-voice" | "dm-voice" | "stream",
|
|
28
59
|
): Promise<WebRtcClient<any>> {
|
|
29
|
-
|
|
60
|
+
// if this is guild-voice or dm-voice, make sure user isn't already in a room of those types
|
|
30
61
|
// user can be in many simultanous go live stream rooms though (can be in a voice channel and watching a stream for example, or watching multiple streams)
|
|
31
|
-
const rooms = type
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
62
|
+
const rooms = type==="stream" ? []:this.rooms
|
|
63
|
+
.values()
|
|
64
|
+
.filter((room) =>
|
|
65
|
+
room.type==="dm-voice" || room.type==="guild-voice",
|
|
66
|
+
);
|
|
36
67
|
let existingClient;
|
|
37
68
|
|
|
38
69
|
for (const room of rooms) {
|
|
@@ -59,45 +90,45 @@ export class PionSignalingDelegate implements SignalingDelegate {
|
|
|
59
90
|
|
|
60
91
|
room?.onClientJoin(client);
|
|
61
92
|
|
|
62
|
-
this.ipc.send({ type: "join", clientId: client.uniqueId! })
|
|
93
|
+
this.ipc.send({ type: "join", clientId: client.uniqueId! });
|
|
63
94
|
|
|
64
95
|
return Promise.resolve(client);
|
|
65
|
-
|
|
96
|
+
}
|
|
66
97
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
): Promise<{sdp: string, selectedVideoCodec: string}> {
|
|
72
|
-
|
|
98
|
+
public async onOffer(
|
|
99
|
+
client: WebRtcClient<any>,
|
|
100
|
+
sdpOffer: string,
|
|
101
|
+
codecs: Codec[],
|
|
102
|
+
): Promise<{ sdp: string, selectedVideoCodec: string }> {
|
|
103
|
+
const room = this._rooms.get(client.voiceRoomId);
|
|
73
104
|
|
|
74
105
|
if (!room) {
|
|
75
106
|
console.error(
|
|
76
|
-
|
|
107
|
+
"error, client sent an offer but has not authenticated",
|
|
77
108
|
);
|
|
78
109
|
Promise.reject();
|
|
79
110
|
}
|
|
80
111
|
|
|
81
|
-
const offer = SDPInfo.parse("m=audio\n" + sdpOffer);
|
|
112
|
+
const offer = sdpOffer.startsWith("v=0") ? SDPInfo.parse(sdpOffer):SDPInfo.parse("m=audio\n" + sdpOffer);
|
|
82
113
|
|
|
83
114
|
const rtpHeaders = new Map(offer.medias[0].extensions);
|
|
84
115
|
|
|
85
116
|
const getIdForHeader = (
|
|
86
|
-
|
|
87
|
-
|
|
117
|
+
rtpHeaders: Map<number, string>,
|
|
118
|
+
headerUri: string,
|
|
88
119
|
) => {
|
|
89
|
-
for (const [key, value] of rtpHeaders) {
|
|
90
|
-
if (value
|
|
120
|
+
for (const [ key, value ] of rtpHeaders) {
|
|
121
|
+
if (value==headerUri) return key;
|
|
91
122
|
}
|
|
92
123
|
return -1;
|
|
93
124
|
};
|
|
94
125
|
|
|
95
|
-
const isChromium = codecs.find((val) => val.name
|
|
126
|
+
const isChromium = codecs.find((val) => val.name=="opus")?.payload_type===111;
|
|
96
127
|
|
|
97
128
|
const audioMedia = new MediaInfo("0", "audio");
|
|
98
129
|
const audioCodec = new CodecInfo(
|
|
99
|
-
|
|
100
|
-
|
|
130
|
+
"opus",
|
|
131
|
+
codecs.find((val) => val.name=="opus")?.payload_type ?? 111,
|
|
101
132
|
);
|
|
102
133
|
audioCodec.addParam("minptime", "10");
|
|
103
134
|
audioCodec.addParam("usedtx", "1");
|
|
@@ -106,27 +137,27 @@ export class PionSignalingDelegate implements SignalingDelegate {
|
|
|
106
137
|
audioMedia.addCodec(audioCodec);
|
|
107
138
|
|
|
108
139
|
const audioLevelExtensionId = getIdForHeader(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
)
|
|
140
|
+
rtpHeaders,
|
|
141
|
+
"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
|
|
142
|
+
);
|
|
112
143
|
|
|
113
|
-
if(audioLevelExtensionId > -1) {
|
|
144
|
+
if (audioLevelExtensionId > -1) {
|
|
114
145
|
audioMedia.addExtension(
|
|
115
|
-
|
|
116
|
-
|
|
146
|
+
audioLevelExtensionId,
|
|
147
|
+
"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
|
|
117
148
|
);
|
|
118
149
|
}
|
|
119
150
|
|
|
120
151
|
if (isChromium) {
|
|
121
152
|
// if this is chromium, apply this header
|
|
122
153
|
const transportWideCcHeaderId = getIdForHeader(
|
|
123
|
-
|
|
124
|
-
"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
|
|
125
|
-
)
|
|
126
|
-
if(transportWideCcHeaderId > -1) {
|
|
127
|
-
audioMedia.addExtension(
|
|
128
|
-
transportWideCcHeaderId,
|
|
154
|
+
rtpHeaders,
|
|
129
155
|
"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
|
|
156
|
+
);
|
|
157
|
+
if (transportWideCcHeaderId > -1) {
|
|
158
|
+
audioMedia.addExtension(
|
|
159
|
+
transportWideCcHeaderId,
|
|
160
|
+
"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
|
|
130
161
|
);
|
|
131
162
|
}
|
|
132
163
|
}
|
|
@@ -134,77 +165,81 @@ export class PionSignalingDelegate implements SignalingDelegate {
|
|
|
134
165
|
const videoMedia = new MediaInfo("1", "video");
|
|
135
166
|
|
|
136
167
|
const videoCodec = new CodecInfo(
|
|
137
|
-
|
|
138
|
-
|
|
168
|
+
"H264",
|
|
169
|
+
codecs.find((val) => val.name=="H264")?.payload_type ?? 102,
|
|
139
170
|
);
|
|
140
171
|
videoCodec.setRTX(
|
|
141
|
-
|
|
172
|
+
codecs.find((val) => val.name=="H264")?.rtx_payload_type ?? 103,
|
|
142
173
|
);
|
|
143
174
|
videoCodec.addParam("level-asymmetry-allowed", "1");
|
|
144
175
|
videoCodec.addParam("packetization-mode", "1");
|
|
145
176
|
videoCodec.addParam("profile-level-id", "42e01f");
|
|
146
177
|
videoCodec.addParam("x-google-max-bitrate", "2500");
|
|
147
178
|
videoMedia.addCodec(videoCodec);
|
|
148
|
-
|
|
179
|
+
|
|
149
180
|
const absSendTimeHeaderId = getIdForHeader(
|
|
150
|
-
|
|
151
|
-
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
|
|
152
|
-
)
|
|
153
|
-
if(absSendTimeHeaderId > -1) {
|
|
154
|
-
videoMedia.addExtension(
|
|
155
|
-
absSendTimeHeaderId,
|
|
181
|
+
rtpHeaders,
|
|
156
182
|
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
|
|
183
|
+
);
|
|
184
|
+
if (absSendTimeHeaderId > -1) {
|
|
185
|
+
videoMedia.addExtension(
|
|
186
|
+
absSendTimeHeaderId,
|
|
187
|
+
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
|
|
157
188
|
);
|
|
158
189
|
}
|
|
159
|
-
const toffsetHeaderId = getIdForHeader(rtpHeaders, "urn:ietf:params:rtp-hdrext:toffset")
|
|
160
|
-
if(toffsetHeaderId > -1) {
|
|
190
|
+
const toffsetHeaderId = getIdForHeader(rtpHeaders, "urn:ietf:params:rtp-hdrext:toffset");
|
|
191
|
+
if (toffsetHeaderId > -1) {
|
|
161
192
|
videoMedia.addExtension(
|
|
162
|
-
|
|
163
|
-
|
|
193
|
+
toffsetHeaderId,
|
|
194
|
+
"urn:ietf:params:rtp-hdrext:toffset",
|
|
164
195
|
);
|
|
165
196
|
}
|
|
166
197
|
const playoutDelayHeaderId = getIdForHeader(
|
|
167
|
-
|
|
168
|
-
"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay",
|
|
169
|
-
)
|
|
170
|
-
if(playoutDelayHeaderId > -1) {
|
|
171
|
-
videoMedia.addExtension(
|
|
172
|
-
playoutDelayHeaderId,
|
|
198
|
+
rtpHeaders,
|
|
173
199
|
"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay",
|
|
200
|
+
);
|
|
201
|
+
if (playoutDelayHeaderId > -1) {
|
|
202
|
+
videoMedia.addExtension(
|
|
203
|
+
playoutDelayHeaderId,
|
|
204
|
+
"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay",
|
|
174
205
|
);
|
|
175
206
|
}
|
|
176
207
|
const transportWideCcHeaderId = getIdForHeader(
|
|
177
208
|
rtpHeaders,
|
|
178
209
|
"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
210
|
+
);
|
|
211
|
+
if (transportWideCcHeaderId > -1) {
|
|
212
|
+
videoMedia.addExtension(
|
|
182
213
|
transportWideCcHeaderId,
|
|
183
214
|
"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
|
|
184
|
-
|
|
185
|
-
|
|
215
|
+
);
|
|
216
|
+
}
|
|
186
217
|
|
|
187
218
|
if (isChromium) {
|
|
188
219
|
// if this is chromium, apply this header
|
|
189
|
-
const videoOrientationHeaderId = getIdForHeader(rtpHeaders, "urn:3gpp:video-orientation")
|
|
190
|
-
if(videoOrientationHeaderId > -1) {
|
|
220
|
+
const videoOrientationHeaderId = getIdForHeader(rtpHeaders, "urn:3gpp:video-orientation");
|
|
221
|
+
if (videoOrientationHeaderId > -1) {
|
|
191
222
|
videoMedia.addExtension(
|
|
192
|
-
|
|
193
|
-
|
|
223
|
+
videoOrientationHeaderId,
|
|
224
|
+
"urn:3gpp:video-orientation",
|
|
194
225
|
);
|
|
195
226
|
}
|
|
196
227
|
}
|
|
197
228
|
|
|
198
|
-
offer.medias = [audioMedia, videoMedia];
|
|
199
|
-
|
|
200
|
-
const finalOffer = offer.toString().replace(
|
|
229
|
+
offer.medias = [ audioMedia, videoMedia ];
|
|
230
|
+
|
|
231
|
+
const finalOffer = offer.toString().replace(" NaN ", " 3984 ").replace(":actpass", ":active");
|
|
201
232
|
|
|
202
|
-
console.log(finalOffer)
|
|
203
|
-
const res = await this.ipc.request({
|
|
233
|
+
console.log(finalOffer);
|
|
234
|
+
const res = await this.ipc.request({
|
|
235
|
+
type: "offer",
|
|
236
|
+
clientId: (client as PionWebRtcClient).uniqueId!,
|
|
237
|
+
sdp: finalOffer,
|
|
238
|
+
});
|
|
204
239
|
|
|
205
|
-
if(!res.sdp) return Promise.reject();
|
|
240
|
+
if (!res.sdp) return Promise.reject();
|
|
206
241
|
|
|
207
|
-
const answerSdp = SDPInfo.parse(res.sdp)
|
|
242
|
+
const answerSdp = SDPInfo.parse(res.sdp);
|
|
208
243
|
|
|
209
244
|
//console.log(res.sdp)
|
|
210
245
|
|
|
@@ -212,28 +247,28 @@ export class PionSignalingDelegate implements SignalingDelegate {
|
|
|
212
247
|
const fingerprint = answerSdp.dtls.getHash() + " " + answerSdp.dtls.getFingerprint();
|
|
213
248
|
|
|
214
249
|
const answer =
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
return Promise.resolve({sdp: answer, selectedVideoCodec: videoCodec.codec.toUpperCase()});
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
250
|
+
`m=audio ${this.port} ICE/SDP\n` +
|
|
251
|
+
`a=fingerprint:${fingerprint}\n` +
|
|
252
|
+
`c=IN IP4 ${this.ip}\n` +
|
|
253
|
+
`a=rtcp:${this.port}\n` +
|
|
254
|
+
`a=ice-ufrag:${answerSdp.ice.getUfrag()}\n` +
|
|
255
|
+
`a=ice-pwd:${answerSdp.ice.getPwd()}\n` +
|
|
256
|
+
`a=fingerprint:${fingerprint}\n` +
|
|
257
|
+
`a=candidate:1 1 ${candidate.getTransport()} ${candidate.getFoundation()} ${candidate.getAddress()} ${candidate.getPort()} typ host\n`;
|
|
258
|
+
|
|
259
|
+
return Promise.resolve({ sdp: answer, selectedVideoCodec: videoCodec.codec.toUpperCase() });
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
public onClientClose = (client: WebRtcClient<any>) => {
|
|
228
263
|
this._rooms.get(client.voiceRoomId)?.onClientLeave(client);
|
|
229
|
-
this.ipc.send({ type: "leave", clientId: (client as PionWebRtcClient).uniqueId! })
|
|
230
|
-
|
|
264
|
+
this.ipc.send({ type: "leave", clientId: (client as PionWebRtcClient).uniqueId! });
|
|
265
|
+
};
|
|
231
266
|
|
|
232
|
-
|
|
267
|
+
public updateSDP(offer: string): void {
|
|
233
268
|
throw new Error("Method not implemented.");
|
|
234
269
|
}
|
|
235
270
|
|
|
236
|
-
|
|
271
|
+
public getClientsForRtcServer(rtcServerId: string): Set<WebRtcClient<any>> {
|
|
237
272
|
if (!this._rooms.has(rtcServerId)) {
|
|
238
273
|
return new Set();
|
|
239
274
|
}
|
|
@@ -252,15 +287,16 @@ export class PionSignalingDelegate implements SignalingDelegate {
|
|
|
252
287
|
}
|
|
253
288
|
|
|
254
289
|
public createRoom(
|
|
255
|
-
|
|
256
|
-
|
|
290
|
+
rtcServerId: string,
|
|
291
|
+
type: "guild-voice" | "dm-voice" | "stream",
|
|
257
292
|
): void {
|
|
258
293
|
this._rooms.set(rtcServerId, new VoiceRoom(rtcServerId, type, this));
|
|
259
294
|
}
|
|
260
295
|
|
|
261
|
-
|
|
296
|
+
get ip(): string {
|
|
262
297
|
return this._ip;
|
|
263
298
|
}
|
|
299
|
+
|
|
264
300
|
get port(): number {
|
|
265
301
|
return this._port;
|
|
266
302
|
}
|
|
@@ -270,10 +306,12 @@ export class PionSignalingDelegate implements SignalingDelegate {
|
|
|
270
306
|
}
|
|
271
307
|
|
|
272
308
|
public async stop(): Promise<void> {
|
|
309
|
+
this._isStopping = true;
|
|
273
310
|
for (const room of this._rooms.values()) {
|
|
274
311
|
await room.stop();
|
|
275
312
|
}
|
|
276
313
|
await this.ipc.close();
|
|
314
|
+
this._sfuProcess?.kill();
|
|
277
315
|
return Promise.resolve();
|
|
278
316
|
}
|
|
279
317
|
}
|