@reclaimprotocol/attestor-core 3.0.1 → 3.0.2

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.
@@ -24,6 +24,24 @@ describe('HTTP Provider Utils tests', () => {
24
24
  const regexp = new RegExp(rm, 'gim');
25
25
  expect(regexp.test(json.slice(val.start, val.end))).toBe(true);
26
26
  });
27
+ it('should extract complex JSON path', () => {
28
+ const json = `{
29
+ "items":[
30
+ {
31
+ "name": "John Doe",
32
+ "country": "USA"
33
+ },
34
+ {
35
+ "country": "USA",
36
+ "age":25
37
+ }
38
+ ]
39
+ }`;
40
+ const val = (0, utils_1.extractJSONValueIndex)(json, '$.items[?(@.name.match(/.*oe/))].name');
41
+ const rm = '"name": "John Doe"';
42
+ const regexp = new RegExp(rm, 'gim');
43
+ expect(regexp.test(json.slice(val.start, val.end))).toBe(true);
44
+ });
27
45
  it('should get inner & outer tag contents', () => {
28
46
  const html = `<body>
29
47
  <div id="content123">This is <span>some</span> text!</div>
@@ -35,10 +53,47 @@ describe('HTTP Provider Utils tests', () => {
35
53
  content = (0, utils_1.extractHTMLElement)(html, "//div[contains(@id, 'content456')]", false);
36
54
  expect(content).toEqual('<div id="content456">This is <span>some</span> other text!</div>');
37
55
  });
56
+ it('should get multiple elements', () => {
57
+ const html = `<body>
58
+ <div id="content123">This is <span>some</span> text!</div>
59
+ <div id="content456">This is <span>some</span> other text!</div>
60
+ <div id="content789">This is <span>some</span> irrelevant text!</div>
61
+ </body>`;
62
+ const contents = (0, utils_1.extractHTMLElements)(html, '//body/div', true);
63
+ expect(contents).toEqual(['This is <span>some</span> text!', 'This is <span>some</span> other text!', 'This is <span>some</span> irrelevant text!']);
64
+ });
65
+ it('should get multiple JSONPaths', () => {
66
+ const jsonData = `{
67
+ "firstName": "John",
68
+ "lastName": "doe",
69
+ "age": 26,
70
+ "address": {
71
+ "streetAddress": "naist street",
72
+ "city": "Nara",
73
+ "postalCode": "630-0192"
74
+ },
75
+ "phoneNumbers": [
76
+ {
77
+ "type": "iPhone",
78
+ "number": "0123-4567-8888"
79
+ },
80
+ {
81
+ "type": "home",
82
+ "number": "0123-4567-8910"
83
+ }
84
+ ]
85
+ }`;
86
+ const contents = (0, utils_1.extractJSONValueIndexes)(jsonData, '$.phoneNumbers[*].number');
87
+ const res = [];
88
+ for (const { start, end } of contents) {
89
+ res.push(jsonData.slice(start, end));
90
+ }
91
+ expect(res).toEqual(['"number": "0123-4567-8888"', '"number": "0123-4567-8910"']);
92
+ });
38
93
  it('should error on incorrect jsonPath', () => {
39
94
  expect(() => {
40
95
  (0, utils_1.extractJSONValueIndex)(('{"asdf": 1}'), '(alert(origin))');
41
- }).toThrow('jsonPath: alert is not defined: (alert(origin))');
96
+ }).toThrow('loc.indexOf is not a function');
42
97
  });
43
98
  it('should not error on incorrect regex', () => {
44
99
  expect(() => {
@@ -83,6 +138,157 @@ describe('HTTP Provider Utils tests', () => {
83
138
  expect(str).toEqual('HTTP/1.1 200 OKchunk 1, chunk 2');
84
139
  }
85
140
  });
141
+ it('should perform complex redactions', () => {
142
+ const provider = http_1.default;
143
+ const response = Buffer.from('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\ncontent-length: 222\r\nConnection: close\r\n\r\n<body> <div id="c1">{"ages":[{"age":"26"},{"age":"27"},{"age":"28"}]}</div> <div id="c2">{"ages":[{"age":"27"},{"age":"28"},{"age":"29"}]}</div> <div id="c3">{"ages":[{"age":"29"},{"age":"30"},{"age":"31"}]}</div></body>\r\n');
144
+ if (provider.getResponseRedactions) {
145
+ const redactions = provider.getResponseRedactions(response, {
146
+ method: 'GET',
147
+ url: 'https://test.com',
148
+ 'responseMatches': [],
149
+ 'responseRedactions': [
150
+ {
151
+ 'xPath': '//body/div',
152
+ 'jsonPath': '$.ages[*].age',
153
+ 'regex': '(2|3)\\d'
154
+ }
155
+ ],
156
+ });
157
+ expect(redactions).toEqual([
158
+ {
159
+ 'fromIndex': 15,
160
+ 'toIndex': 122
161
+ },
162
+ {
163
+ 'fromIndex': 124,
164
+ 'toIndex': 135
165
+ },
166
+ {
167
+ 'fromIndex': 137,
168
+ 'toIndex': 148
169
+ },
170
+ {
171
+ 'fromIndex': 150,
172
+ 'toIndex': 191
173
+ },
174
+ {
175
+ 'fromIndex': 193,
176
+ 'toIndex': 204
177
+ },
178
+ {
179
+ 'fromIndex': 206,
180
+ 'toIndex': 217
181
+ },
182
+ {
183
+ 'fromIndex': 219,
184
+ 'toIndex': 260
185
+ },
186
+ {
187
+ 'fromIndex': 262,
188
+ 'toIndex': 273
189
+ },
190
+ {
191
+ 'fromIndex': 275,
192
+ 'toIndex': 286
193
+ },
194
+ {
195
+ 'fromIndex': 288,
196
+ 'toIndex': 307
197
+ }
198
+ ]);
199
+ let start = 0;
200
+ let str = '';
201
+ for (const red of redactions) {
202
+ str += response.subarray(start, red.fromIndex);
203
+ start = red.toIndex;
204
+ }
205
+ expect(str).toEqual('HTTP/1.1 200 OK262728272829293031');
206
+ }
207
+ });
208
+ it('should perform complex redactions 2', () => {
209
+ const provider = http_1.default;
210
+ const response = Buffer.from('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\ncontent-length: 51\r\nConnection: close\r\n\r\n{"ages":[{"age":"26"},{"age":"27"},{"age":"28"}]}\r\n');
211
+ if (provider.getResponseRedactions) {
212
+ const redactions = provider.getResponseRedactions(response, {
213
+ method: 'GET',
214
+ url: 'https://test.com',
215
+ 'responseMatches': [],
216
+ 'responseRedactions': [
217
+ {
218
+ 'jsonPath': '$.ages[*].age',
219
+ 'regex': '(2|3)\\d'
220
+ }
221
+ ],
222
+ });
223
+ expect(redactions).toEqual([
224
+ {
225
+ 'fromIndex': 15,
226
+ 'toIndex': 101
227
+ },
228
+ {
229
+ 'fromIndex': 103,
230
+ 'toIndex': 114
231
+ },
232
+ {
233
+ 'fromIndex': 116,
234
+ 'toIndex': 127
235
+ },
236
+ {
237
+ 'fromIndex': 129,
238
+ 'toIndex': 135
239
+ }
240
+ ]);
241
+ let start = 0;
242
+ let str = '';
243
+ for (const red of redactions) {
244
+ str += response.subarray(start, red.fromIndex);
245
+ start = red.toIndex;
246
+ }
247
+ expect(str).toEqual('HTTP/1.1 200 OK262728');
248
+ }
249
+ });
250
+ it('should perform complex redactions 3', () => {
251
+ const provider = http_1.default;
252
+ const response = Buffer.from('HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\ncontent-length: 222\r\nConnection: close\r\n\r\n<body> <div id="c1">{"ages":[{"age":"26"},{"age":"27"},{"age":"28"}]}</div> <div id="c2">{"ages":[{"age":"27"},{"age":"28"},{"age":"29"}]}</div> <div id="c3">{"ages":[{"age":"29"},{"age":"30"},{"age":"31"}]}</div></body>\r\n');
253
+ if (provider.getResponseRedactions) {
254
+ const redactions = provider.getResponseRedactions(response, {
255
+ method: 'GET',
256
+ url: 'https://test.com',
257
+ 'responseMatches': [],
258
+ 'responseRedactions': [
259
+ {
260
+ 'xPath': '//body/div',
261
+ 'regex': '"age":"\\d{2}"'
262
+ }
263
+ ],
264
+ });
265
+ expect(redactions).toEqual([
266
+ {
267
+ 'fromIndex': 15,
268
+ 'toIndex': 115
269
+ },
270
+ {
271
+ 'fromIndex': 125,
272
+ 'toIndex': 184
273
+ },
274
+ {
275
+ 'fromIndex': 194,
276
+ 'toIndex': 253
277
+ },
278
+ {
279
+ 'fromIndex': 263,
280
+ 'toIndex': 307
281
+ }
282
+ ]);
283
+ let start = 0;
284
+ let str = '';
285
+ for (const red of redactions) {
286
+ str += response.subarray(start, red.fromIndex);
287
+ start = red.toIndex;
288
+ }
289
+ expect(str).toEqual('HTTP/1.1 200 OK"age":"26""age":"27""age":"29"');
290
+ }
291
+ });
86
292
  it('should get redactions from chunked response', () => {
87
293
  const provider = http_1.default;
88
294
  if (provider.getResponseRedactions) {
@@ -1929,4 +2135,4 @@ b24xJywgZmFsc2UpOwpnYSgnc2V0JywgJ2RpbWVuc2lvbjInLCAndzIwMjEnKTsKZ2EoJ3NldCcs
1929
2135
  ICdkaW1lbnNpb24zJywgdHJ1ZSk7CmdhKCdzZXQnLCAnZGltZW5zaW9uNCcsIHRydWUpOwpnYSgn
1930
2136
  c2VuZCcsICdwYWdldmlldycpOwoKPC9zY3JpcHQ+CjwhLS0gRW5kIEdvb2dsZSBBbmFseXRpY3Mg
1931
2137
  LS0+CjwvYm9keT48L2h0bWw+DQowDQoNCg==`, 'base64');
1932
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5odHRwLXByb3ZpZGVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuaHR0cC1wcm92aWRlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFzRDtBQUN0RCw2Q0FBeUM7QUFDekMsOERBQTZDO0FBQzdDLG9EQUtpQztBQUVqQyxxQ0FBK0c7QUFDL0csMkJBQTJDO0FBRTNDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBTSxDQUFDLENBQUE7QUFFdkIsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUUxQyxNQUFNLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLDBCQUEwQixFQUMxQixHQUFHLHFCQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFckIsTUFBTSxVQUFVLEdBQTJCLElBQUksQ0FBQyxLQUFLLENBQUMseXNVQUF5c1UsQ0FBQztTQUM5dlUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1osR0FBRyxDQUFDO1FBQ0osT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7S0FDekMsQ0FBQyxDQUFDLENBQUE7SUFFSixFQUFFLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsSUFBSSxFQUFFLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3RGLE1BQU0sR0FBRyxHQUFHLElBQUEsNkJBQXFCLEVBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ3hELE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFBO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUVwQyxNQUFNLENBQUMs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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUNBb21DSyxFQUFFLFFBQVEsQ0FBQyxDQUFBIn0=
2138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5odHRwLXByb3ZpZGVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuaHR0cC1wcm92aWRlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFzRDtBQUN0RCw2Q0FBeUM7QUFDekMsOERBQTZDO0FBQzdDLG9EQUtpQztBQUVqQyxxQ0FBK0c7QUFDL0csMkJBQTJDO0FBRTNDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBTSxDQUFDLENBQUE7QUFFdkIsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUUxQyxNQUFNLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLDBCQUEwQixFQUMxQixHQUFHLHFCQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFckIsTUFBTSxVQUFVLEdBQTJCLElBQUksQ0FBQyxLQUFLLENBQUMseXNVQUF5c1UsQ0FBQztTQUM5dlUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1osR0FBRyxDQUFDO1FBQ0osT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7S0FDekMsQ0FBQyxDQUFDLENBQUE7SUFFSixFQUFFLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsSUFBSSxFQUFFLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3RGLE1BQU0sR0FBRyxHQUFHLElBQUEsNkJBQXFCLEVBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ3hELE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFBO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUVwQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQyxDQUFDLENBQUE7SUFHRixFQUFFLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sSUFBSSxHQUFHOzs7Ozs7Ozs7OztFQVdiLENBQUE7UUFDQSxNQUFNLEdBQUcsR0FBRyxJQUFBLDZCQUFxQixFQUFDLElBQUksRUFBRSx1Q0FBdUMsQ0FBQyxDQUFBO1FBQ2hGLE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFBO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUVwQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQyxDQUFDLENBQUE7SUFHRixFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sSUFBSSxHQUFHOzs7O1dBSUosQ0FBQTtRQUVULElBQUksT0FBTyxHQUFHLElBQUEsMEJBQWtCLEVBQUMsSUFBSSxFQUFFLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2xGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtRQUMxRCxPQUFPLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxJQUFJLEVBQUUsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDL0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrRUFBa0UsQ0FBQyxDQUFBO0lBQzVGLENBQUMsQ0FBQyxDQUFBO0lBR0YsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRzs7OztXQUlKLENBQUE7UUFFVCxNQUFNLFFBQVEsR0FBRyxJQUFBLDJCQUFtQixFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDOUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLDRDQUE0QyxDQUFDLENBQUMsQ0FBQTtJQUNySixDQUFDLENBQUMsQ0FBQTtJQUdGLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDeEMsTUFBTSxRQUFRLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQmpCLENBQUE7UUFFQSxNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUF1QixFQUFDLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO1FBRTlFLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQTtRQUN4QixLQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsNEJBQTRCLEVBQUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFBO0lBQ2xGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtRQUM3QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBQSw2QkFBcUIsRUFBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFDMUQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFDNUMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1FBQzlDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlCQUFTLEVBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNqQixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDbEQsTUFBTSxRQUFRLEdBQUcsY0FBWSxDQUFBO1FBQzdCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0lBQStJLENBQUMsQ0FBQTtRQUVoTCxJQUFHLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlELE1BQU0sRUFBRSxLQUFLO2dCQUNiLEdBQUcsRUFBRSxrQkFBa0I7Z0JBQ3ZCLGlCQUFpQixFQUFFLEVBRWxCO2dCQUNELG9CQUFvQixFQUFFO29CQUNyQjt3QkFDQyxPQUFPLEVBQUUsa0JBQWtCO3FCQUMzQjtpQkFDRDthQUNELENBQUMsQ0FBQTtZQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzFCO29CQUNDLFdBQVcsRUFBRSxFQUFFO29CQUNmLFNBQVMsRUFBRSxFQUFFO2lCQUNiO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7YUFDRCxDQUFDLENBQUE7WUFFRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7WUFDYixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7WUFDWixLQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUM3QixHQUFHLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUNqRCxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQTtZQUNwQixDQUFDO1lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1FBQ3ZELENBQUM7SUFFRixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7UUFDNUMsTUFBTSxRQUFRLEdBQUcsY0FBWSxDQUFBO1FBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaVVBQWlVLENBQUMsQ0FBQTtRQUUvVixJQUFHLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUU7Z0JBQzNELE1BQU0sRUFBRSxLQUFLO2dCQUNiLEdBQUcsRUFBRSxrQkFBa0I7Z0JBQ3ZCLGlCQUFpQixFQUFFLEVBRWxCO2dCQUNELG9CQUFvQixFQUFFO29CQUNyQjt3QkFDQyxPQUFPLEVBQUUsWUFBWTt3QkFDckIsVUFBVSxFQUFDLGVBQWU7d0JBQzFCLE9BQU8sRUFBQyxVQUFVO3FCQUNsQjtpQkFDRDthQUNELENBQUMsQ0FBQTtZQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzFCO29CQUNDLFdBQVcsRUFBRSxFQUFFO29CQUNmLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7Z0JBQ0Q7b0JBQ0MsV0FBVyxFQUFFLEdBQUc7b0JBQ2hCLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7Z0JBQ0Q7b0JBQ0MsV0FBVyxFQUFFLEdBQUc7b0JBQ2hCLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7Z0JBQ0Q7b0JBQ0MsV0FBVyxFQUFFLEdBQUc7b0JBQ2hCLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2FBQ0QsQ0FBQyxDQUFBO1lBRUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO1lBQ2IsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFBO1lBQ1osS0FBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDOUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUE7WUFDcEIsQ0FBQztZQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUN6RCxDQUFDO0lBRUYsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLGNBQVksQ0FBQTtRQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHFKQUFxSixDQUFDLENBQUE7UUFFbkwsSUFBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFO2dCQUMzRCxNQUFNLEVBQUUsS0FBSztnQkFDYixHQUFHLEVBQUUsa0JBQWtCO2dCQUN2QixpQkFBaUIsRUFBRSxFQUVsQjtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDckI7d0JBQ0MsVUFBVSxFQUFDLGVBQWU7d0JBQzFCLE9BQU8sRUFBQyxVQUFVO3FCQUNsQjtpQkFDRDthQUNELENBQUMsQ0FBQTtZQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzFCO29CQUNDLFdBQVcsRUFBRSxFQUFFO29CQUNmLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7Z0JBQ0Q7b0JBQ0MsV0FBVyxFQUFFLEdBQUc7b0JBQ2hCLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2FBQ0QsQ0FBQyxDQUFBO1lBRUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO1lBQ2IsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFBO1lBQ1osS0FBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDOUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUE7WUFDcEIsQ0FBQztZQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO0lBRUYsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLGNBQVksQ0FBQTtRQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlVQUFpVSxDQUFDLENBQUE7UUFFL1YsSUFBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFO2dCQUMzRCxNQUFNLEVBQUUsS0FBSztnQkFDYixHQUFHLEVBQUUsa0JBQWtCO2dCQUN2QixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixvQkFBb0IsRUFBRTtvQkFDckI7d0JBQ0MsT0FBTyxFQUFFLFlBQVk7d0JBQ3JCLE9BQU8sRUFBRSxnQkFBZ0I7cUJBQ3pCO2lCQUNEO2FBQ0QsQ0FBQyxDQUFBO1lBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDMUI7b0JBQ0MsV0FBVyxFQUFFLEVBQUU7b0JBQ2YsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7Z0JBQ0Q7b0JBQ0MsV0FBVyxFQUFFLEdBQUc7b0JBQ2hCLFNBQVMsRUFBRSxHQUFHO2lCQUNkO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Q7YUFDRCxDQUFDLENBQUE7WUFFRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7WUFDYixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7WUFDWixLQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUM3QixHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUM5QyxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQTtZQUNwQixDQUFDO1lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQywrQ0FBK0MsQ0FBQyxDQUFBO1FBQ3JFLENBQUM7SUFDRixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxRQUFRLEdBQUcsY0FBWSxDQUFBO1FBQzdCLElBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbkMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRTtnQkFDOUQsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsR0FBRyxFQUFFLHVDQUF1QztnQkFDNUMsaUJBQWlCLEVBQUUsRUFFbEI7Z0JBQ0Qsb0JBQW9CLEVBQUU7b0JBQ3JCO3dCQUNDLE9BQU8sRUFBRSwyQ0FBMkM7d0JBQ3BELFVBQVUsRUFBRSxlQUFlO3FCQUMzQjtvQkFDRDt3QkFDQyxPQUFPLEVBQUUsaURBQWlEO3dCQUMxRCxVQUFVLEVBQUUsZUFBZTtxQkFDM0I7b0JBQ0Q7d0JBQ0MsT0FBTyxFQUFFLHNDQUFzQztxQkFDL0M7aUJBQ0Q7YUFDRCxDQUFDLENBQUE7WUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUMxQjtvQkFDQyxXQUFXLEVBQUUsRUFBRTtvQkFDZixTQUFTLEVBQUUsRUFBRTtpQkFDYjtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsRUFBRTtvQkFDZixTQUFTLEVBQUUsSUFBSTtpQkFDZjtnQkFDRDtvQkFDQyxXQUFXLEVBQUUsSUFBSTtvQkFDakIsU0FBUyxFQUFFLEtBQUs7aUJBQ2hCO2dCQUNEO29CQUNDLFdBQVcsRUFBRSxLQUFLO29CQUNsQixTQUFTLEVBQUUsS0FBSztpQkFDaEI7Z0JBQ0Q7b0JBQ0MsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLFNBQVMsRUFBRSxLQUFLO2lCQUNoQjthQUNELENBQUMsQ0FBQTtRQUNILENBQUM7SUFFRixDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxNQUFNLEdBQTJCO1lBQ3RDLEdBQUcsRUFBRSxvQkFBb0I7WUFDekIsZUFBZSxFQUFFO2dCQUNoQjtvQkFDQyxJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsNkRBQTZEO2lCQUNwRTthQUNEO1lBQ0QsTUFBTSxFQUFFLEtBQUs7WUFDYixrQkFBa0IsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDcEQsV0FBVyxFQUFFLElBQUk7U0FDakIsQ0FBQTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUE7UUFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvRUFBb0UsQ0FBQyxDQUFBO1FBRzFGLE1BQU0sUUFBUSxHQUEyQjtZQUN4QyxhQUFhLEVBQUUsRUFBRTtZQUNqQixLQUFLLEVBQUUscUNBQXFDO1lBQzVDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsTUFBTSxFQUFFLEVBQUU7WUFDVixpQkFBaUIsRUFBRTtnQkFDbEI7b0JBQ0MsT0FBTyxFQUFFLDJOQUEyTjtvQkFDcE8sTUFBTSxFQUFFLFVBQVU7aUJBQ2xCO2FBQUM7WUFDSCxvQkFBb0IsRUFBRSxDQUFDO29CQUN0QixPQUFPLEVBQUUsV0FBVztvQkFDcEIsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsT0FBTyxFQUFFLHlLQUF5SztpQkFDbEwsQ0FBQztTQUNGLENBQUE7UUFDRCxNQUFNLENBQUMsSUFBQSwwQkFBa0IsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvRUFBb0UsQ0FBQyxDQUFBO0lBQ25ILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLFNBQVMsR0FBK0I7WUFDN0M7Z0JBQ0MsQ0FBQyxFQUFFLEtBQUs7Z0JBQ1IsQ0FBQyxFQUFFLEtBQUs7YUFDUjtZQUNEO2dCQUNDLENBQUMsRUFBRSxTQUFTO2dCQUNaLENBQUMsRUFBRSxjQUFjO2FBQ2pCO1lBQ0Q7Z0JBQ0MsQ0FBQyxFQUFFLFVBQVU7Z0JBQ2IsQ0FBQyxFQUFFLElBQUk7YUFDUDtZQUNEO2dCQUNDLENBQUMsRUFBRSxVQUFVO2dCQUNiLENBQUMsRUFBRSw4Q0FBOEM7YUFDakQ7WUFDRDtnQkFDQyxDQUFDLEVBQUUsMEJBQTBCO2dCQUM3QixDQUFDLEVBQUUsTUFBTTthQUNUO1lBQ0Q7Z0JBQ0MsQ0FBQyxFQUFFLHlCQUF5QjtnQkFDNUIsQ0FBQyxFQUFFLEtBQUs7YUFDUjtTQUNELENBQUE7UUFFRCxLQUFJLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLElBQUEsNEJBQW9CLEVBQUMsSUFBQSxxQkFBZSxFQUFDLENBQUMsQ0FBQyxFQUFFLElBQUEscUJBQWUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbEYsQ0FBQztJQUNGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxNQUFNLFNBQVMsR0FBK0I7WUFDN0M7Z0JBQ0MsQ0FBQyxFQUFFLEtBQUs7Z0JBQ1IsQ0FBQyxFQUFFLEtBQUs7YUFDUjtZQUNEO2dCQUNDLENBQUMsRUFBRSxTQUFTO2dCQUNaLENBQUMsRUFBRSxFQUFFO2FBQ0w7WUFDRDtnQkFDQyxDQUFDLEVBQUUsRUFBRTtnQkFDTCxDQUFDLEVBQUUsT0FBTzthQUNWO1lBQ0Q7Z0JBQ0MsQ0FBQyxFQUFFLGlCQUFpQjtnQkFDcEIsQ0FBQyxFQUFFLElBQUk7YUFDUDtZQUNEO2dCQUNDLENBQUMsRUFBRSxNQUFNO2dCQUNULENBQUMsRUFBRSxHQUFHO2FBQ047WUFDRDtnQkFDQyxDQUFDLEVBQUUseUJBQXlCO2dCQUM1QixDQUFDLEVBQUUsTUFBTTthQUNUO1lBQ0Q7Z0JBQ0MsQ0FBQyxFQUFFLFFBQVE7Z0JBQ1gsQ0FBQyxFQUFFLGNBQWM7YUFDakI7U0FDRCxDQUFBO1FBRUQsS0FBSSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxJQUFBLDRCQUFvQixFQUFDLElBQUEscUJBQWUsRUFBQyxDQUFDLENBQUMsRUFBRSxJQUFBLHFCQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2pGLENBQUM7SUFDRixDQUFDLENBQUMsQ0FBQTtJQUdGLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7UUFDdEMsTUFBTSxDQUNMLEdBQUcsRUFBRSxDQUFDLENBQ0wsSUFBQSx3QkFBZ0IsRUFDZjtZQUNDLEdBQUcsRUFBRSxLQUFLO1lBQ1YsZUFBZSxFQUFFLEVBQUU7WUFDbkIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixNQUFNLEVBQUUsS0FBSztTQUNiLEVBQ0QsUUFBUSxDQUNSLENBQ0QsQ0FDRCxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN6QixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUEsb0NBQTRCLEVBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxRCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUN4QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLGFBQWEsQ0FBQztnQkFDYixTQUFTLEVBQUUsU0FBUztnQkFDcEIsbUJBQW1CLEVBQUUsU0FBUztnQkFDOUIsT0FBTyxFQUFFLFNBQVM7YUFDbEIsRUFBRTtnQkFDRixHQUFHLEVBQUUsS0FBSztnQkFDVixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUMxQyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxHQUFHLEdBQ0M7Ozs7O0NBS1gsQ0FBQTtRQUNDLE1BQU0sVUFBVSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQzNDLHFCQUFxQixDQUFDLElBQUEscUJBQWUsRUFBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0MsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2FBQ2IsQ0FBQztZQUNGLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDWixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25DLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtRQUNyQyxNQUFNLEdBQUcsR0FDQzs7Ozs7Q0FLWCxDQUFBO1FBQ0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUcscUJBQXFCLEVBQUUsQ0FBQztnQkFDMUIscUJBQXFCLENBQUMsSUFBQSxxQkFBZSxFQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMzQyxHQUFHLEVBQUUsS0FBSztvQkFDVixlQUFlLEVBQUUsRUFBRTtvQkFDbkIsa0JBQWtCLEVBQUUsQ0FBQzs0QkFDcEIsS0FBSyxFQUFFLEtBQUs7eUJBQ1osQ0FBQztvQkFDRixNQUFNLEVBQUUsS0FBSztpQkFDYixDQUFDLENBQUE7WUFDSCxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFDM0MsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO1FBQ3BDLE1BQU0sR0FBRyxHQUNDOzs7OztFQUtWLENBQUE7UUFDQSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBRyxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixxQkFBcUIsQ0FBQyxJQUFBLHFCQUFlLEVBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzNDLEdBQUcsRUFBRSxLQUFLO29CQUNWLGVBQWUsRUFBRSxFQUFFO29CQUNuQixrQkFBa0IsRUFBRSxDQUFDOzRCQUNwQixLQUFLLEVBQUUsS0FBSzt5QkFDWixDQUFDO29CQUNGLE1BQU0sRUFBRSxLQUFLO2lCQUNiLENBQUMsQ0FBQTtZQUNILENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxHQUFHLEdBQ0M7Ozs7O0VBS1YsQ0FBQTtRQUNBLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFHLHFCQUFxQixFQUFFLENBQUM7Z0JBQzFCLHFCQUFxQixDQUFDLElBQUEscUJBQWUsRUFBQyxHQUFHLENBQUMsRUFBRTtvQkFDM0MsR0FBRyxFQUFFLEtBQUs7b0JBQ1YsZUFBZSxFQUFFLEVBQUU7b0JBQ25CLGtCQUFrQixFQUFFLENBQUM7NEJBQ3BCLFFBQVEsRUFBRSxLQUFLO3lCQUNmLENBQUM7b0JBQ0YsTUFBTSxFQUFFLEtBQUs7aUJBQ2IsQ0FBQyxDQUFBO1lBQ0gsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ2pDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNwQyxNQUFNLEdBQUcsR0FDQzs7Ozs7RUFLVixDQUFBO1FBQ0EsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUcscUJBQXFCLEVBQUUsQ0FBQztnQkFDMUIscUJBQXFCLENBQUMsSUFBQSxxQkFBZSxFQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMzQyxHQUFHLEVBQUUsS0FBSztvQkFDVixlQUFlLEVBQUUsRUFBRTtvQkFDbkIsa0JBQWtCLEVBQUUsQ0FBQzs0QkFDcEIsS0FBSyxFQUFFLEtBQUs7eUJBQ1osQ0FBQztvQkFDRixNQUFNLEVBQUUsS0FBSztpQkFDYixDQUFDLENBQUE7WUFDSCxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLCtDQUErQyxDQUFDLENBQUE7SUFDNUQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1FBRXJDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCwwQkFBMEIsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3RDLEdBQUcsRUFBRSxLQUFLO2dCQUNWLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixrQkFBa0IsRUFBRSxFQUFFO2dCQUN0QixNQUFNLEVBQUUsTUFBTTthQUNkLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ2xDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUV2QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsMEJBQTBCLENBQUMsVUFBVSxFQUFFO2dCQUN0QyxHQUFHLEVBQUUsa0JBQWtCO2dCQUN2QixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtJQUNyRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFFM0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLDBCQUEwQixDQUFDLFVBQVUsRUFBRTtnQkFDdEMsR0FBRyxFQUFFLHVCQUF1QjtnQkFDNUIsZUFBZSxFQUFFLENBQUM7d0JBQ2pCLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxXQUFXO3FCQUNsQixDQUFDO2dCQUNGLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFdBQVcsRUFBRTtvQkFDWixLQUFLLEVBQUUsS0FBSztpQkFDWjthQUNELENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0lBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUVuQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsMEJBQTBCLENBQUMsVUFBVSxFQUFFO2dCQUN0QyxHQUFHLEVBQUUsdUJBQXVCO2dCQUM1QixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLDBCQUEwQixDQUFDLFVBQVUsRUFBRTtnQkFDdEMsR0FBRyxFQUFFLGtCQUFrQjtnQkFDdkIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUE7SUFDdkQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNwQyxtREFBbUQ7UUFDbkQsK0NBQStDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFFLENBQUE7UUFDckYsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDOUIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLDBCQUEwQixDQUFDLElBQUksRUFBRTtnQkFDaEMsR0FBRyxFQUFFLG9CQUFvQjtnQkFDekIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDhDQUE4QyxDQUFDLENBQUE7SUFDM0QsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNwQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sS0FBSyxDQUFBO1lBQ2IsQ0FBQztZQUVELE9BQU8sSUFBQSx1QkFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7aUJBQy9CLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBRSxDQUFBO1FBQ0gsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUNwQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsMEJBQTBCLENBQUMsSUFBSSxFQUFFO2dCQUNoQyxHQUFHLEVBQUUsb0JBQW9CO2dCQUN6QixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQTtJQUNsRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLDBCQUEwQixDQUFDLFVBQVUsRUFBRTtnQkFDdEMsR0FBRyxFQUFFLG9CQUFvQjtnQkFDekIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLElBQUksRUFBRSxLQUFLO2FBQ1gsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCwwQkFBMEIsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3RDLEdBQUcsRUFBRSxvQkFBb0I7Z0JBQ3pCLGVBQWUsRUFBRSxDQUFDO3dCQUNqQixJQUFJLEVBQUUsT0FBTzt3QkFDYixLQUFLLEVBQUUsS0FBSztxQkFDWixDQUFDO2dCQUNGLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDhDQUE4QyxDQUFDLENBQUE7SUFDM0QsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCwwQkFBMEIsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3RDLEdBQUcsRUFBRSxvQkFBb0I7Z0JBQ3pCLGVBQWUsRUFBRSxDQUFDO3dCQUNqQixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsS0FBSyxFQUFFLEtBQUs7cUJBQ1osQ0FBQztnQkFDRixrQkFBa0IsRUFBRSxFQUFFO2dCQUN0QixNQUFNLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUFBO0lBQ2pFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUN6QixNQUFNLEdBQUcsR0FBRyxJQUFBLHdCQUFnQixFQUMzQjtZQUNDLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRTtnQkFDWixLQUFLLEVBQUUsSUFBSTthQUNYO1NBQ29DLEVBQ3RDLFdBQVcsQ0FDWCxDQUFBO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFFeEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLGFBQWE7WUFDYixXQUFXLENBQUM7Z0JBQ1gsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLFdBQVcsRUFBRTtvQkFDWixNQUFNLEVBQUUsSUFBSTtpQkFDWjthQUNELENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQyxDQUFBO0lBQ2hFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUVsQyxNQUFNLENBQUMsYUFBYTtRQUNuQixXQUFXLENBQUM7WUFDWCxXQUFXLEVBQUUsRUFBRTtTQUNmLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN4QixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFFM0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLGFBQWE7WUFDYixPQUFPLFFBQVEsQ0FDZDtnQkFDQyxHQUFHLEVBQUUsMEJBQTBCO2FBQy9CLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQzthQUNBLE9BQU8sQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO0lBQ2xFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUVsQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsYUFBYTtZQUNiLFFBQVEsQ0FDUDtnQkFDQyxHQUFHLEVBQUUsaUJBQWlCO2FBQ3RCLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQzthQUNBLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQzlCLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN6QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxNQUFNLEdBQUc7Z0JBQ2QsR0FBRyxFQUFFLG9CQUFvQjtnQkFDekIsZUFBZSxFQUFFLENBQUM7d0JBQ2pCLElBQUksRUFBRSxLQUFLO3dCQUNYLEtBQUssRUFBRSxLQUFLO3FCQUNaLENBQUM7Z0JBQ0Ysa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFBO1lBQ0QsYUFBYTtZQUNiLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMvQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtJQUM5QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLDBCQUEwQixDQUFDLFVBQVUsRUFBRTtnQkFDdEMsR0FBRyxFQUFFLHdCQUF3QjtnQkFDN0IsZUFBZSxFQUFFLENBQUM7d0JBQ2pCLElBQUksRUFBRSxVQUFVO3dCQUNoQixLQUFLLEVBQUUsS0FBSztxQkFDWixDQUFDO2dCQUNGLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHFEQUFxRCxDQUFDLENBQUE7SUFDbEUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxhQUFhLENBQUM7Z0JBQ2IsU0FBUyxFQUFFLEtBQUs7YUFFaEIsRUFBRTtnQkFDRixHQUFHLEVBQUUsdUJBQXVCO2dCQUM1QixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMseUZBQXlGLENBQUMsQ0FBQTtJQUN0RyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDbEQsTUFBTSxNQUFNLEdBQTJCO1lBQ3RDLEdBQUcsRUFBRSw2QkFBNkI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsMkdBQTJHO1lBQ2pILFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGVBQWUsRUFBRSxDQUFDO29CQUNqQixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsaURBQWlEO2lCQUN4RCxDQUFDO1lBQ0Ysa0JBQWtCLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxFQUFFLHdCQUF3QjtpQkFDL0IsRUFBRTtvQkFDRixLQUFLLEVBQUUsNEJBQTRCO2lCQUNuQyxDQUFDO1lBQ0YsV0FBVyxFQUFFO2dCQUNaLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsT0FBTztnQkFDZixJQUFJLEVBQUUsY0FBYztnQkFDcEIsQ0FBQyxFQUFDLE9BQU87Z0JBQ1QsQ0FBQyxFQUFDLE9BQU87YUFDVDtZQUNELE9BQU8sRUFBRTtnQkFDUixZQUFZLEVBQUUsYUFBYTthQUMzQjtTQUNELENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRztZQUNwQixTQUFTLEVBQUUsY0FBYztZQUN6QixXQUFXLEVBQUU7Z0JBQ1osQ0FBQyxFQUFFLE9BQU87Z0JBQ1YsY0FBYyxFQUFFLFFBQVE7Z0JBQ3hCLEVBQUUsRUFBRSxRQUFRO2FBQ1o7WUFDRCxtQkFBbUIsRUFBRSxLQUFLO1NBQzFCLENBQUE7UUFDRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRS9DLE1BQU0sT0FBTyxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsSUFBa0IsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsbUZBQW1GLENBQUMsQ0FBQTtRQUM5RyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFBO1FBQzdFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN6QyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3pDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4QyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXpDLFNBQVMsWUFBWSxDQUFDLEtBQWE7WUFDbEMsT0FBTyxJQUFBLHVCQUFlLEVBQUUsR0FBRyxDQUFDLElBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUN2SCxDQUFDO0lBQ0YsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3pELE1BQU0sTUFBTSxHQUEyQjtZQUN0QyxNQUFNLEVBQUUsZ0dBQWdHO1lBQ3hHLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGFBQWEsRUFBRTtnQkFDZCxTQUFTLEVBQUUsT0FBTztnQkFDbEIsVUFBVSxFQUFFLGNBQWM7YUFDMUI7WUFDRCxpQkFBaUIsRUFBRTtnQkFDbEI7b0JBQ0MsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLE9BQU8sRUFBRSwyQkFBMkI7aUJBQ3BDO2FBQ0Q7WUFDRCxvQkFBb0IsRUFBRTtnQkFDckI7b0JBQ0MsVUFBVSxFQUFFLFlBQVk7b0JBQ3hCLE9BQU8sRUFBRSxtQkFBbUI7b0JBQzVCLE9BQU8sRUFBRSxFQUFFO2lCQUNYO2FBQ0Q7WUFDRCxLQUFLLEVBQUUsd0JBQXdCO1NBQy9CLENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRztZQUNwQixhQUFhLEVBQUU7Z0JBQ2QsWUFBWSxFQUFFLE9BQU87YUFDckI7WUFDRCxtQkFBbUIsRUFBRSxLQUFLO1NBQzFCLENBQUE7UUFFRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRS9DLE1BQU0sT0FBTyxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsSUFBa0IsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsdUZBQXVGLENBQUMsQ0FBQTtRQUNsSCxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFeEMsU0FBUyxZQUFZLENBQUMsS0FBYTtZQUNsQyxPQUFPLElBQUEsdUJBQWUsRUFBRSxHQUFHLENBQUMsSUFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3ZILENBQUM7SUFDRixDQUFDLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsU0FBUyxXQUFXLENBQUksR0FBTTtJQUM3Qix5Q0FBeUM7SUFDekMsb0NBQW9DO0lBQ3BDLE9BQU8sSUFBQSxnQkFBVyxFQUFDLElBQUEsY0FBUyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDbkMsQ0FBQztBQUVELE1BQU0sSUFBSSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQStJWixDQUFBO0FBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUNBb21DSyxFQUFFLFFBQVEsQ0FBQyxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reclaimprotocol/attestor-core",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "",
5
5
  "main": "lib/index",
6
6
  "scripts": {
@@ -24,6 +24,7 @@
24
24
  "deploy:contracts-to-chain": "sh avs/utils/anvil/deploy-to-chain.sh",
25
25
  "register:avs-operator": "npm run run:tsc -- src/scripts/register-avs-operator.ts",
26
26
  "check:avs-registration": "npm run run:tsc -- src/scripts/check-avs-registration.ts",
27
+ "whitelist:operator": "npm run run:tsc -- src/scripts/whitelist-operator.ts",
27
28
  "generate:avs": "typechain -- --target ethers-v5 --out-dir src/avs/contracts avs/contracts/out/ReclaimServiceManager.sol/*.json",
28
29
  "start:chain": "bash ./avs/utils/anvil/start-anvil-chain-with-el-and-avs-deployed.sh",
29
30
  "commitlint": "commitlint --edit"
@@ -61,8 +62,8 @@
61
62
  "@bufbuild/protobuf": "^2.0.0",
62
63
  "@commitlint/cli": "^17.7.1",
63
64
  "@commitlint/config-conventional": "^17.7.0",
64
- "@reclaimprotocol/circom-symmetric-crypto": "git+https://gitlab.reclaimprotocol.org/reclaim/zk-symmetric-crypto",
65
- "@reclaimprotocol/tls": "git+https://gitlab.reclaimprotocol.org/reclaim/tls",
65
+ "@reclaimprotocol/circom-symmetric-crypto": "github:reclaimprotocol/circom-symmetric-crypto",
66
+ "@reclaimprotocol/tls": "github:reclaimprotocol/tls",
66
67
  "ajv": "^8.17.1",
67
68
  "canonicalize": "^2.0.0",
68
69
  "dotenv": "^16.4.5",
@@ -72,39 +73,38 @@
72
73
  "https-proxy-agent": "^7.0.5",
73
74
  "jsdom": "^24.1.3",
74
75
  "jsonpath-plus": "^9.0.0",
75
- "koffi": "^2.9.0",
76
76
  "p-queue": "^8.0.1",
77
77
  "pino": "^9.4.0",
78
78
  "protobufjs": "^7.4.0",
79
79
  "re2": "^1.21.4",
80
- "serve-static": "^1.15.0",
80
+ "serve-static": "^1.16.2",
81
81
  "snarkjs": "^0.7.4",
82
82
  "ws": "^8.18.0"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@adiwajshing/eslint-config": "github:adiwajshing/eslint-config",
86
86
  "@swc-node/register": "^1.10.9",
87
- "@swc/core": "^1.7.23",
87
+ "@swc/core": "^1.7.26",
88
88
  "@swc/jest": "^0.2.36",
89
89
  "@typechain/ethers-v5": "^11.1.2",
90
90
  "@types/chance": "^1.1.6",
91
- "@types/jest": "^29.5.12",
91
+ "@types/jest": "^29.5.13",
92
92
  "@types/jsdom": "^21.1.7",
93
- "@types/node": "^20.16.5",
93
+ "@types/node": "^20.16.10",
94
94
  "@types/serve-static": "^1.15.7",
95
95
  "@types/ws": "^8.5.12",
96
96
  "chance": "^1.1.12",
97
- "eslint": "^8.57.0",
97
+ "eslint": "^8.57.1",
98
98
  "eslint-plugin-no-relative-import-paths": "^1.5.5",
99
99
  "jest": "^29.7.0",
100
100
  "json-schema-to-typescript": "^15.0.2",
101
101
  "ts-loader": "^9.5.1",
102
- "ts-proto": "^2.2.0",
102
+ "ts-proto": "^2.2.1",
103
103
  "tsc-alias": "^1.8.10",
104
104
  "tsconfig-paths-webpack-plugin": "^4.1.0",
105
105
  "typechain": "^8.3.2",
106
- "typescript": "^5.5.4",
107
- "webpack": "^5.94.0",
106
+ "typescript": "^5.6.2",
107
+ "webpack": "^5.95.0",
108
108
  "webpack-cli": "^5.1.4",
109
109
  "yaml": "^2.5.1"
110
110
  },
@@ -113,5 +113,8 @@
113
113
  "ws": "^7.5.10"
114
114
  },
115
115
  "elliptic": "^v6.5.7"
116
+ },
117
+ "optionalDependencies": {
118
+ "koffi": "^2.9.1"
116
119
  }
117
120
  }