node-opcua-chunkmanager 2.56.0 → 2.62.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/.mocharc.yml CHANGED
@@ -1 +1 @@
1
- require: ../../node_modules/source-map-support/register
1
+ require: ../../node_modules/source-map-support/register
package/LICENSE CHANGED
@@ -1,20 +1,20 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2014-2021 Etienne Rossignon
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
- the Software, and to permit persons to whom the Software is furnished to do so,
10
- subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2021 Etienne Rossignon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-chunkmanager",
3
- "version": "2.56.0",
3
+ "version": "2.62.4",
4
4
  "description": "pure nodejs OPCUA SDK - module -chunkmanager",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "chalk": "4.1.2",
15
15
  "node-opcua-assert": "2.55.0",
16
- "node-opcua-basic-types": "2.56.0",
16
+ "node-opcua-basic-types": "2.62.4",
17
17
  "node-opcua-binary-stream": "2.55.0",
18
18
  "node-opcua-buffer-utils": "2.55.0",
19
- "node-opcua-factory": "2.56.0",
19
+ "node-opcua-factory": "2.62.4",
20
20
  "node-opcua-packet-assembler": "2.55.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@types/node": "16.10.1",
24
- "node-opcua-debug": "2.55.0",
23
+ "@types/node": "16.11.9",
24
+ "node-opcua-debug": "2.62.4",
25
25
  "should": "^13.2.3",
26
- "source-map-support": "^0.5.20"
26
+ "source-map-support": "^0.5.21"
27
27
  },
28
28
  "author": "Etienne Rossignon",
29
29
  "license": "MIT",
@@ -40,5 +40,5 @@
40
40
  "internet of things"
41
41
  ],
42
42
  "homepage": "http://node-opcua.github.io/",
43
- "gitHead": "9f6eac1c658c0d182fbe03cf58f799af468615eb"
43
+ "gitHead": "b4cb2b2e4ce2b141614dbcb02a3e385c747ac1a1"
44
44
  }
@@ -1,59 +1,59 @@
1
- /***
2
- * @module node-opcua-chunkmanager
3
- */
4
- import { decodeUInt32, encodeUInt32, UInt32 } from "node-opcua-basic-types";
5
- import { BinaryStream, OutputBinaryStream } from "node-opcua-binary-stream";
6
- import {
7
- BaseUAObject,
8
- buildStructuredType,
9
- check_options_correctness_against_schema,
10
- initialize_field,
11
- parameters,
12
- StructuredTypeSchema
13
- } from "node-opcua-factory";
14
-
15
- const schemaSequenceHeader: StructuredTypeSchema = buildStructuredType({
16
- baseType: "BaseUAObject",
17
- fields: [
18
- // A monotonically increasing sequence number assigned by the sender to each
19
- // MessageChunk sent over the ClientSecureChannelLayer.
20
- { name: "sequenceNumber", fieldType: "UInt32" },
21
- // An identifier assigned by the client to OPC UA request Message. All MessageChunks for
22
- // the request and the associated response use the same identifier.
23
- { name: "requestId", fieldType: "UInt32" }
24
- ],
25
- name: "SequenceHeader"
26
- });
27
-
28
- export class SequenceHeader extends BaseUAObject {
29
- public static possibleFields: string[] = ["sequenceNumber", "requestId"];
30
- public static schema = schemaSequenceHeader;
31
- public sequenceNumber: UInt32;
32
- public requestId: UInt32;
33
-
34
- constructor(options?: any) {
35
- options = options || {};
36
- super();
37
- const schema = schemaSequenceHeader;
38
- /* istanbul ignore next */
39
- if (parameters.debugSchemaHelper) {
40
- check_options_correctness_against_schema(this, schema, options);
41
- }
42
- this.sequenceNumber = initialize_field(schema.fields[0], options.sequenceNumber);
43
- this.requestId = initialize_field(schema.fields[1], options.requestId);
44
- }
45
-
46
- public encode(stream: OutputBinaryStream): void {
47
- super.encode(stream);
48
- encodeUInt32(this.sequenceNumber, stream);
49
- encodeUInt32(this.requestId, stream);
50
- }
51
-
52
- public decode(stream: BinaryStream): void {
53
- super.decode(stream);
54
- this.sequenceNumber = decodeUInt32(stream);
55
- this.requestId = decodeUInt32(stream);
56
- }
57
- }
58
-
59
- SequenceHeader.prototype.schema = SequenceHeader.schema;
1
+ /***
2
+ * @module node-opcua-chunkmanager
3
+ */
4
+ import { decodeUInt32, encodeUInt32, UInt32 } from "node-opcua-basic-types";
5
+ import { BinaryStream, OutputBinaryStream } from "node-opcua-binary-stream";
6
+ import {
7
+ BaseUAObject,
8
+ buildStructuredType,
9
+ check_options_correctness_against_schema,
10
+ initialize_field,
11
+ parameters,
12
+ StructuredTypeSchema
13
+ } from "node-opcua-factory";
14
+
15
+ const schemaSequenceHeader: StructuredTypeSchema = buildStructuredType({
16
+ baseType: "BaseUAObject",
17
+ fields: [
18
+ // A monotonically increasing sequence number assigned by the sender to each
19
+ // MessageChunk sent over the ClientSecureChannelLayer.
20
+ { name: "sequenceNumber", fieldType: "UInt32" },
21
+ // An identifier assigned by the client to OPC UA request Message. All MessageChunks for
22
+ // the request and the associated response use the same identifier.
23
+ { name: "requestId", fieldType: "UInt32" }
24
+ ],
25
+ name: "SequenceHeader"
26
+ });
27
+
28
+ export class SequenceHeader extends BaseUAObject {
29
+ public static possibleFields: string[] = ["sequenceNumber", "requestId"];
30
+ public static schema = schemaSequenceHeader;
31
+ public sequenceNumber: UInt32;
32
+ public requestId: UInt32;
33
+
34
+ constructor(options?: any) {
35
+ options = options || {};
36
+ super();
37
+ const schema = schemaSequenceHeader;
38
+ /* istanbul ignore next */
39
+ if (parameters.debugSchemaHelper) {
40
+ check_options_correctness_against_schema(this, schema, options);
41
+ }
42
+ this.sequenceNumber = initialize_field(schema.fields[0], options.sequenceNumber);
43
+ this.requestId = initialize_field(schema.fields[1], options.requestId);
44
+ }
45
+
46
+ public encode(stream: OutputBinaryStream): void {
47
+ super.encode(stream);
48
+ encodeUInt32(this.sequenceNumber, stream);
49
+ encodeUInt32(this.requestId, stream);
50
+ }
51
+
52
+ public decode(stream: BinaryStream): void {
53
+ super.decode(stream);
54
+ this.sequenceNumber = decodeUInt32(stream);
55
+ this.requestId = decodeUInt32(stream);
56
+ }
57
+ }
58
+
59
+ SequenceHeader.prototype.schema = SequenceHeader.schema;
@@ -1,333 +1,333 @@
1
- /***
2
- * @module node-opcua-chunkmanager
3
- */
4
- import { EventEmitter } from "events";
5
-
6
- import { assert } from "node-opcua-assert";
7
- import { BinaryStream } from "node-opcua-binary-stream";
8
- import { createFastUninitializedBuffer } from "node-opcua-buffer-utils";
9
-
10
- import { readMessageHeader } from "./read_message_header";
11
-
12
- export function verify_message_chunk(messageChunk: Buffer): void {
13
- assert(messageChunk);
14
- assert(messageChunk instanceof Buffer);
15
- const header = readMessageHeader(new BinaryStream(messageChunk));
16
- if (messageChunk.length !== header.length) {
17
- throw new Error(" chunk length = " + messageChunk.length + " message length " + header.length);
18
- }
19
- }
20
-
21
- // see https://github.com/substack/_buffer-handbook
22
- // http://blog.nodejs.org/2012/12/20/streams2/
23
- // http://codewinds.com/blog/2013-08-20-nodejs-transform-streams.html
24
-
25
- // +----------------+----
26
- // | message header | ^
27
- // +----------------+ |<- data to sign
28
- // | security header| |
29
- // +----------------+ | ---
30
- // | Sequence header| | ^
31
- // +----------------+ | |<- data to encrypt
32
- // | BODY | | |
33
- // +----------------+ | |
34
- // | padding | v |
35
- // +----------------+--- |
36
- // | Signature | v
37
- // +----------------+------
38
- //
39
- // chunkSize = 8192
40
- // plainBlockSize = 256-11
41
- // cipherBlockSize = 256
42
- // headerSize = messageHeaderSize + securityHeaderSize
43
- // maxBodySize = plainBlockSize*floor((chunkSize–headerSize–signatureLength-1)/cipherBlockSize)-sequenceHeaderSize;
44
- // length(data to encrypt) = n *
45
-
46
- // Rules:
47
- // - The SequenceHeaderSize is always 8 bytes
48
- // - The HeaderSize includes the MessageHeader and the SecurityHeader.
49
- // - The PaddingSize and Padding fields are not present if the MessageChunk is not encrypted.
50
- // - The Signature field is not present if the MessageChunk is not signed.
51
-
52
- export type WriteHeaderFunc = (chunk: Buffer, isLast: boolean, expectedLength: number) => void;
53
- export type WriteSequenceHeaderFunc = (chunk: Buffer) => void;
54
- export type SignBufferFunc = (buffer: Buffer) => Buffer;
55
- export type EncryptBufferFunc = (buffer: Buffer) => Buffer;
56
-
57
- export interface IChunkManagerOptions {
58
- chunkSize: number;
59
- signatureLength: number;
60
- sequenceHeaderSize: number;
61
- cipherBlockSize: number;
62
- plainBlockSize: number;
63
-
64
- signBufferFunc?: SignBufferFunc;
65
- encryptBufferFunc?: EncryptBufferFunc;
66
- writeSequenceHeaderFunc?: WriteSequenceHeaderFunc;
67
-
68
- headerSize: number;
69
- writeHeaderFunc?: WriteHeaderFunc; // write header must be specified if headerSize !=0
70
- }
71
-
72
- export class ChunkManager extends EventEmitter {
73
- public signBufferFunc?: SignBufferFunc;
74
- public encryptBufferFunc?: EncryptBufferFunc;
75
- public writeSequenceHeaderFunc?: WriteSequenceHeaderFunc;
76
- public writeHeaderFunc?: WriteHeaderFunc;
77
-
78
- private readonly chunkSize: number;
79
- private readonly headerSize: number;
80
- private readonly signatureLength: number;
81
- private readonly sequenceHeaderSize: number;
82
- private readonly cipherBlockSize: number;
83
- private readonly plainBlockSize: number;
84
-
85
- // --------------
86
- private readonly maxBodySize: number;
87
- private readonly maxBlock?: number;
88
- private readonly dataOffset: number;
89
- private chunk: Buffer | null;
90
- private cursor: number;
91
- private pendingChunk: Buffer | null;
92
- private dataEnd: number;
93
-
94
- constructor(options: IChunkManagerOptions) {
95
- super();
96
-
97
- // { chunkSize : 32, headerSize : 10 ,signatureLength: 32 }
98
- this.chunkSize = options.chunkSize;
99
-
100
- this.headerSize = options.headerSize || 0;
101
- if (this.headerSize) {
102
- this.writeHeaderFunc = options.writeHeaderFunc;
103
- assert(typeof this.writeHeaderFunc === "function");
104
- }
105
-
106
- this.sequenceHeaderSize = options.sequenceHeaderSize === undefined ? 8 : options.sequenceHeaderSize;
107
- if (this.sequenceHeaderSize > 0) {
108
- this.writeSequenceHeaderFunc = options.writeSequenceHeaderFunc;
109
- assert(typeof this.writeSequenceHeaderFunc === "function");
110
- }
111
-
112
- this.signatureLength = options.signatureLength || 0;
113
- this.signBufferFunc = options.signBufferFunc;
114
-
115
- this.plainBlockSize = options.plainBlockSize || 0; // 256-14;
116
- this.cipherBlockSize = options.cipherBlockSize || 0; // 256;
117
- this.dataEnd = 0;
118
-
119
- if (this.cipherBlockSize === 0) {
120
- assert(this.plainBlockSize === 0);
121
- // unencrypted block
122
- this.maxBodySize = this.chunkSize - this.headerSize - this.signatureLength - this.sequenceHeaderSize;
123
- this.encryptBufferFunc = undefined;
124
- } else {
125
- assert(this.plainBlockSize !== 0);
126
- // During encryption a block with a size equal to PlainTextBlockSize is processed to produce a block
127
- // with size equal to CipherTextBlockSize. These values depend on the encryption algorithm and may
128
- // be the same.
129
-
130
- this.encryptBufferFunc = options.encryptBufferFunc;
131
- assert(typeof this.encryptBufferFunc === "function", "an encryptBufferFunc is required");
132
-
133
- // this is the formula proposed by OPCUA
134
- this.maxBodySize =
135
- this.plainBlockSize *
136
- Math.floor((this.chunkSize - this.headerSize - this.signatureLength - 1) / this.cipherBlockSize) -
137
- this.sequenceHeaderSize;
138
-
139
- // this is the formula proposed by ERN
140
- this.maxBlock = Math.floor((this.chunkSize - this.headerSize) / this.cipherBlockSize);
141
- this.maxBodySize = this.plainBlockSize * this.maxBlock - this.sequenceHeaderSize - this.signatureLength - 1;
142
-
143
- if (this.plainBlockSize > 256) {
144
- this.maxBodySize -= 1;
145
- }
146
- }
147
- assert(this.maxBodySize > 0); // no space left to write data
148
-
149
- // where the data starts in the block
150
- this.dataOffset = this.headerSize + this.sequenceHeaderSize;
151
-
152
- this.chunk = null;
153
- this.cursor = 0;
154
- this.pendingChunk = null;
155
- }
156
-
157
- public write(buffer: Buffer, length?: number) {
158
- length = length || buffer.length;
159
- assert(buffer instanceof Buffer || buffer === null);
160
- assert(length > 0);
161
-
162
- let l = length;
163
- let inputCursor = 0;
164
-
165
- while (l > 0) {
166
- assert(length - inputCursor !== 0);
167
-
168
- if (this.cursor === 0) {
169
- this._push_pending_chunk(false);
170
- }
171
-
172
- // space left in current chunk
173
- const spaceLeft = this.maxBodySize - this.cursor;
174
-
175
- const nbToWrite = Math.min(length - inputCursor, spaceLeft);
176
-
177
- this.chunk = this.chunk || createFastUninitializedBuffer(this.chunkSize);
178
-
179
- if (buffer) {
180
- buffer.copy(this.chunk!, this.cursor + this.dataOffset, inputCursor, inputCursor + nbToWrite);
181
- }
182
-
183
- inputCursor += nbToWrite;
184
- this.cursor += nbToWrite;
185
-
186
- if (this.cursor >= this.maxBodySize) {
187
- this._post_process_current_chunk();
188
- }
189
- l -= nbToWrite;
190
- }
191
- }
192
-
193
- public end() {
194
- if (this.cursor > 0) {
195
- this._post_process_current_chunk();
196
- }
197
- this._push_pending_chunk(true);
198
- }
199
-
200
- /**
201
- * compute the signature of the chunk and append it at the end
202
- * of the data block.
203
- *
204
- * @method _write_signature
205
- * @private
206
- */
207
- private _write_signature(chunk: Buffer) {
208
- if (this.signBufferFunc) {
209
- assert(typeof this.signBufferFunc === "function");
210
- assert(this.signatureLength !== 0);
211
-
212
- const signatureStart = this.dataEnd;
213
- const sectionToSign = chunk.slice(0, signatureStart);
214
-
215
- const signature = this.signBufferFunc(sectionToSign);
216
- assert(signature.length === this.signatureLength);
217
-
218
- signature.copy(chunk, signatureStart);
219
- } else {
220
- assert(this.signatureLength === 0, "expecting NO SIGN");
221
- }
222
- }
223
-
224
- private _encrypt(chunk: Buffer) {
225
- if (this.plainBlockSize > 0) {
226
- assert(this.dataEnd !== undefined);
227
- const startEncryptionPos = this.headerSize;
228
- const endEncryptionPos = this.dataEnd + this.signatureLength;
229
-
230
- const areaToEncrypt = chunk.slice(startEncryptionPos, endEncryptionPos);
231
-
232
- assert(areaToEncrypt.length % this.plainBlockSize === 0); // padding should have been applied
233
- const nbBlock = areaToEncrypt.length / this.plainBlockSize;
234
-
235
- const encryptedBuffer = this.encryptBufferFunc!(areaToEncrypt);
236
- assert(encryptedBuffer.length % this.cipherBlockSize === 0);
237
- assert(encryptedBuffer.length === nbBlock * this.cipherBlockSize);
238
-
239
- encryptedBuffer.copy(chunk, this.headerSize, 0);
240
- }
241
- }
242
-
243
- private _push_pending_chunk(isLast: boolean) {
244
- if (this.pendingChunk) {
245
- const expectedLength = this.pendingChunk.length;
246
-
247
- if (this.headerSize > 0) {
248
- // Release 1.02 39 OPC Unified Architecture, Part 6:
249
- // The sequence header ensures that the first encrypted block of every Message sent over
250
- // a channel will start with different data.
251
- this.writeHeaderFunc!(this.pendingChunk.slice(0, this.headerSize), isLast, expectedLength);
252
- }
253
- if (this.sequenceHeaderSize > 0) {
254
- this.writeSequenceHeaderFunc!(this.pendingChunk.slice(this.headerSize, this.headerSize + this.sequenceHeaderSize));
255
- }
256
-
257
- this._write_signature(this.pendingChunk);
258
-
259
- this._encrypt(this.pendingChunk);
260
-
261
- /**
262
- * @event chunk
263
- * @param chunk {Buffer}
264
- * @param isLast {Boolean} , true if final chunk
265
- */
266
- this.emit("chunk", this.pendingChunk, isLast);
267
- this.pendingChunk = null;
268
- }
269
- }
270
-
271
- private _write_padding_bytes(nbPaddingByteTotal: number) {
272
- const nbPaddingByte = nbPaddingByteTotal % 256;
273
- const extraNbPaddingByte = Math.floor(nbPaddingByteTotal / 256);
274
-
275
- assert(extraNbPaddingByte === 0 || this.plainBlockSize > 256, "extraNbPaddingByte only requested when key size > 2048");
276
-
277
- // write the padding byte
278
- this.chunk!.writeUInt8(nbPaddingByte, this.cursor + this.dataOffset);
279
- this.cursor += 1;
280
-
281
- for (let i = 0; i < nbPaddingByteTotal; i++) {
282
- this.chunk!.writeUInt8(nbPaddingByte, this.cursor + this.dataOffset + i);
283
- }
284
- this.cursor += nbPaddingByteTotal;
285
-
286
- if (this.plainBlockSize > 256) {
287
- this.chunk!.writeUInt8(extraNbPaddingByte, this.cursor + this.dataOffset);
288
- this.cursor += 1;
289
- }
290
- }
291
-
292
- private _post_process_current_chunk() {
293
- let extraEncryptionBytes = 0;
294
- // add padding bytes if needed
295
- if (this.plainBlockSize > 0) {
296
- // write padding ( if encryption )
297
-
298
- // let's calculate curLength = the length of the block to encrypt without padding yet
299
- // +---------------+---------------+-------------+---------+--------------+------------+
300
- // |SequenceHeader | data | paddingByte | padding | extraPadding | signature |
301
- // +---------------+---------------+-------------+---------+--------------+------------+
302
- let curLength = this.sequenceHeaderSize + this.cursor + this.signatureLength;
303
- if (this.plainBlockSize > 256) {
304
- curLength += 2; // account for extraPadding Byte Number;
305
- } else {
306
- curLength += 1;
307
- }
308
- // let's calculate the required number of padding bytes
309
- const n = curLength % this.plainBlockSize;
310
- const nbPaddingByteTotal = (this.plainBlockSize - n) % this.plainBlockSize;
311
-
312
- this._write_padding_bytes(nbPaddingByteTotal);
313
- const adjustedLength = this.sequenceHeaderSize + this.cursor + this.signatureLength;
314
-
315
- assert(adjustedLength % this.plainBlockSize === 0);
316
- const nbBlock = adjustedLength / this.plainBlockSize;
317
- extraEncryptionBytes = nbBlock * (this.cipherBlockSize - this.plainBlockSize);
318
- }
319
-
320
- this.dataEnd = this.dataOffset + this.cursor;
321
-
322
- // calculate the expected length of the chunk, once encrypted if encryption apply
323
- const expectedLength = this.dataEnd + this.signatureLength + extraEncryptionBytes;
324
-
325
- this.pendingChunk = this.chunk!.slice(0, expectedLength);
326
- // note :
327
- // - this.pending_chunk has the correct size but is not signed nor encrypted yet
328
- // as we don't know what to write in the header yet
329
- // - as a result,
330
- this.chunk = null;
331
- this.cursor = 0;
332
- }
333
- }
1
+ /***
2
+ * @module node-opcua-chunkmanager
3
+ */
4
+ import { EventEmitter } from "events";
5
+
6
+ import { assert } from "node-opcua-assert";
7
+ import { BinaryStream } from "node-opcua-binary-stream";
8
+ import { createFastUninitializedBuffer } from "node-opcua-buffer-utils";
9
+
10
+ import { readMessageHeader } from "./read_message_header";
11
+
12
+ export function verify_message_chunk(messageChunk: Buffer): void {
13
+ assert(messageChunk);
14
+ assert(messageChunk instanceof Buffer);
15
+ const header = readMessageHeader(new BinaryStream(messageChunk));
16
+ if (messageChunk.length !== header.length) {
17
+ throw new Error(" chunk length = " + messageChunk.length + " message length " + header.length);
18
+ }
19
+ }
20
+
21
+ // see https://github.com/substack/_buffer-handbook
22
+ // http://blog.nodejs.org/2012/12/20/streams2/
23
+ // http://codewinds.com/blog/2013-08-20-nodejs-transform-streams.html
24
+
25
+ // +----------------+----
26
+ // | message header | ^
27
+ // +----------------+ |<- data to sign
28
+ // | security header| |
29
+ // +----------------+ | ---
30
+ // | Sequence header| | ^
31
+ // +----------------+ | |<- data to encrypt
32
+ // | BODY | | |
33
+ // +----------------+ | |
34
+ // | padding | v |
35
+ // +----------------+--- |
36
+ // | Signature | v
37
+ // +----------------+------
38
+ //
39
+ // chunkSize = 8192
40
+ // plainBlockSize = 256-11
41
+ // cipherBlockSize = 256
42
+ // headerSize = messageHeaderSize + securityHeaderSize
43
+ // maxBodySize = plainBlockSize*floor((chunkSize–headerSize–signatureLength-1)/cipherBlockSize)-sequenceHeaderSize;
44
+ // length(data to encrypt) = n *
45
+
46
+ // Rules:
47
+ // - The SequenceHeaderSize is always 8 bytes
48
+ // - The HeaderSize includes the MessageHeader and the SecurityHeader.
49
+ // - The PaddingSize and Padding fields are not present if the MessageChunk is not encrypted.
50
+ // - The Signature field is not present if the MessageChunk is not signed.
51
+
52
+ export type WriteHeaderFunc = (chunk: Buffer, isLast: boolean, expectedLength: number) => void;
53
+ export type WriteSequenceHeaderFunc = (chunk: Buffer) => void;
54
+ export type SignBufferFunc = (buffer: Buffer) => Buffer;
55
+ export type EncryptBufferFunc = (buffer: Buffer) => Buffer;
56
+
57
+ export interface IChunkManagerOptions {
58
+ chunkSize: number;
59
+ signatureLength: number;
60
+ sequenceHeaderSize: number;
61
+ cipherBlockSize: number;
62
+ plainBlockSize: number;
63
+
64
+ signBufferFunc?: SignBufferFunc;
65
+ encryptBufferFunc?: EncryptBufferFunc;
66
+ writeSequenceHeaderFunc?: WriteSequenceHeaderFunc;
67
+
68
+ headerSize: number;
69
+ writeHeaderFunc?: WriteHeaderFunc; // write header must be specified if headerSize !=0
70
+ }
71
+
72
+ export class ChunkManager extends EventEmitter {
73
+ public signBufferFunc?: SignBufferFunc;
74
+ public encryptBufferFunc?: EncryptBufferFunc;
75
+ public writeSequenceHeaderFunc?: WriteSequenceHeaderFunc;
76
+ public writeHeaderFunc?: WriteHeaderFunc;
77
+
78
+ private readonly chunkSize: number;
79
+ private readonly headerSize: number;
80
+ private readonly signatureLength: number;
81
+ private readonly sequenceHeaderSize: number;
82
+ private readonly cipherBlockSize: number;
83
+ private readonly plainBlockSize: number;
84
+
85
+ // --------------
86
+ private readonly maxBodySize: number;
87
+ private readonly maxBlock?: number;
88
+ private readonly dataOffset: number;
89
+ private chunk: Buffer | null;
90
+ private cursor: number;
91
+ private pendingChunk: Buffer | null;
92
+ private dataEnd: number;
93
+
94
+ constructor(options: IChunkManagerOptions) {
95
+ super();
96
+
97
+ // { chunkSize : 32, headerSize : 10 ,signatureLength: 32 }
98
+ this.chunkSize = options.chunkSize;
99
+
100
+ this.headerSize = options.headerSize || 0;
101
+ if (this.headerSize) {
102
+ this.writeHeaderFunc = options.writeHeaderFunc;
103
+ assert(typeof this.writeHeaderFunc === "function");
104
+ }
105
+
106
+ this.sequenceHeaderSize = options.sequenceHeaderSize === undefined ? 8 : options.sequenceHeaderSize;
107
+ if (this.sequenceHeaderSize > 0) {
108
+ this.writeSequenceHeaderFunc = options.writeSequenceHeaderFunc;
109
+ assert(typeof this.writeSequenceHeaderFunc === "function");
110
+ }
111
+
112
+ this.signatureLength = options.signatureLength || 0;
113
+ this.signBufferFunc = options.signBufferFunc;
114
+
115
+ this.plainBlockSize = options.plainBlockSize || 0; // 256-14;
116
+ this.cipherBlockSize = options.cipherBlockSize || 0; // 256;
117
+ this.dataEnd = 0;
118
+
119
+ if (this.cipherBlockSize === 0) {
120
+ assert(this.plainBlockSize === 0);
121
+ // unencrypted block
122
+ this.maxBodySize = this.chunkSize - this.headerSize - this.signatureLength - this.sequenceHeaderSize;
123
+ this.encryptBufferFunc = undefined;
124
+ } else {
125
+ assert(this.plainBlockSize !== 0);
126
+ // During encryption a block with a size equal to PlainTextBlockSize is processed to produce a block
127
+ // with size equal to CipherTextBlockSize. These values depend on the encryption algorithm and may
128
+ // be the same.
129
+
130
+ this.encryptBufferFunc = options.encryptBufferFunc;
131
+ assert(typeof this.encryptBufferFunc === "function", "an encryptBufferFunc is required");
132
+
133
+ // this is the formula proposed by OPCUA
134
+ this.maxBodySize =
135
+ this.plainBlockSize *
136
+ Math.floor((this.chunkSize - this.headerSize - this.signatureLength - 1) / this.cipherBlockSize) -
137
+ this.sequenceHeaderSize;
138
+
139
+ // this is the formula proposed by ERN
140
+ this.maxBlock = Math.floor((this.chunkSize - this.headerSize) / this.cipherBlockSize);
141
+ this.maxBodySize = this.plainBlockSize * this.maxBlock - this.sequenceHeaderSize - this.signatureLength - 1;
142
+
143
+ if (this.plainBlockSize > 256) {
144
+ this.maxBodySize -= 1;
145
+ }
146
+ }
147
+ assert(this.maxBodySize > 0); // no space left to write data
148
+
149
+ // where the data starts in the block
150
+ this.dataOffset = this.headerSize + this.sequenceHeaderSize;
151
+
152
+ this.chunk = null;
153
+ this.cursor = 0;
154
+ this.pendingChunk = null;
155
+ }
156
+
157
+ public write(buffer: Buffer, length?: number) {
158
+ length = length || buffer.length;
159
+ assert(buffer instanceof Buffer || buffer === null);
160
+ assert(length > 0);
161
+
162
+ let l = length;
163
+ let inputCursor = 0;
164
+
165
+ while (l > 0) {
166
+ assert(length - inputCursor !== 0);
167
+
168
+ if (this.cursor === 0) {
169
+ this._push_pending_chunk(false);
170
+ }
171
+
172
+ // space left in current chunk
173
+ const spaceLeft = this.maxBodySize - this.cursor;
174
+
175
+ const nbToWrite = Math.min(length - inputCursor, spaceLeft);
176
+
177
+ this.chunk = this.chunk || createFastUninitializedBuffer(this.chunkSize);
178
+
179
+ if (buffer) {
180
+ buffer.copy(this.chunk!, this.cursor + this.dataOffset, inputCursor, inputCursor + nbToWrite);
181
+ }
182
+
183
+ inputCursor += nbToWrite;
184
+ this.cursor += nbToWrite;
185
+
186
+ if (this.cursor >= this.maxBodySize) {
187
+ this._post_process_current_chunk();
188
+ }
189
+ l -= nbToWrite;
190
+ }
191
+ }
192
+
193
+ public end() {
194
+ if (this.cursor > 0) {
195
+ this._post_process_current_chunk();
196
+ }
197
+ this._push_pending_chunk(true);
198
+ }
199
+
200
+ /**
201
+ * compute the signature of the chunk and append it at the end
202
+ * of the data block.
203
+ *
204
+ * @method _write_signature
205
+ * @private
206
+ */
207
+ private _write_signature(chunk: Buffer) {
208
+ if (this.signBufferFunc) {
209
+ assert(typeof this.signBufferFunc === "function");
210
+ assert(this.signatureLength !== 0);
211
+
212
+ const signatureStart = this.dataEnd;
213
+ const sectionToSign = chunk.slice(0, signatureStart);
214
+
215
+ const signature = this.signBufferFunc(sectionToSign);
216
+ assert(signature.length === this.signatureLength);
217
+
218
+ signature.copy(chunk, signatureStart);
219
+ } else {
220
+ assert(this.signatureLength === 0, "expecting NO SIGN");
221
+ }
222
+ }
223
+
224
+ private _encrypt(chunk: Buffer) {
225
+ if (this.plainBlockSize > 0) {
226
+ assert(this.dataEnd !== undefined);
227
+ const startEncryptionPos = this.headerSize;
228
+ const endEncryptionPos = this.dataEnd + this.signatureLength;
229
+
230
+ const areaToEncrypt = chunk.slice(startEncryptionPos, endEncryptionPos);
231
+
232
+ assert(areaToEncrypt.length % this.plainBlockSize === 0); // padding should have been applied
233
+ const nbBlock = areaToEncrypt.length / this.plainBlockSize;
234
+
235
+ const encryptedBuffer = this.encryptBufferFunc!(areaToEncrypt);
236
+ assert(encryptedBuffer.length % this.cipherBlockSize === 0);
237
+ assert(encryptedBuffer.length === nbBlock * this.cipherBlockSize);
238
+
239
+ encryptedBuffer.copy(chunk, this.headerSize, 0);
240
+ }
241
+ }
242
+
243
+ private _push_pending_chunk(isLast: boolean) {
244
+ if (this.pendingChunk) {
245
+ const expectedLength = this.pendingChunk.length;
246
+
247
+ if (this.headerSize > 0) {
248
+ // Release 1.02 39 OPC Unified Architecture, Part 6:
249
+ // The sequence header ensures that the first encrypted block of every Message sent over
250
+ // a channel will start with different data.
251
+ this.writeHeaderFunc!(this.pendingChunk.slice(0, this.headerSize), isLast, expectedLength);
252
+ }
253
+ if (this.sequenceHeaderSize > 0) {
254
+ this.writeSequenceHeaderFunc!(this.pendingChunk.slice(this.headerSize, this.headerSize + this.sequenceHeaderSize));
255
+ }
256
+
257
+ this._write_signature(this.pendingChunk);
258
+
259
+ this._encrypt(this.pendingChunk);
260
+
261
+ /**
262
+ * @event chunk
263
+ * @param chunk {Buffer}
264
+ * @param isLast {Boolean} , true if final chunk
265
+ */
266
+ this.emit("chunk", this.pendingChunk, isLast);
267
+ this.pendingChunk = null;
268
+ }
269
+ }
270
+
271
+ private _write_padding_bytes(nbPaddingByteTotal: number) {
272
+ const nbPaddingByte = nbPaddingByteTotal % 256;
273
+ const extraNbPaddingByte = Math.floor(nbPaddingByteTotal / 256);
274
+
275
+ assert(extraNbPaddingByte === 0 || this.plainBlockSize > 256, "extraNbPaddingByte only requested when key size > 2048");
276
+
277
+ // write the padding byte
278
+ this.chunk!.writeUInt8(nbPaddingByte, this.cursor + this.dataOffset);
279
+ this.cursor += 1;
280
+
281
+ for (let i = 0; i < nbPaddingByteTotal; i++) {
282
+ this.chunk!.writeUInt8(nbPaddingByte, this.cursor + this.dataOffset + i);
283
+ }
284
+ this.cursor += nbPaddingByteTotal;
285
+
286
+ if (this.plainBlockSize > 256) {
287
+ this.chunk!.writeUInt8(extraNbPaddingByte, this.cursor + this.dataOffset);
288
+ this.cursor += 1;
289
+ }
290
+ }
291
+
292
+ private _post_process_current_chunk() {
293
+ let extraEncryptionBytes = 0;
294
+ // add padding bytes if needed
295
+ if (this.plainBlockSize > 0) {
296
+ // write padding ( if encryption )
297
+
298
+ // let's calculate curLength = the length of the block to encrypt without padding yet
299
+ // +---------------+---------------+-------------+---------+--------------+------------+
300
+ // |SequenceHeader | data | paddingByte | padding | extraPadding | signature |
301
+ // +---------------+---------------+-------------+---------+--------------+------------+
302
+ let curLength = this.sequenceHeaderSize + this.cursor + this.signatureLength;
303
+ if (this.plainBlockSize > 256) {
304
+ curLength += 2; // account for extraPadding Byte Number;
305
+ } else {
306
+ curLength += 1;
307
+ }
308
+ // let's calculate the required number of padding bytes
309
+ const n = curLength % this.plainBlockSize;
310
+ const nbPaddingByteTotal = (this.plainBlockSize - n) % this.plainBlockSize;
311
+
312
+ this._write_padding_bytes(nbPaddingByteTotal);
313
+ const adjustedLength = this.sequenceHeaderSize + this.cursor + this.signatureLength;
314
+
315
+ assert(adjustedLength % this.plainBlockSize === 0);
316
+ const nbBlock = adjustedLength / this.plainBlockSize;
317
+ extraEncryptionBytes = nbBlock * (this.cipherBlockSize - this.plainBlockSize);
318
+ }
319
+
320
+ this.dataEnd = this.dataOffset + this.cursor;
321
+
322
+ // calculate the expected length of the chunk, once encrypted if encryption apply
323
+ const expectedLength = this.dataEnd + this.signatureLength + extraEncryptionBytes;
324
+
325
+ this.pendingChunk = this.chunk!.slice(0, expectedLength);
326
+ // note :
327
+ // - this.pending_chunk has the correct size but is not signed nor encrypted yet
328
+ // as we don't know what to write in the header yet
329
+ // - as a result,
330
+ this.chunk = null;
331
+ this.cursor = 0;
332
+ }
333
+ }
package/source/index.ts CHANGED
@@ -1,6 +1,6 @@
1
- /***
2
- * @module node-opcua-chunkmanager
3
- */
4
- export * from "./chunk_manager";
5
- export * from "./read_message_header";
6
- export * from "./SequenceHeader";
1
+ /***
2
+ * @module node-opcua-chunkmanager
3
+ */
4
+ export * from "./chunk_manager";
5
+ export * from "./read_message_header";
6
+ export * from "./SequenceHeader";
@@ -1,16 +1,16 @@
1
- /***
2
- * @module node-opcua-chunkmanager
3
- */
4
- import { BinaryStream } from "node-opcua-binary-stream";
5
- import { MessageHeader } from "node-opcua-packet-assembler";
6
-
7
- export function readMessageHeader(stream: BinaryStream): MessageHeader {
8
-
9
- const msgType = String.fromCharCode(stream.readUInt8()) +
10
- String.fromCharCode(stream.readUInt8()) +
11
- String.fromCharCode(stream.readUInt8());
12
-
13
- const isFinal = String.fromCharCode(stream.readUInt8());
14
- const length = stream.readUInt32();
15
- return {msgType, isFinal, length};
16
- }
1
+ /***
2
+ * @module node-opcua-chunkmanager
3
+ */
4
+ import { BinaryStream } from "node-opcua-binary-stream";
5
+ import { MessageHeader } from "node-opcua-packet-assembler";
6
+
7
+ export function readMessageHeader(stream: BinaryStream): MessageHeader {
8
+
9
+ const msgType = String.fromCharCode(stream.readUInt8()) +
10
+ String.fromCharCode(stream.readUInt8()) +
11
+ String.fromCharCode(stream.readUInt8());
12
+
13
+ const isFinal = String.fromCharCode(stream.readUInt8());
14
+ const length = stream.readUInt32();
15
+ return {msgType, isFinal, length};
16
+ }
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es6.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@4.4.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/assert.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/assert/strict.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/globals.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/async_hooks.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/buffer.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/child_process.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/cluster.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/console.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/constants.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/crypto.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/dgram.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/diagnostics_channel.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/dns.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/dns/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/domain.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/events.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/fs.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/fs/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/http.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/http2.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/https.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/inspector.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/module.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/net.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/os.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/path.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/perf_hooks.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/process.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/punycode.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/querystring.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/readline.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/repl.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/stream.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/stream/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/stream/consumers.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/stream/web.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/string_decoder.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/timers.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/timers/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/tls.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/trace_events.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/tty.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/url.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/util.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/v8.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/vm.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/wasi.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/worker_threads.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/zlib.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/globals.global.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/index.d.ts","../node-opcua-binary-stream/dist/binarystream.d.ts","../node-opcua-binary-stream/dist/binarystreamsizecalculator.d.ts","../node-opcua-binary-stream/dist/index.d.ts","../node-opcua-basic-types/dist/boolean.d.ts","../node-opcua-basic-types/dist/integers.d.ts","../node-opcua-basic-types/dist/floats.d.ts","../node-opcua-basic-types/dist/string.d.ts","../node-opcua-date-time/dist/date_time.d.ts","../node-opcua-date-time/dist/encode_decode.d.ts","../node-opcua-date-time/dist/index.d.ts","../node-opcua-basic-types/dist/date_time.d.ts","../node-opcua-basic-types/dist/byte_string.d.ts","../node-opcua-guid/dist/guid.d.ts","../node-opcua-guid/dist/index.d.ts","../node-opcua-nodeid/dist/nodeid.d.ts","../node-opcua-nodeid/dist/expanded_nodeid.d.ts","../node-opcua-nodeid/dist/index.d.ts","../node-opcua-basic-types/dist/node_id.d.ts","../node-opcua-status-code/dist/_generated_status_codes.d.ts","../node-opcua-status-code/dist/opcua_status_code.d.ts","../node-opcua-status-code/dist/callbacks.d.ts","../node-opcua-status-code/dist/index.d.ts","../node-opcua-basic-types/dist/status_code.d.ts","../node-opcua-basic-types/dist/guid.d.ts","../node-opcua-basic-types/dist/array.d.ts","../node-opcua-basic-types/dist/locale_id.d.ts","../node-opcua-basic-types/dist/attributeids.d.ts","../node-opcua-basic-types/dist/round_to_float.d.ts","../node-opcua-basic-types/dist/index.d.ts","../node-opcua-enum/dist/enum.d.ts","../node-opcua-enum/dist/index.d.ts","../node-opcua-factory/dist/types.d.ts","../node-opcua-factory/dist/factories_enumerations.d.ts","../node-opcua-factory/dist/datatype_factory.d.ts","../node-opcua-factory/dist/factories_structuredtypeschema.d.ts","../node-opcua-factory/dist/factories_baseobject.d.ts","../node-opcua-factory/dist/constructor_type.d.ts","../node-opcua-factory/dist/factories_id_generator.d.ts","../node-opcua-factory/dist/factories_basic_type.d.ts","../node-opcua-factory/dist/factories_builtin_types.d.ts","../node-opcua-factory/dist/factories_builtin_types_special.d.ts","../node-opcua-factory/dist/factories_schema_helpers.d.ts","../node-opcua-factory/dist/factories_factories.d.ts","../node-opcua-factory/dist/index.d.ts","./source/sequenceheader.ts","../../node_modules/@types/events/index.d.ts","../node-opcua-assert/dist/index.d.ts","../node-opcua-buffer-utils/dist/buffer_utils.d.ts","../node-opcua-buffer-utils/dist/index.d.ts","../node-opcua-packet-assembler/dist/packet_assembler.d.ts","../node-opcua-packet-assembler/dist/index.d.ts","./source/read_message_header.ts","./source/chunk_manager.ts","./source/index.ts","../../node_modules/.pnpm/@types+async@3.2.8/node_modules/@types/async/index.d.ts","../../node_modules/.pnpm/@types+babel-types@7.0.9/node_modules/@types/babel-types/ts3.6/index.d.ts","../../node_modules/.pnpm/@types+babel-types@7.0.9/node_modules/@types/babel-types/index.d.ts","../../node_modules/.pnpm/@types+babylon@6.16.5/node_modules/@types/babylon/index.d.ts","../../node_modules/.pnpm/@types+bonjour@3.5.9/node_modules/@types/bonjour/index.d.ts","../../node_modules/@types/color-name/index.d.ts","../../node_modules/.pnpm/@types+minimatch@3.0.3/node_modules/@types/minimatch/index.d.ts","../../node_modules/.pnpm/@types+glob@7.1.3/node_modules/@types/glob/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.9/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/index.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/common.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/array.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/collection.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/date.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/function.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/lang.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/math.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/number.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/object.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/seq.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/string.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/common/util.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.174/node_modules/@types/lodash/index.d.ts","../../node_modules/.pnpm/@types+long@4.0.1/node_modules/@types/long/index.d.ts","../../node_modules/.pnpm/@types+minimist@1.2.1/node_modules/@types/minimist/index.d.ts","../../node_modules/.pnpm/@types+mkdirp@1.0.1/node_modules/@types/mkdirp/index.d.ts","../../node_modules/.pnpm/@types+mocha@9.0.0/node_modules/@types/mocha/index.d.ts","../../node_modules/.pnpm/@types+normalize-package-data@2.4.0/node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/.pnpm/@types+once@1.4.0/node_modules/@types/once/index.d.ts","../../node_modules/.pnpm/@types+parse-json@4.0.0/node_modules/@types/parse-json/index.d.ts","../../node_modules/.pnpm/@types+prettier@2.4.0/node_modules/@types/prettier/index.d.ts","../../node_modules/.pnpm/@types+rimraf@3.0.2/node_modules/@types/rimraf/index.d.ts","../../node_modules/.pnpm/@sinonjs+fake-timers@7.1.2/node_modules/@sinonjs/fake-timers/types/fake-timers-src.d.ts","../../node_modules/.pnpm/@types+sinon@10.0.4/node_modules/@types/sinon/index.d.ts","../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../node_modules/.pnpm/@types+underscore@1.11.3/node_modules/@types/underscore/index.d.ts","../../node_modules/.pnpm/@types+uuid@8.3.0/node_modules/@types/uuid/index.d.ts","../../node_modules/.pnpm/@types+wordwrap@1.0.1/node_modules/@types/wordwrap/index.d.ts","../../node_modules/.pnpm/@types+yargs-parser@20.2.0/node_modules/@types/yargs-parser/index.d.ts","../../node_modules/.pnpm/@types+yargs@17.0.3/node_modules/@types/yargs/index.d.ts","../../node_modules/.pnpm/@types+node@16.10.1/node_modules/@types/node/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"e34eb9339171ec45da2801c1967e4d378bd61a1dceaa1b1b4e1b6d28cb9ca962","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"658a70ff0b4d8298739566835c4b324a9ecef1676a2cd1fabfb5660a821d38ef","affectsGlobalScope":true},"43978f18d1165eea81040bc9bfac1a551717f5cc9bd0f13b31bf490c5fcdc75f","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"c3ad91d23259b68e10a9bef08c5f9fa1d19f27ef740ac9af98ed226b030c09c6","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","384e598ab8e7faaa286828b2911f470aa1eb21b509d3128608cdbffa174b1e5a","260aad3a6bd3fc510b7f97cfb05859bfc045ce185f8c2b4d73ddb9c43b0eb3c0","cb428529763c6c8e38e42db2a39f333ffcc6d3aab396b24ac84b22da752c1de0","ad4b60488fb1e562bf375dac9299815f7028bf667d9b5887b2d01d501b7d1ddd","246341c3a7a2638cf830d690e69de1e6085a102c6a30596435b050e6ac86c11a","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"fd5d2f531376b1e84df315df0fe724445353a0ae2e2c4de7bae01e24c6c2047a","84214d474bed6e36b7608ba8a39d463ff90061b8af47cbd1a8f7ecb775e21fac","944660c079e97f62f513c33ec64cebc44154374053d3a9adb04bf02f67ee1066","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","62a00c9cc0c78d9f282dcd7b0a7776aefe220106c3bc327e259e5f6484c6f556",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"f3e8bcce378a26bc672fce0ec05affabbbbfa18493b76f24c39136dea87100d0","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"e51bee3200733b1f58818b5a9ea90fcd61c5b8afa3a0378391991f3696826a65","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","e70339a3d63f806c43f24250c42aa0000093923457b0ed7dfc10e0ac910ebca9","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a279435e7813d1f061c0cab6ab77b1b9377e8d96851e5ed4a76a1ce6eb6e628f","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","b810390059fc34122556c644f586e7a2b4598ded8afe5ba70bb82fc2e50577b1","ba9de5c5823e06ee3314f959c138cdaf4477d3a1a0769f0d24e62911020e8088","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"893f4b8552c248f6542174b53d1519f739b20428c970dda89cd90485dab059d0","e7474fb01bc85a10f80130566d6b1e22aa87c37db39659606c61b0598388f1d8","e398128f221ed527816828427410371dd3627c0ee040e16bcf5f2c870dc1dc33","949d10355f5bba71444b493fc81ea0766ece120d77bf7273ffa4d1d84049993a","67d8196adadf5aa3427710b0473627245f6e3e83c906245dc51f1c8fa92bd330","64bf3a03846d412c49124d760bab91fd58b2063d2e5d344db7b8d3371ddc1b5c","519ec49f2ed924fc49f5b63a83f8db0a2b33117d668176aef101a97f38ce97d7","d263f6380ba1de15681ac17ab2423787fdc95a15e4904394cd86f0a710d0274b","ba1297f1d2576426d18c8844798d80ef26921df774001e6ac1adc725a095e278","76c16c5c168f37762b09b4332526ee60846fdcbf8f8226ff1596130c82df4a31","59d0994c1dea48094f69f5f2d87050da788b402043ff467902753d24cdfde2cd","973c2a0a0b5f8ec9bf9a9505e6d99b93cc6d9090db6b75e6077d66752d86be5a","02a5400d36c57dffab228f362720e36fc2c3575e92e5208bd59159117605ae7a","66eb76887cdcd09f4d21365483459a312f38e5541a5a9b0d9c0b3a81542c8bd5","4b4ce96fc0ac4dbc4902e6da1b6fa0512334d2eb1c9c430fd3cd91974378e625","2949b1b6c0416cb02d09f70aa81748fb43224d0b9b1d945f0905d0d77bee598a","3ddd5679cb7a308053f5bd070622260380f77117bbc458558a506413bb478021","e8742a114fcc216e381c9ce413718c6cd337a0adad8fe68c6c03a32716f80c8e","4c75b3f68616055b5f26a92d9fddaa2fb5bc0584c1ead518ad2a78d069d6505f","c1bf8200ad08dcacde854030117c80812e02035474749413fed54094995f96a4","d95116a13e95ee45527242ca70b2e38c6fbe2b678eec0b794d17630d01499281","f2899642cbb0c94363d2f2b714bdf61b8ec1766ff533101158ff2c7e3dcbff4a","4a5a7fa06e6ac148aa96c505d0d92bd6aa687355b5123ac5962ae4e13266d922","c816491e84338375748d3ec8d64fb2d1fead86ad55e170d7af4218ea4c644630","c57e7f12a5eba452ef7fc80f30ea018be14d75e16dd9bcec96768c790298cf6f","1a5d1e5311488da8ec8176cd7116dba9ef3a483902f89bad0eadd9c1e7dc1559","1484bf6fbe3d3b5c7004e1162e40f3485f1a35b0bb15779788026be098984054","096fa88517d9fa3747d470de69e6d558e0f2803163a8bcd223ef84f2f2e6a7bd","7c2ddd75e2d3f6947b5a7b1855fe5730a8697e917217a920d487e2ad68103a64","b765ed6bd1991a359093ef58b9f5f3cb412b23035592fd9aded0f9102bf8dd18","b5c2e1fead474a7a47026214a0a40bc68b5c6a64bccb7963dc76cf319cbe3e2b","dfe3e1ea7f302cb82eeae5d63f140c89e3be91ef23862af47692ee6a7a9ad0ad","15c9a0b8441ebcf605eaf4a565c665df5ba04e32705e8998b7896fd44ab44b09","e06c7ee9f7548f1ba9bb087c639d6eec0a53ee69ebbd68421f1d4ca7d554bb75","3e3a7a2edd4f10772b044ceebde7cde6346204dc453bc3dbf75384d527a48d1f","eb28748ed9f0acdba41c12dcab82b19de24beda58116ab363038414ac2e6a823","4bbebe354880fda663a618b3bc8dc5e9fd190aa153f62a28fae2e679d76151b9","05b855a42e1907f7e86535842127a20e0ca24a1f91532f7f416f9d3da3264ffe","037ea2147ce4483c3be44cee9e22b812e770d5031b7fdc76b820e9a2d90d14e7","12e5abaf1187346048aa02e828522f3fd476c4c296438957f007431ceeef779e","243057d75a3a16c081d14699d89eb8877066185574a571c86975d182bafa47ac","d126921c58d1961eb095a5bff7586121a71c29ff3ed2010a371992af92ccfd6c","eeff7765d3fc6fb6f8eb1c6738416645f0ead167499a92561cf23879b66927ec","1b437c82bf0322b1e81718c98f0a99e9e73b008d90ac05bbd7a6b0c4647bf2c8","17334afea2ff94f187565e5dc8c17c0c9acb0b859b0b1ed44add97161081d172","6628984109745bd1bd36541005929a6c6d4c1ec31c08664c46c80190f6adc91b","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","b6a06edf4211b8f4ccc7cef2ec4f94125e2fde2c6f3e1756349ab2956da93438","bb4132a85613fe1c41748b2fed5eb3006a6892b6ea9195efb8ed1e06642d7376","97ac2b13a8c501b693c7781914a90325e83f513bdf838218eb56e09d1d59c652","93c435b3a5cd9d7429a38a0917f380d63a39a598460da2d4287c7b4329c5cd58","5e0248fb99372ca937f4b9092794908c8b3246a566b73790ca87b103a1f0e808","120ce219d11e6830175b9e1e2430c705515f1e0cfbcd0540137a916bd76e3217","7e815188c54768a20b2dfd70c66f00ce41c8db4fc9480b4a22dbdc260bf36379","f0018b2a9f9322021cd58e6d53b9c28a0136c7620bd616dc258d0111a6acb07e","21d0d028eee8b7e0f7ff96cb44e9e7f0a0fe719191c49f43ac7c9252216c28d6","b5151c566c80e1f636333b9cc7d8004b6152449768179fc73055692e1d9cbe52","226ee2a7ffe7fab4ea074872cd48460460d2d8d4cdcdb742e2469f1445ef48b6","e7ef01fb3213b1be13321648ac2612d60e9e2742e28fc2fcf68d27fb965a8d5c","713cb5c36e9452e3573d87fd4a911bfd4339aa21a7293f764689ae2dce4f198b","f0cb4b3ab88193e3e51e9e2622e4c375955003f1f81239d72c5b7a95415dad3e","1d1e6bd176eee5970968423d7e215bfd66828b6db8d54d17afec05a831322633","393137c76bd922ba70a2f8bf1ade4f59a16171a02fb25918c168d48875b0cfb0","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"e8465811693dfe4e96ef2b3dffda539d6edfe896961b7af37b44db2c0e48532b","e437d83044ba17246a861aa9691aa14223ff4a9d6f338ab1269c41c758586a88","c535422967fe3cf8adfee4e1a543870aede1fa77fd055a382e6f6582a2d866eb",{"version":"e8bf92aabac2b11e1bf60a0161039cd6f5f0cd9713863ca2289dd7b10eddece8","affectsGlobalScope":true},"c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613",{"version":"0946506310901fb245af3438f1dd2bdb6f89f08faf8dacac63e035d78c2bf482","affectsGlobalScope":true},"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","92ae0192291b388db0aa580fee55d9977740e568d69b1ea2951955084936aed0","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","6b40029289530423f407a22755c85b81740f9acfd88d2b53564f8c1657c26660","86a04d7ce86bcb5814079939ddc37dc76a82f8b6170a79518ef6dfc2c6f8c00c","558a9770503071d5a6fc6c596f7230bb79f2d034ced4a205bd1ebcad3b5879ec",{"version":"0609dda5350cd6d8c42daef710dffe3b51521ffbd00109e234f7bfb7533194e7","affectsGlobalScope":true},"96b49a9de749afcf92b5bce1d8cc42cfae6816cdf5ea36584fd9256b8b2e5292","8d007c8fe1a38e90fd50410e3c690a54f9bbfef7a88964c4870ca2af9656bb64","3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f","f5eeb7afb84f4e74ed655e5bf5455b7b192ee3d79cc8e869ce854fd5f554d2b5"],"options":{"composite":true,"declaration":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noStrictGenericChecks":false,"outDir":"./dist","removeComments":false,"rootDir":"./source","skipLibCheck":false,"sourceMap":true,"strict":true,"target":2},"fileIdsList":[[87],[87,150],[87,151],[54,87,189],[59,87,155,189],[87,159,161,162,163,164,165,166,167,168,169,170,171],[87,159,160,162,163,164,165,166,167,168,169,170,171],[87,160,161,162,163,164,165,166,167,168,169,170,171],[87,159,160,161,163,164,165,166,167,168,169,170,171],[87,159,160,161,162,164,165,166,167,168,169,170,171],[87,159,160,161,162,163,165,166,167,168,169,170,171],[87,159,160,161,162,163,164,166,167,168,169,170,171],[87,159,160,161,162,163,164,165,167,168,169,170,171],[87,159,160,161,162,163,164,165,166,168,169,170,171],[87,159,160,161,162,163,164,165,166,167,169,170,171],[87,159,160,161,162,163,164,165,166,167,168,170,171],[87,159,160,161,162,163,164,165,166,167,168,169,171],[87,159,160,161,162,163,164,165,166,167,168,169,170],[60,87,189],[60,87,156,189],[87,181],[87,187],[87,97],[87,94,97],[87,104],[87,97,108],[87,94,98,99,100,101,105,106,112,117,118,119,120,121,122],[87,97,101],[87,97,111],[87,116],[44,87],[47,87],[48,53,87],[49,59,60,67,76,86,87],[49,50,59,67,87],[51,87],[52,53,60,68,87],[53,76,83,87],[54,56,59,67,87],[55,87],[56,57,87],[58,59,87],[59,87],[59,60,61,76,86,87],[59,60,61,76,87],[62,67,76,86,87],[59,60,62,63,67,76,83,86,87],[62,64,76,83,86,87],[44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],[59,65,87],[66,86,87],[56,59,67,76,87],[68,87],[69,87],[47,70,87],[71,85,87,91],[72,87],[73,87],[59,74,87],[74,75,87,89],[59,76,77,78,87],[76,78,87],[76,77,87],[79,87],[80,87],[59,81,82,87],[81,82,87],[53,67,83,87],[84,87],[67,85,87],[48,62,73,86,87],[53,87],[76,87,88],[87,89],[87,90],[48,53,59,61,70,76,86,87,89,91],[76,87,92],[87,189],[87,95,96],[87,142],[59,87,97,141,143,146],[87,139,146,147],[87,97,145],[87,97,123,138],[87,97,102],[87,102,103],[87,124],[87,111,129,130],[87,111,126,127,129,130,131],[87,97,129],[87,97,126],[87,131],[87,97,125,126],[87,111,128,129,130,131],[87,126,129],[87,97,111,126,128],[87,126,127,128,129,130,131,132,133,134,135,136,137],[87,97,111,125,131],[87,107],[87,108,109,189],[87,109,110],[87,108,189],[87,144],[59,87,189],[87,114],[87,114,189],[87,114,115],[87,97,113]],"referencedMap":[[181,1],[149,1],[151,2],[150,1],[152,3],[153,4],[156,5],[157,1],[158,1],[160,6],[161,7],[159,8],[162,9],[163,10],[164,11],[165,12],[166,13],[167,14],[168,15],[169,16],[170,17],[171,18],[172,1],[155,1],[173,1],[174,19],[175,1],[176,1],[177,1],[178,1],[179,1],[180,20],[182,21],[184,1],[185,1],[186,1],[187,1],[188,22],[9,1],[10,1],[14,1],[13,1],[3,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[4,1],[5,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[34,1],[35,1],[36,1],[37,1],[8,1],[42,1],[38,1],[39,1],[40,1],[41,1],[2,1],[1,1],[43,1],[12,1],[11,1],[154,1],[140,1],[183,1],[141,1],[119,23],[121,1],[98,23],[106,24],[105,25],[100,23],[118,26],[123,27],[99,23],[120,28],[112,29],[122,1],[117,30],[101,23],[44,31],[45,31],[47,32],[48,33],[49,34],[50,35],[51,36],[52,37],[53,38],[54,39],[55,40],[56,41],[57,41],[58,42],[59,43],[60,44],[61,45],[46,1],[93,1],[62,46],[63,47],[64,48],[94,49],[65,50],[66,51],[67,52],[68,53],[69,54],[70,55],[71,56],[72,57],[73,58],[74,59],[75,60],[76,61],[78,62],[77,63],[79,64],[80,65],[81,66],[82,67],[83,68],[84,69],[85,70],[86,71],[87,72],[88,73],[89,74],[90,75],[91,76],[92,77],[95,78],[96,78],[97,79],[142,78],[143,80],[147,81],[148,82],[146,83],[139,84],[102,1],[103,85],[104,86],[124,1],[125,87],[131,88],[128,89],[130,90],[133,23],[134,91],[135,92],[127,93],[137,94],[132,1],[136,95],[129,96],[138,97],[126,98],[107,1],[108,99],[110,100],[111,101],[109,102],[145,103],[144,104],[113,105],[115,106],[116,107],[114,108]],"exportedModulesMap":[[181,1],[149,1],[151,2],[150,1],[152,3],[153,4],[156,5],[157,1],[158,1],[160,6],[161,7],[159,8],[162,9],[163,10],[164,11],[165,12],[166,13],[167,14],[168,15],[169,16],[170,17],[171,18],[172,1],[155,1],[173,1],[174,19],[175,1],[176,1],[177,1],[178,1],[179,1],[180,20],[182,21],[184,1],[185,1],[186,1],[187,1],[188,22],[9,1],[10,1],[14,1],[13,1],[3,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[4,1],[5,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[34,1],[35,1],[36,1],[37,1],[8,1],[42,1],[38,1],[39,1],[40,1],[41,1],[2,1],[1,1],[43,1],[12,1],[11,1],[154,1],[140,1],[183,1],[141,1],[119,23],[121,1],[98,23],[106,24],[105,25],[100,23],[118,26],[123,27],[99,23],[120,28],[112,29],[122,1],[117,30],[101,23],[44,31],[45,31],[47,32],[48,33],[49,34],[50,35],[51,36],[52,37],[53,38],[54,39],[55,40],[56,41],[57,41],[58,42],[59,43],[60,44],[61,45],[46,1],[93,1],[62,46],[63,47],[64,48],[94,49],[65,50],[66,51],[67,52],[68,53],[69,54],[70,55],[71,56],[72,57],[73,58],[74,59],[75,60],[76,61],[78,62],[77,63],[79,64],[80,65],[81,66],[82,67],[83,68],[84,69],[85,70],[86,71],[87,72],[88,73],[89,74],[90,75],[91,76],[92,77],[95,78],[96,78],[97,79],[142,78],[143,80],[147,81],[148,82],[146,83],[139,84],[102,1],[103,85],[104,86],[124,1],[125,87],[131,88],[128,89],[130,90],[133,23],[134,91],[135,92],[127,93],[137,94],[132,1],[136,95],[129,96],[138,97],[126,98],[107,1],[108,99],[110,100],[111,101],[109,102],[145,103],[144,104],[113,105],[115,106],[116,107],[114,108]],"semanticDiagnosticsPerFile":[181,149,151,150,152,153,156,157,158,160,161,159,162,163,164,165,166,167,168,169,170,171,172,155,173,174,175,176,177,178,179,180,182,184,185,186,187,188,9,10,14,13,3,15,16,17,18,19,20,21,22,4,5,26,23,24,25,27,28,29,6,30,31,32,33,7,34,35,36,37,8,42,38,39,40,41,2,1,43,12,11,154,140,183,141,119,121,98,106,105,100,118,123,99,120,112,122,117,101,44,45,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,46,93,62,63,64,94,65,66,67,68,69,70,71,72,73,74,75,76,78,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,95,96,97,142,143,147,148,146,139,102,103,104,124,125,131,128,130,133,134,135,127,137,132,136,129,138,126,107,108,110,111,109,145,144,113,115,116,114]},"version":"4.4.3"}
1
+ {"program":{"fileNames":["../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es6.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es5.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.dom.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../users/etien/appdata/roaming/npm/pnpm-global/5/node_modules/.pnpm/typescript@4.4.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/assert.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/assert/strict.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/globals.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/async_hooks.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/buffer.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/child_process.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/cluster.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/console.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/constants.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/crypto.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/dgram.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/diagnostics_channel.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/dns.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/dns/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/domain.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/events.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/fs.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/fs/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/http.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/http2.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/https.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/inspector.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/module.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/net.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/os.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/path.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/perf_hooks.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/process.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/punycode.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/querystring.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/readline.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/repl.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/stream.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/stream/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/stream/consumers.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/stream/web.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/string_decoder.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/timers.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/timers/promises.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/tls.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/trace_events.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/tty.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/url.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/util.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/v8.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/vm.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/wasi.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/worker_threads.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/zlib.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/globals.global.d.ts","../node-opcua-basic-types/node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/index.d.ts","../node-opcua-binary-stream/dist/binarystream.d.ts","../node-opcua-binary-stream/dist/binarystreamsizecalculator.d.ts","../node-opcua-binary-stream/dist/index.d.ts","../node-opcua-basic-types/dist/boolean.d.ts","../node-opcua-basic-types/dist/integers.d.ts","../node-opcua-basic-types/dist/floats.d.ts","../node-opcua-basic-types/dist/string.d.ts","../node-opcua-date-time/dist/date_time.d.ts","../node-opcua-date-time/dist/encode_decode.d.ts","../node-opcua-date-time/dist/index.d.ts","../node-opcua-basic-types/dist/date_time.d.ts","../node-opcua-basic-types/dist/byte_string.d.ts","../node-opcua-guid/dist/guid.d.ts","../node-opcua-guid/dist/index.d.ts","../node-opcua-nodeid/dist/nodeid.d.ts","../node-opcua-nodeid/dist/expanded_nodeid.d.ts","../node-opcua-nodeid/dist/index.d.ts","../node-opcua-basic-types/dist/node_id.d.ts","../node-opcua-status-code/dist/_generated_status_codes.d.ts","../node-opcua-status-code/dist/opcua_status_code.d.ts","../node-opcua-status-code/dist/callbacks.d.ts","../node-opcua-status-code/dist/index.d.ts","../node-opcua-basic-types/dist/status_code.d.ts","../node-opcua-basic-types/dist/guid.d.ts","../node-opcua-basic-types/dist/array.d.ts","../node-opcua-basic-types/dist/locale_id.d.ts","../node-opcua-basic-types/dist/attributeids.d.ts","../node-opcua-basic-types/dist/round_to_float.d.ts","../node-opcua-basic-types/dist/index.d.ts","../node-opcua-enum/dist/enum.d.ts","../node-opcua-enum/dist/index.d.ts","../node-opcua-factory/dist/types.d.ts","../node-opcua-factory/dist/factories_enumerations.d.ts","../node-opcua-factory/dist/datatype_factory.d.ts","../node-opcua-factory/dist/factories_structuredtypeschema.d.ts","../node-opcua-factory/dist/factories_baseobject.d.ts","../node-opcua-factory/dist/constructor_type.d.ts","../node-opcua-factory/dist/factories_id_generator.d.ts","../node-opcua-factory/dist/factories_basic_type.d.ts","../node-opcua-factory/dist/factories_builtin_types.d.ts","../node-opcua-factory/dist/factories_builtin_types_special.d.ts","../node-opcua-factory/dist/factories_schema_helpers.d.ts","../node-opcua-factory/dist/factories_factories.d.ts","../node-opcua-factory/dist/index.d.ts","./source/sequenceheader.ts","../node-opcua-assert/dist/index.d.ts","../node-opcua-buffer-utils/dist/buffer_utils.d.ts","../node-opcua-buffer-utils/dist/index.d.ts","../node-opcua-packet-assembler/dist/packet_assembler.d.ts","../node-opcua-packet-assembler/dist/index.d.ts","./source/read_message_header.ts","./source/chunk_manager.ts","./source/index.ts","../../node_modules/.pnpm/@types+async@3.2.10/node_modules/@types/async/index.d.ts","../../node_modules/.pnpm/@types+babel-types@7.0.9/node_modules/@types/babel-types/ts3.6/index.d.ts","../../node_modules/.pnpm/@types+babel-types@7.0.9/node_modules/@types/babel-types/index.d.ts","../../node_modules/.pnpm/@types+babylon@6.16.5/node_modules/@types/babylon/index.d.ts","../../node_modules/.pnpm/@types+bonjour@3.5.9/node_modules/@types/bonjour/index.d.ts","../../node_modules/.pnpm/@types+minimatch@3.0.3/node_modules/@types/minimatch/index.d.ts","../../node_modules/.pnpm/@types+glob@7.1.3/node_modules/@types/glob/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.9/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/index.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/common.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/array.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/collection.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/date.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/function.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/lang.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/math.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/number.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/object.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/seq.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/string.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/common/util.d.ts","../../node_modules/.pnpm/@types+lodash@4.14.177/node_modules/@types/lodash/index.d.ts","../../node_modules/.pnpm/@types+long@4.0.1/node_modules/@types/long/index.d.ts","../../node_modules/.pnpm/@types+minimist@1.2.1/node_modules/@types/minimist/index.d.ts","../../node_modules/.pnpm/@types+mkdirp@1.0.1/node_modules/@types/mkdirp/index.d.ts","../../node_modules/.pnpm/@types+mocha@9.0.0/node_modules/@types/mocha/index.d.ts","../../node_modules/.pnpm/@types+normalize-package-data@2.4.0/node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/.pnpm/@types+once@1.4.0/node_modules/@types/once/index.d.ts","../../node_modules/.pnpm/@types+parse-json@4.0.0/node_modules/@types/parse-json/index.d.ts","../../node_modules/.pnpm/@types+prettier@2.4.2/node_modules/@types/prettier/index.d.ts","../../node_modules/.pnpm/@types+rimraf@3.0.2/node_modules/@types/rimraf/index.d.ts","../../node_modules/.pnpm/@sinonjs+fake-timers@7.1.2/node_modules/@sinonjs/fake-timers/types/fake-timers-src.d.ts","../../node_modules/.pnpm/@types+sinon@10.0.6/node_modules/@types/sinon/index.d.ts","../../node_modules/.pnpm/@types+underscore@1.11.3/node_modules/@types/underscore/index.d.ts","../../node_modules/.pnpm/@types+uuid@8.3.0/node_modules/@types/uuid/index.d.ts","../../node_modules/.pnpm/@types+wordwrap@1.0.1/node_modules/@types/wordwrap/index.d.ts","../../node_modules/.pnpm/@types+yargs-parser@20.2.0/node_modules/@types/yargs-parser/index.d.ts","../../node_modules/.pnpm/@types+yargs@17.0.7/node_modules/@types/yargs/index.d.ts","../../node_modules/.pnpm/@types+node@16.11.9/node_modules/@types/node/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"e34eb9339171ec45da2801c1967e4d378bd61a1dceaa1b1b4e1b6d28cb9ca962","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"6dfd135b38ab97c536d9c966fc5a5a879a19c6ed75c2c9633902be1ef0945ff7","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","5533392c50c51b1a5c32b89f13145db929c574ef1c5949cf67a074a05ea107d9","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"902cd98bf46e95caf4118a0733fb801e9e90eec3edaed6abdad77124afec9ca2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"bd1a08e30569b0fb2f0b21035eb9b039871f68faa9b98accf847e9c878c5e0a9","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a279435e7813d1f061c0cab6ab77b1b9377e8d96851e5ed4a76a1ce6eb6e628f","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","d88ecca73348e7c337541c4b8b60a50aca5e87384f6b8a422fc6603c637e4c21","badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1cdb8f094b969dcc183745dc88404e2d8fcf2a858c6e7cc2441011476573238e","e7474fb01bc85a10f80130566d6b1e22aa87c37db39659606c61b0598388f1d8","e398128f221ed527816828427410371dd3627c0ee040e16bcf5f2c870dc1dc33","949d10355f5bba71444b493fc81ea0766ece120d77bf7273ffa4d1d84049993a","67d8196adadf5aa3427710b0473627245f6e3e83c906245dc51f1c8fa92bd330","64bf3a03846d412c49124d760bab91fd58b2063d2e5d344db7b8d3371ddc1b5c","519ec49f2ed924fc49f5b63a83f8db0a2b33117d668176aef101a97f38ce97d7","d263f6380ba1de15681ac17ab2423787fdc95a15e4904394cd86f0a710d0274b","ba1297f1d2576426d18c8844798d80ef26921df774001e6ac1adc725a095e278","76c16c5c168f37762b09b4332526ee60846fdcbf8f8226ff1596130c82df4a31","59d0994c1dea48094f69f5f2d87050da788b402043ff467902753d24cdfde2cd","973c2a0a0b5f8ec9bf9a9505e6d99b93cc6d9090db6b75e6077d66752d86be5a","02a5400d36c57dffab228f362720e36fc2c3575e92e5208bd59159117605ae7a","66eb76887cdcd09f4d21365483459a312f38e5541a5a9b0d9c0b3a81542c8bd5","4b4ce96fc0ac4dbc4902e6da1b6fa0512334d2eb1c9c430fd3cd91974378e625","2949b1b6c0416cb02d09f70aa81748fb43224d0b9b1d945f0905d0d77bee598a","3ddd5679cb7a308053f5bd070622260380f77117bbc458558a506413bb478021","e8742a114fcc216e381c9ce413718c6cd337a0adad8fe68c6c03a32716f80c8e","4c75b3f68616055b5f26a92d9fddaa2fb5bc0584c1ead518ad2a78d069d6505f","c1bf8200ad08dcacde854030117c80812e02035474749413fed54094995f96a4","d95116a13e95ee45527242ca70b2e38c6fbe2b678eec0b794d17630d01499281","f2899642cbb0c94363d2f2b714bdf61b8ec1766ff533101158ff2c7e3dcbff4a","4a5a7fa06e6ac148aa96c505d0d92bd6aa687355b5123ac5962ae4e13266d922","c816491e84338375748d3ec8d64fb2d1fead86ad55e170d7af4218ea4c644630","c57e7f12a5eba452ef7fc80f30ea018be14d75e16dd9bcec96768c790298cf6f","1a5d1e5311488da8ec8176cd7116dba9ef3a483902f89bad0eadd9c1e7dc1559","1484bf6fbe3d3b5c7004e1162e40f3485f1a35b0bb15779788026be098984054","495f85da29040000eb746fea321471033d295eb453fe17d12fb3801dce1f3f32","7c2ddd75e2d3f6947b5a7b1855fe5730a8697e917217a920d487e2ad68103a64","b765ed6bd1991a359093ef58b9f5f3cb412b23035592fd9aded0f9102bf8dd18","b5c2e1fead474a7a47026214a0a40bc68b5c6a64bccb7963dc76cf319cbe3e2b","dfe3e1ea7f302cb82eeae5d63f140c89e3be91ef23862af47692ee6a7a9ad0ad","15c9a0b8441ebcf605eaf4a565c665df5ba04e32705e8998b7896fd44ab44b09","e06c7ee9f7548f1ba9bb087c639d6eec0a53ee69ebbd68421f1d4ca7d554bb75","3e3a7a2edd4f10772b044ceebde7cde6346204dc453bc3dbf75384d527a48d1f","eb28748ed9f0acdba41c12dcab82b19de24beda58116ab363038414ac2e6a823","4bbebe354880fda663a618b3bc8dc5e9fd190aa153f62a28fae2e679d76151b9","05b855a42e1907f7e86535842127a20e0ca24a1f91532f7f416f9d3da3264ffe","037ea2147ce4483c3be44cee9e22b812e770d5031b7fdc76b820e9a2d90d14e7","12e5abaf1187346048aa02e828522f3fd476c4c296438957f007431ceeef779e","243057d75a3a16c081d14699d89eb8877066185574a571c86975d182bafa47ac","d126921c58d1961eb095a5bff7586121a71c29ff3ed2010a371992af92ccfd6c","eeff7765d3fc6fb6f8eb1c6738416645f0ead167499a92561cf23879b66927ec","1b437c82bf0322b1e81718c98f0a99e9e73b008d90ac05bbd7a6b0c4647bf2c8","17334afea2ff94f187565e5dc8c17c0c9acb0b859b0b1ed44add97161081d172","ca81ba6bf4657f8f7817cfd3e31e03ebf9087914e5e020dc6cab9831d8a6b8f7","b6a06edf4211b8f4ccc7cef2ec4f94125e2fde2c6f3e1756349ab2956da93438","bb4132a85613fe1c41748b2fed5eb3006a6892b6ea9195efb8ed1e06642d7376","97ac2b13a8c501b693c7781914a90325e83f513bdf838218eb56e09d1d59c652","93c435b3a5cd9d7429a38a0917f380d63a39a598460da2d4287c7b4329c5cd58","5e0248fb99372ca937f4b9092794908c8b3246a566b73790ca87b103a1f0e808","8ddee35f786b6fd3d86ef081ba5e6c2cfd146a09e1419ca7aaf5321cc0fe7e31","83cb7e33b658fa585ae57251caf32b6c0a66c23cfae790e87a67bfca86f7c7eb","b19a286fa5187cff1f5ee5861ba69b7906a95509213353b6777a28cd899af57d","1bcc82c24244fb221f5d43c8a879733929e739041a39f03bde05b6d0214612b6","b5151c566c80e1f636333b9cc7d8004b6152449768179fc73055692e1d9cbe52","226ee2a7ffe7fab4ea074872cd48460460d2d8d4cdcdb742e2469f1445ef48b6","e7ef01fb3213b1be13321648ac2612d60e9e2742e28fc2fcf68d27fb965a8d5c","713cb5c36e9452e3573d87fd4a911bfd4339aa21a7293f764689ae2dce4f198b","1d1e6bd176eee5970968423d7e215bfd66828b6db8d54d17afec05a831322633","393137c76bd922ba70a2f8bf1ade4f59a16171a02fb25918c168d48875b0cfb0","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","6ac6f24aff52e62c3950461aa17eab26e3a156927858e6b654baef0058b4cd1e",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"e8465811693dfe4e96ef2b3dffda539d6edfe896961b7af37b44db2c0e48532b","e437d83044ba17246a861aa9691aa14223ff4a9d6f338ab1269c41c758586a88","c535422967fe3cf8adfee4e1a543870aede1fa77fd055a382e6f6582a2d866eb",{"version":"e8bf92aabac2b11e1bf60a0161039cd6f5f0cd9713863ca2289dd7b10eddece8","affectsGlobalScope":true},"c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613",{"version":"0946506310901fb245af3438f1dd2bdb6f89f08faf8dacac63e035d78c2bf482","affectsGlobalScope":true},"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","9d9e658d1d5b805562749ce383ef8c67ccb796394d8734d9c138788d7dab6ee3","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","6b40029289530423f407a22755c85b81740f9acfd88d2b53564f8c1657c26660","50a5b297e6c91df4f6068d98467a5e7ba4eeb888b9376757734dd4b1dfcdacd4",{"version":"0609dda5350cd6d8c42daef710dffe3b51521ffbd00109e234f7bfb7533194e7","affectsGlobalScope":true},"96b49a9de749afcf92b5bce1d8cc42cfae6816cdf5ea36584fd9256b8b2e5292","8d007c8fe1a38e90fd50410e3c690a54f9bbfef7a88964c4870ca2af9656bb64","3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f","e8b8083042a5ae1536d815455fabd3873a8731a760b139723d7fc452bc9a954f"],"options":{"composite":true,"declaration":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noStrictGenericChecks":false,"outDir":"./dist","removeComments":false,"rootDir":"./source","skipLibCheck":false,"sourceMap":true,"strict":true,"target":2},"fileIdsList":[[87],[87,149],[87,150],[54,87,186],[59,87,153,186],[87,157,159,160,161,162,163,164,165,166,167,168,169],[87,157,158,160,161,162,163,164,165,166,167,168,169],[87,158,159,160,161,162,163,164,165,166,167,168,169],[87,157,158,159,161,162,163,164,165,166,167,168,169],[87,157,158,159,160,162,163,164,165,166,167,168,169],[87,157,158,159,160,161,163,164,165,166,167,168,169],[87,157,158,159,160,161,162,164,165,166,167,168,169],[87,157,158,159,160,161,162,163,165,166,167,168,169],[87,157,158,159,160,161,162,163,164,166,167,168,169],[87,157,158,159,160,161,162,163,164,165,167,168,169],[87,157,158,159,160,161,162,163,164,165,166,168,169],[87,157,158,159,160,161,162,163,164,165,166,167,169],[87,157,158,159,160,161,162,163,164,165,166,167,168],[60,87,186],[60,87,154,186],[87,179],[87,184],[87,97],[87,94,97],[87,104],[87,97,108],[87,94,98,99,100,101,105,106,112,117,118,119,120,121,122],[87,97,101],[87,97,111],[87,116],[44,87],[47,87],[48,53,87],[49,59,60,67,76,86,87],[49,50,59,67,87],[51,87],[52,53,60,68,87],[53,76,83,87],[54,56,59,67,87],[55,87],[56,57,87],[58,59,87],[59,87],[59,60,61,76,86,87],[59,60,61,76,87],[62,67,76,86,87],[59,60,62,63,67,76,83,86,87],[62,64,76,83,86,87],[44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],[59,65,87],[66,86,87],[56,59,67,76,87],[68,87],[69,87],[47,70,87],[71,85,87,91],[72,87],[73,87],[59,74,87],[74,75,87,89],[59,76,77,78,87],[76,78,87],[76,77,87],[79,87],[80,87],[59,81,82,87],[81,82,87],[53,67,83,87],[84,87],[67,85,87],[48,62,73,86,87],[53,87],[76,87,88],[87,89],[87,90],[48,53,59,61,70,76,86,87,89,91],[76,87,92],[87,186],[87,95,96],[87,141],[59,87,97,140,142,145],[87,139,145,146],[87,97,144],[87,97,123,138],[87,97,102],[87,102,103],[87,124],[87,111,129,130],[87,111,126,127,129,130,131],[87,97,129],[87,97,126],[87,131],[87,97,125,126],[87,111,128,129,130,131],[87,126,129],[87,97,111,126,128],[87,126,127,128,129,130,131,132,133,134,135,136,137],[87,97,111,125,131],[87,107],[87,108,109,186],[87,109,110],[87,108,186],[87,143],[59,87,186],[87,114],[87,114,186],[87,114,115],[87,97,113]],"referencedMap":[[179,1],[148,1],[150,2],[149,1],[151,3],[152,4],[154,5],[155,1],[156,1],[158,6],[159,7],[157,8],[160,9],[161,10],[162,11],[163,12],[164,13],[165,14],[166,15],[167,16],[168,17],[169,18],[170,1],[153,1],[171,1],[172,19],[173,1],[174,1],[175,1],[176,1],[177,1],[178,20],[180,21],[181,1],[182,1],[183,1],[184,1],[185,22],[140,1],[119,23],[121,1],[98,23],[106,24],[105,25],[100,23],[118,26],[123,27],[99,23],[120,28],[112,29],[122,1],[117,30],[101,23],[44,31],[45,31],[47,32],[48,33],[49,34],[50,35],[51,36],[52,37],[53,38],[54,39],[55,40],[56,41],[57,41],[58,42],[59,43],[60,44],[61,45],[46,1],[93,1],[62,46],[63,47],[64,48],[94,49],[65,50],[66,51],[67,52],[68,53],[69,54],[70,55],[71,56],[72,57],[73,58],[74,59],[75,60],[76,61],[78,62],[77,63],[79,64],[80,65],[81,66],[82,67],[83,68],[84,69],[85,70],[86,71],[87,72],[88,73],[89,74],[90,75],[91,76],[92,77],[95,78],[96,78],[97,79],[141,78],[142,80],[146,81],[147,82],[145,83],[139,84],[102,1],[103,85],[104,86],[124,1],[125,87],[131,88],[128,89],[130,90],[133,23],[134,91],[135,92],[127,93],[137,94],[132,1],[136,95],[129,96],[138,97],[126,98],[107,1],[108,99],[110,100],[111,101],[109,102],[144,103],[143,104],[113,105],[115,106],[116,107],[114,108],[9,1],[10,1],[14,1],[13,1],[3,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[4,1],[5,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[34,1],[35,1],[36,1],[37,1],[8,1],[42,1],[38,1],[39,1],[40,1],[41,1],[2,1],[1,1],[43,1],[12,1],[11,1]],"exportedModulesMap":[[179,1],[148,1],[150,2],[149,1],[151,3],[152,4],[154,5],[155,1],[156,1],[158,6],[159,7],[157,8],[160,9],[161,10],[162,11],[163,12],[164,13],[165,14],[166,15],[167,16],[168,17],[169,18],[170,1],[153,1],[171,1],[172,19],[173,1],[174,1],[175,1],[176,1],[177,1],[178,20],[180,21],[181,1],[182,1],[183,1],[184,1],[185,22],[140,1],[119,23],[121,1],[98,23],[106,24],[105,25],[100,23],[118,26],[123,27],[99,23],[120,28],[112,29],[122,1],[117,30],[101,23],[44,31],[45,31],[47,32],[48,33],[49,34],[50,35],[51,36],[52,37],[53,38],[54,39],[55,40],[56,41],[57,41],[58,42],[59,43],[60,44],[61,45],[46,1],[93,1],[62,46],[63,47],[64,48],[94,49],[65,50],[66,51],[67,52],[68,53],[69,54],[70,55],[71,56],[72,57],[73,58],[74,59],[75,60],[76,61],[78,62],[77,63],[79,64],[80,65],[81,66],[82,67],[83,68],[84,69],[85,70],[86,71],[87,72],[88,73],[89,74],[90,75],[91,76],[92,77],[95,78],[96,78],[97,79],[141,78],[142,80],[146,81],[147,82],[145,83],[139,84],[102,1],[103,85],[104,86],[124,1],[125,87],[131,88],[128,89],[130,90],[133,23],[134,91],[135,92],[127,93],[137,94],[132,1],[136,95],[129,96],[138,97],[126,98],[107,1],[108,99],[110,100],[111,101],[109,102],[144,103],[143,104],[113,105],[115,106],[116,107],[114,108],[9,1],[10,1],[14,1],[13,1],[3,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[4,1],[5,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[34,1],[35,1],[36,1],[37,1],[8,1],[42,1],[38,1],[39,1],[40,1],[41,1],[2,1],[1,1],[43,1],[12,1],[11,1]],"semanticDiagnosticsPerFile":[179,148,150,149,151,152,154,155,156,158,159,157,160,161,162,163,164,165,166,167,168,169,170,153,171,172,173,174,175,176,177,178,180,181,182,183,184,185,140,119,121,98,106,105,100,118,123,99,120,112,122,117,101,44,45,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,46,93,62,63,64,94,65,66,67,68,69,70,71,72,73,74,75,76,78,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,95,96,97,141,142,146,147,145,139,102,103,104,124,125,131,128,130,133,134,135,127,137,132,136,129,138,126,107,108,110,111,109,144,143,113,115,116,114,9,10,14,13,3,15,16,17,18,19,20,21,22,4,5,26,23,24,25,27,28,29,6,30,31,32,33,7,34,35,36,37,8,42,38,39,40,41,2,1,43,12,11]},"version":"4.4.2"}