@design.estate/dees-catalog 6.1.0 → 6.2.0

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.
Files changed (45) hide show
  1. package/dist_bundle/bundle.js +3097 -1497
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +2 -0
  4. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +484 -8
  5. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +10 -1
  6. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +3 -1
  7. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +24 -4
  8. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +26 -0
  9. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +398 -94
  10. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.d.ts +32 -0
  11. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.d.ts +1 -0
  12. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.js +31 -0
  13. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.js +297 -0
  14. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +1 -9
  15. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +10 -1
  16. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +181 -2
  17. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +17 -1
  18. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +476 -36
  19. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +23 -20
  20. package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +5 -1
  21. package/dist_ts_web/elements/00group-harness/harness.helpers.js +66 -1
  22. package/dist_ts_web/elements/00group-harness/index.d.ts +1 -0
  23. package/dist_ts_web/elements/00group-harness/index.js +2 -1
  24. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +31 -2
  25. package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +4 -0
  26. package/dist_ts_web/elements/00group-harness/toolregistry.js +8 -1
  27. package/package.json +2 -2
  28. package/readme.hints.md +16 -1
  29. package/readme.md +41 -9
  30. package/readme.playbook.md +8 -4
  31. package/ts_web/00_commitinfo_data.ts +1 -1
  32. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +490 -7
  33. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +9 -0
  34. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +24 -3
  35. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +397 -84
  36. package/ts_web/elements/00group-harness/dees-harness-overflow-text.demo.ts +31 -0
  37. package/ts_web/elements/00group-harness/dees-harness-overflow-text.ts +236 -0
  38. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +0 -8
  39. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +193 -1
  40. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +480 -34
  41. package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +24 -21
  42. package/ts_web/elements/00group-harness/harness.helpers.ts +68 -1
  43. package/ts_web/elements/00group-harness/index.ts +1 -0
  44. package/ts_web/elements/00group-harness/interfaces.ts +36 -2
  45. package/ts_web/elements/00group-harness/toolregistry.ts +12 -0
@@ -74,8 +74,472 @@ const pendingPermission = {
74
74
  createdAt: Date.now(),
75
75
  metadata: { path: '/srv/app/src/jobs/sitemap.job.ts', bytes: 812 },
76
76
  };
77
+ const firstSubagentWave = [
78
+ {
79
+ description: 'API contract',
80
+ model: 'openai/gpt-5.5',
81
+ toolName: 'read_file',
82
+ toolInput: { path: '/srv/app/ts_interfaces/harness.ts', startLine: 1, endLine: 220 },
83
+ toolOutput: 'IHarnessSessionProjection and event contracts loaded.',
84
+ resultChunks: [
85
+ 'The projection boundary is already runtime-neutral. ',
86
+ 'Child ownership can stay on the session service. ',
87
+ 'Only bounded messages and status need to cross the API. ',
88
+ 'Contract review complete.',
89
+ ],
90
+ startDelay: 0,
91
+ toolDuration: 1_300,
92
+ chunkDelay: 620,
93
+ },
94
+ {
95
+ description: 'Browser lifecycle',
96
+ model: 'anthropic/claude-sonnet-4',
97
+ toolName: 'browser',
98
+ toolInput: { action: 'snapshot', url: 'http://localhost:3002/harness' },
99
+ toolOutput: 'Captured active, reconnecting, and completed child-card states.',
100
+ resultChunks: [
101
+ 'The nested transcript keeps its own scroll boundary. ',
102
+ 'Reconnect restores the content observer without duplicating it. ',
103
+ 'Completed cards return to chronology with DOM identity intact. ',
104
+ 'Browser lifecycle checks pass.',
105
+ ],
106
+ startDelay: 240,
107
+ toolDuration: 1_750,
108
+ chunkDelay: 700,
109
+ },
110
+ {
111
+ description: 'Regression coverage',
112
+ model: 'openai/gpt-5.5',
113
+ toolName: 'run_command',
114
+ toolInput: { command: 'pnpm exec tstest test/test.harness-subagent-streams.chromium.ts --web', cwd: '/srv/app' },
115
+ toolOutput: { exitCode: 0, stdout: '11/11 focused Chromium tests passed' },
116
+ resultChunks: [
117
+ 'Focused coverage exercises nested deltas and grid movement. ',
118
+ 'The projection-only drill-in path resolves correctly. ',
119
+ 'Native overscroll containment is present. ',
120
+ 'Regression coverage is green.',
121
+ ],
122
+ startDelay: 480,
123
+ toolDuration: 2_200,
124
+ chunkDelay: 760,
125
+ },
126
+ ];
127
+ const secondSubagentWave = [
128
+ {
129
+ description: 'Authorization boundaries',
130
+ model: 'openai/gpt-5.5',
131
+ toolName: 'grep',
132
+ toolInput: { pattern: 'requireSessionAccess', path: '/srv/app/ts' },
133
+ toolOutput: '8 ownership checks found; all projection routes are guarded.',
134
+ resultChunks: ['Checked route guards. ', 'Verified parent and child ownership. ', 'No cross-tenant projection path found. ', 'Authorization review complete.'],
135
+ startDelay: 0,
136
+ toolDuration: 1_350,
137
+ chunkDelay: 620,
138
+ },
139
+ {
140
+ description: 'Storage adapters',
141
+ model: 'anthropic/claude-sonnet-4',
142
+ toolName: 'read_file',
143
+ toolInput: { path: '/srv/app/ts/classes.sessionstore.ts', startLine: 80, endLine: 260 },
144
+ toolOutput: 'Session lookup and bounded transcript paging reviewed.',
145
+ resultChunks: ['Read the paging path. ', 'Confirmed stable cursor ordering. ', 'Validated truncation metadata. ', 'Storage review complete.'],
146
+ startDelay: 140,
147
+ toolDuration: 1_700,
148
+ chunkDelay: 680,
149
+ },
150
+ {
151
+ description: 'RPC event mapping',
152
+ model: 'openai/gpt-5.5',
153
+ toolName: 'read_file',
154
+ toolInput: { path: '/srv/app/ts_interfaces/events.ts', startLine: 1, endLine: 180 },
155
+ toolOutput: 'Parent and nested stream event mapping is complete.',
156
+ resultChunks: ['Mapped child status events. ', 'Mapped tool and reasoning deltas. ', 'Confirmed snapshot recovery after gaps. ', 'RPC event mapping complete.'],
157
+ startDelay: 280,
158
+ toolDuration: 1_150,
159
+ chunkDelay: 740,
160
+ },
161
+ {
162
+ description: 'Mobile layout',
163
+ model: 'anthropic/claude-sonnet-4',
164
+ toolName: 'browser',
165
+ toolInput: { action: 'snapshot', url: 'http://localhost:3002/harness?viewport=phone' },
166
+ toolOutput: 'Single-column cards and session overlay captured at 390px.',
167
+ resultChunks: ['Reduced the transcript container. ', 'Confirmed one-column active cards. ', 'Opened the session overlay above the chat. ', 'Mobile layout is stable.'],
168
+ startDelay: 420,
169
+ toolDuration: 2_050,
170
+ chunkDelay: 610,
171
+ },
172
+ {
173
+ description: 'Reconnect behavior',
174
+ model: 'openai/gpt-5.5',
175
+ toolName: 'run_command',
176
+ toolInput: { command: 'pnpm test --filter reconnect', cwd: '/srv/app' },
177
+ toolOutput: { exitCode: 0, stdout: '6 reconnect scenarios passed' },
178
+ resultChunks: ['Interrupted the child feed. ', 'Replayed the authoritative snapshot. ', 'Resumed deltas without duplication. ', 'Reconnect behavior passes.'],
179
+ startDelay: 560,
180
+ toolDuration: 2_400,
181
+ chunkDelay: 720,
182
+ },
183
+ {
184
+ description: 'Permission flow',
185
+ model: 'anthropic/claude-sonnet-4',
186
+ toolName: 'grep',
187
+ toolInput: { pattern: 'harness-permission-response', path: '/srv/app/ts_web' },
188
+ toolOutput: 'Permission responses remain child-session scoped.',
189
+ resultChunks: ['Traced permission ownership. ', 'Confirmed answered cards persist. ', 'Verified nested requests never leak outward. ', 'Permission flow is correct.'],
190
+ startDelay: 700,
191
+ toolDuration: 1_500,
192
+ chunkDelay: 790,
193
+ },
194
+ {
195
+ description: 'Documentation audit',
196
+ model: 'openai/gpt-5.5',
197
+ toolName: 'read_file',
198
+ toolInput: { path: '/srv/app/readme.md', startLine: 1800, endLine: 1860 },
199
+ toolOutput: 'Subtask projection, drill-in, and truncation behavior documented.',
200
+ resultChunks: ['Compared docs with interfaces. ', 'Checked the projection example. ', 'Verified host responsibilities are explicit. ', 'Documentation audit complete.'],
201
+ startDelay: 840,
202
+ toolDuration: 1_900,
203
+ chunkDelay: 650,
204
+ },
205
+ {
206
+ description: 'Bundle impact',
207
+ model: 'anthropic/claude-sonnet-4',
208
+ toolName: 'run_command',
209
+ toolInput: { command: 'pnpm run build', cwd: '/srv/app' },
210
+ toolOutput: { exitCode: 0, stdout: 'TypeScript and browser bundle completed' },
211
+ resultChunks: ['Compiled the component graph. ', 'Checked the browser bundle. ', 'Found no runtime-specific dependency. ', 'Bundle verification passes.'],
212
+ startDelay: 980,
213
+ toolDuration: 2_600,
214
+ chunkDelay: 700,
215
+ },
216
+ {
217
+ description: 'Release checklist',
218
+ model: 'openai/gpt-5.5',
219
+ toolName: 'webfetch',
220
+ toolInput: { url: 'https://code.foss.global/design.estate/dees-catalog/raw/branch/main/changelog.md' },
221
+ toolOutput: 'Release notes include bounded live subagent streams.',
222
+ resultChunks: ['Reviewed the pending notes. ', 'Matched public API names. ', 'Confirmed verification results are recorded. ', 'Release checklist is ready.'],
223
+ startDelay: 1_120,
224
+ toolDuration: 2_150,
225
+ chunkDelay: 760,
226
+ },
227
+ ];
228
+ const createSubagentWave = (runId, waveNumber, scenarios) => {
229
+ const now = Date.now();
230
+ return scenarios.map((scenario, index) => {
231
+ const childSessionId = `demo-${runId}-wave-${waveNumber}-child-${index + 1}`;
232
+ const childToolId = `${childSessionId}-tool`;
233
+ return {
234
+ id: `demo-${runId}-wave-${waveNumber}-subagent-${index + 1}`,
235
+ role: 'tool',
236
+ text: '',
237
+ createdAt: now + index,
238
+ toolCall: {
239
+ id: `demo-${runId}-wave-${waveNumber}-call-${index + 1}`,
240
+ name: 'task',
241
+ status: 'running',
242
+ input: { description: scenario.description },
243
+ childSessionId,
244
+ model: scenario.model,
245
+ subtask: {
246
+ sessionId: childSessionId,
247
+ previewState: 'ready',
248
+ status: { type: 'busy', message: `Investigating ${scenario.description.toLowerCase()}…` },
249
+ messages: [
250
+ {
251
+ id: `${childSessionId}-plan`,
252
+ role: 'assistant',
253
+ text: `I’ll inspect ${scenario.description.toLowerCase()} and report the concrete result.`,
254
+ createdAt: now,
255
+ markdown: false,
256
+ },
257
+ {
258
+ id: childToolId,
259
+ role: 'tool',
260
+ text: '',
261
+ createdAt: now + 1,
262
+ toolCall: {
263
+ id: `${childToolId}-call`,
264
+ name: scenario.toolName,
265
+ status: 'running',
266
+ input: scenario.toolInput,
267
+ startedAt: now,
268
+ },
269
+ },
270
+ {
271
+ id: `${childSessionId}-result`,
272
+ role: 'assistant',
273
+ text: '',
274
+ createdAt: now + 2,
275
+ markdown: false,
276
+ streaming: true,
277
+ },
278
+ ],
279
+ },
280
+ startedAt: now,
281
+ },
282
+ };
283
+ });
284
+ };
77
285
  let stopStream;
78
286
  const chatOf = (event) => event.target.closest('.chatDemo')?.querySelector('dees-harness-chat') ?? null;
287
+ const simulateSubagents = (event) => {
288
+ const chat = chatOf(event);
289
+ if (!chat)
290
+ return;
291
+ stopStream?.();
292
+ const runId = Date.now();
293
+ let stopped = false;
294
+ let currentWaveLabel = '';
295
+ const pendingDelays = new Map();
296
+ const activeSubagents = new Map();
297
+ const activeMainMessages = new Set();
298
+ const activeMainTools = new Set();
299
+ const wait = async (milliseconds) => new Promise((resolve) => {
300
+ if (stopped) {
301
+ resolve(false);
302
+ return;
303
+ }
304
+ const timeout = setTimeout(() => {
305
+ pendingDelays.delete(timeout);
306
+ resolve(!stopped);
307
+ }, milliseconds);
308
+ pendingDelays.set(timeout, resolve);
309
+ });
310
+ const pushMessage = async (message) => {
311
+ chat.messages = [...chat.messages, message];
312
+ await chat.updateComplete;
313
+ return !stopped;
314
+ };
315
+ const updateWaveStatus = () => {
316
+ if (stopped || !activeSubagents.size)
317
+ return;
318
+ chat.status = {
319
+ type: 'busy',
320
+ message: `${currentWaveLabel}: ${activeSubagents.size} subagent${activeSubagents.size === 1 ? '' : 's'} still working…`,
321
+ };
322
+ };
323
+ const finishSubagent = (task, status) => {
324
+ if (!activeSubagents.has(task.id))
325
+ return;
326
+ const call = task.toolCall;
327
+ const subtask = call?.subtask;
328
+ if (!call || subtask?.previewState !== 'ready')
329
+ return;
330
+ const now = Date.now();
331
+ chat.applyDelta({
332
+ type: 'tool-update',
333
+ messageId: task.id,
334
+ tool: {
335
+ id: call.id,
336
+ status,
337
+ finishedAt: now,
338
+ ...(status === 'error' ? { errorText: 'Simulation stopped.' } : {}),
339
+ subtask: {
340
+ ...subtask,
341
+ status: status === 'completed' ? { type: 'idle' } : { type: 'error', message: 'Stopped' },
342
+ messages: subtask.messages.map((message) => {
343
+ if (message.toolCall?.status === 'pending' || message.toolCall?.status === 'running') {
344
+ return {
345
+ ...message,
346
+ toolCall: {
347
+ ...message.toolCall,
348
+ status: status === 'completed' ? 'completed' : 'error',
349
+ finishedAt: now,
350
+ ...(status === 'error' ? { errorText: 'Simulation stopped.' } : {}),
351
+ },
352
+ };
353
+ }
354
+ if (!message.streaming)
355
+ return message;
356
+ return {
357
+ ...message,
358
+ streaming: false,
359
+ ...(status === 'error' ? { error: 'Simulation stopped.' } : {}),
360
+ };
361
+ }),
362
+ },
363
+ },
364
+ });
365
+ activeSubagents.delete(task.id);
366
+ updateWaveStatus();
367
+ };
368
+ const runSubagent = async (task, scenario) => {
369
+ const subtask = task.toolCall?.subtask;
370
+ if (subtask?.previewState !== 'ready')
371
+ return;
372
+ const childTool = subtask.messages.find((message) => message.toolCall);
373
+ const childResult = subtask.messages.find((message) => message.streaming);
374
+ if (!childTool?.toolCall || !childResult)
375
+ return;
376
+ if (!await wait(scenario.startDelay))
377
+ return;
378
+ if (!await wait(scenario.toolDuration))
379
+ return;
380
+ chat.applyDelta({
381
+ type: 'tool-update',
382
+ parentMessageId: task.id,
383
+ messageId: childTool.id,
384
+ tool: {
385
+ id: childTool.toolCall.id,
386
+ status: 'completed',
387
+ output: scenario.toolOutput,
388
+ finishedAt: Date.now(),
389
+ },
390
+ });
391
+ for (const chunk of scenario.resultChunks) {
392
+ if (!await wait(scenario.chunkDelay))
393
+ return;
394
+ chat.applyDelta({
395
+ type: 'text',
396
+ parentMessageId: task.id,
397
+ messageId: childResult.id,
398
+ delta: chunk,
399
+ });
400
+ }
401
+ chat.applyDelta({
402
+ type: 'message-end',
403
+ parentMessageId: task.id,
404
+ messageId: childResult.id,
405
+ });
406
+ finishSubagent(task, 'completed');
407
+ };
408
+ const runWave = async (waveNumber, label, scenarios) => {
409
+ currentWaveLabel = label;
410
+ const tasks = createSubagentWave(runId, waveNumber, scenarios);
411
+ for (const task of tasks)
412
+ activeSubagents.set(task.id, task);
413
+ chat.messages = [...chat.messages, ...tasks];
414
+ updateWaveStatus();
415
+ await chat.updateComplete;
416
+ await Promise.all(tasks.map((task, index) => runSubagent(task, scenarios[index])));
417
+ return !stopped;
418
+ };
419
+ const streamMainMessage = async (text) => {
420
+ const messageId = `demo-${runId}-main-${Date.now()}`;
421
+ const message = {
422
+ id: messageId,
423
+ role: 'assistant',
424
+ text: '',
425
+ createdAt: Date.now(),
426
+ markdown: true,
427
+ streaming: true,
428
+ model: 'gpt-5.5',
429
+ };
430
+ activeMainMessages.add(messageId);
431
+ if (!await pushMessage(message))
432
+ return false;
433
+ for (let offset = 0; offset < text.length; offset += 18) {
434
+ if (!await wait(70))
435
+ return false;
436
+ chat.applyDelta({ type: 'text', messageId, delta: text.slice(offset, offset + 18) });
437
+ }
438
+ chat.applyDelta({ type: 'message-end', messageId });
439
+ activeMainMessages.delete(messageId);
440
+ return true;
441
+ };
442
+ const stop = () => {
443
+ if (stopped)
444
+ return;
445
+ stopped = true;
446
+ for (const [timeout, resolve] of pendingDelays) {
447
+ clearTimeout(timeout);
448
+ resolve(false);
449
+ }
450
+ pendingDelays.clear();
451
+ for (const task of [...activeSubagents.values()])
452
+ finishSubagent(task, 'error');
453
+ for (const messageId of activeMainMessages) {
454
+ chat.applyDelta({ type: 'message-end', messageId, error: 'Simulation stopped.' });
455
+ }
456
+ activeMainMessages.clear();
457
+ for (const messageId of activeMainTools) {
458
+ const tool = chat.messages.find((message) => message.id === messageId)?.toolCall;
459
+ if (!tool)
460
+ continue;
461
+ chat.applyDelta({
462
+ type: 'tool-update',
463
+ messageId,
464
+ tool: { id: tool.id, status: 'error', errorText: 'Simulation stopped.', finishedAt: Date.now() },
465
+ });
466
+ }
467
+ activeMainTools.clear();
468
+ chat.status = { type: 'idle' };
469
+ if (stopStream === stop)
470
+ stopStream = undefined;
471
+ };
472
+ stopStream = stop;
473
+ const run = async () => {
474
+ chat.messages = [...harnessDemoConversation().slice(-2)];
475
+ chat.permissions = [];
476
+ chat.questions = [];
477
+ if (!await runWave(1, 'First wave', firstSubagentWave))
478
+ return;
479
+ chat.status = { type: 'busy', message: 'Main thread is reconciling the first wave…' };
480
+ if (!await wait(520))
481
+ return;
482
+ if (!await streamMainMessage('The first three reviews agree on the bounded projection. I’m consolidating their findings before widening the verification pass.'))
483
+ return;
484
+ const mainToolId = `demo-${runId}-main-checklist`;
485
+ activeMainTools.add(mainToolId);
486
+ if (!await pushMessage({
487
+ id: mainToolId,
488
+ role: 'tool',
489
+ text: '',
490
+ createdAt: Date.now(),
491
+ toolCall: {
492
+ id: `${mainToolId}-call`,
493
+ name: 'todowrite',
494
+ status: 'running',
495
+ input: {
496
+ todos: [
497
+ { content: 'Reconcile initial contract findings', status: 'completed' },
498
+ { content: 'Run nine parallel integration reviews', status: 'in_progress' },
499
+ { content: 'Summarize release readiness', status: 'pending' },
500
+ ],
501
+ },
502
+ startedAt: Date.now(),
503
+ },
504
+ }))
505
+ return;
506
+ if (!await wait(1_100))
507
+ return;
508
+ chat.applyDelta({
509
+ type: 'tool-update',
510
+ messageId: mainToolId,
511
+ tool: { id: `${mainToolId}-call`, status: 'completed', finishedAt: Date.now() },
512
+ });
513
+ activeMainTools.delete(mainToolId);
514
+ if (!await streamMainMessage('The core path is sound. I’m launching nine focused subagents across authorization, storage, RPC, responsive UI, reconnects, permissions, docs, bundling, and release readiness.'))
515
+ return;
516
+ if (!await wait(600))
517
+ return;
518
+ if (!await runWave(2, 'Integration wave', secondSubagentWave))
519
+ return;
520
+ chat.status = { type: 'busy', message: 'Main thread is assembling the final result…' };
521
+ if (!await wait(600))
522
+ return;
523
+ if (!await streamMainMessage([
524
+ 'All **nine integration reviews** have completed at their own pace.',
525
+ '',
526
+ '- Authorization and permission boundaries remain session-scoped',
527
+ '- Storage paging and reconnect recovery preserve bounded projections',
528
+ '- Desktop and mobile layouts retain stable card ownership',
529
+ '- Documentation, bundle, and release checks are ready',
530
+ '',
531
+ 'The staged subagent run is complete.',
532
+ ].join('\n')))
533
+ return;
534
+ chat.status = { type: 'idle' };
535
+ if (stopStream === stop)
536
+ stopStream = undefined;
537
+ };
538
+ void run().catch((error) => {
539
+ console.error('Harness subagent demo simulation failed.', error);
540
+ stop();
541
+ });
542
+ };
79
543
  /**
80
544
  * Streams a realistic turn through planning, inspection, a failing test,
81
545
  * the file edit, verification, and the final assistant summary.
@@ -441,19 +905,30 @@ export const demoFunc = () => html `
441
905
  .chatDemo {
442
906
  display: grid;
443
907
  grid-template-rows: auto minmax(0, 1fr);
444
- gap: 12px;
445
- height: 640px;
446
- max-width: 860px;
447
- margin: 40px auto;
908
+ min-height: 0;
909
+ height: 100%;
910
+ width: 100%;
911
+ box-sizing: border-box;
912
+ overflow: hidden;
913
+ border: 1px solid var(--dees-color-border-subtle, rgb(128 128 128 / 28%));
914
+ border-radius: var(--dees-radius-xl, 14px);
915
+ background: var(--dees-color-bg-primary, inherit);
448
916
  }
449
917
  .chatDemo .controls {
918
+ position: relative;
919
+ z-index: 1;
450
920
  display: flex;
921
+ align-items: center;
451
922
  gap: 8px;
452
923
  flex-wrap: wrap;
924
+ padding: var(--dees-spacing-sm, 8px) var(--dees-spacing-md, 12px);
925
+ border-bottom: 1px solid var(--dees-color-border-subtle, rgb(128 128 128 / 28%));
926
+ background: var(--dees-color-bg-secondary, rgb(128 128 128 / 12%));
927
+ box-shadow: var(--dees-shadow-sm, 0 1px 3px rgb(0 0 0 / 16%));
453
928
  }
454
929
  .chatDemo dees-harness-chat {
455
- border: 1px solid var(--dees-color-border-subtle);
456
- border-radius: var(--dees-radius-xl);
930
+ min-width: 0;
931
+ min-height: 0;
457
932
  overflow: hidden;
458
933
  }
459
934
  </style>
@@ -488,8 +963,9 @@ export const demoFunc = () => html `
488
963
  console.log('harness-abort');
489
964
  }}
490
965
  >
491
- <div class="controls">
966
+ <div class="controls" role="toolbar" aria-label="Demo controls">
492
967
  <dees-button type="accent" @clicked=${simulate}>Simulate streaming</dees-button>
968
+ <dees-button type="accent" @clicked=${simulateSubagents}>Simulate subagents</dees-button>
493
969
  <dees-button @clicked=${askPermission}>Ask permission</dees-button>
494
970
  <dees-button @clicked=${askQuestion}>Ask a question</dees-button>
495
971
  <dees-button @clicked=${toggleError}>Toggle error status</dees-button>
@@ -533,4 +1009,4 @@ export const demoFunc = () => html `
533
1009
  ></dees-harness-chat>
534
1010
  </div>
535
1011
  `;
536
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLWNoYXQvZGVlcy1oYXJuZXNzLWNoYXQuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsTUFBTSxZQUFZLEdBQUcsR0FBc0IsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtnQkFDbEQsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFD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
1012
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLWNoYXQvZGVlcy1oYXJuZXNzLWNoYXQuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsTUFBTSxZQUFZLEdBQUcsR0FBc0IsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtnQkFDbEQsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsa0NBQWtDO29CQUN4QyxVQUFVLEVBQUUsaUNBQWlDO29CQUM3QyxPQUFPLEVBQUUsdUNBQXVDO2lCQUNqRDtnQkFDRCxTQUFTLEVBQUUsR0FBRyxHQUFHLE9BQU87Z0JBQ3hCLFVBQVUsRUFBRSxHQUFHLEdBQUcsT0FBTzthQUMxQjtTQUNGO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsU0FBUztZQUNiLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsR0FBRyxHQUFHLE9BQU87WUFDeEIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsRUFBRSxRQUFRO2dCQUNaLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixHQUFHLEVBQUU7b0JBQ0gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUU7aUJBQ3BGO2dCQUNELEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTtnQkFDN0MsYUFBYSxFQUFFO29CQUNiLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsdUNBQXVDLEVBQUU7b0JBQy9EO3dCQUNFLElBQUksRUFBRSxlQUFlO3dCQUNyQixHQUFHLEVBQUUscUNBQXFDO3dCQUMxQyxJQUFJLEVBQUUsOEJBQThCO3dCQUNwQyxLQUFLLEVBQUUsOEJBQThCO3dCQUNyQyxRQUFRLEVBQUUsV0FBVztxQkFDdEI7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUE4QjtJQUNuRCxFQUFFLEVBQUUsV0FBVztJQUNmLEtBQUssRUFBRSxZQUFZO0lBQ25CLElBQUksRUFBRSxPQUFPO0lBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDckIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7Q0FDbkUsQ0FBQztBQWNGLE1BQU0saUJBQWlCLEdBQXdCO0lBQzdDO1FBQ0UsV0FBVyxFQUFFLGNBQWM7UUFDM0IsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixRQUFRLEVBQUUsV0FBVztRQUNyQixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUNBQW1DLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ3BGLFVBQVUsRUFBRSx1REFBdUQ7UUFDbkUsWUFBWSxFQUFFO1lBQ1osc0RBQXNEO1lBQ3RELG1EQUFtRDtZQUNuRCwwREFBMEQ7WUFDMUQsMkJBQTJCO1NBQzVCO1FBQ0QsVUFBVSxFQUFFLENBQUM7UUFDYixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsR0FBRztLQUNoQjtJQUNEO1FBQ0UsV0FBVyxFQUFFLG1CQUFtQjtRQUNoQyxLQUFLLEVBQUUsMkJBQTJCO1FBQ2xDLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLCtCQUErQixFQUFFO1FBQ3ZFLFVBQVUsRUFBRSxpRUFBaUU7UUFDN0UsWUFBWSxFQUFFO1lBQ1osdURBQXVEO1lBQ3ZELGtFQUFrRTtZQUNsRSxpRUFBaUU7WUFDakUsZ0NBQWdDO1NBQ2pDO1FBQ0QsVUFBVSxFQUFFLEdBQUc7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsR0FBRztLQUNoQjtJQUNEO1FBQ0UsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSx1RUFBdUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1FBQ2hILFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLHFDQUFxQyxFQUFFO1FBQzFFLFlBQVksRUFBRTtZQUNaLDhEQUE4RDtZQUM5RCx3REFBd0Q7WUFDeEQsNENBQTRDO1lBQzVDLCtCQUErQjtTQUNoQztRQUNELFVBQVUsRUFBRSxHQUFHO1FBQ2YsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBd0I7SUFDOUM7UUFDRSxXQUFXLEVBQUUsMEJBQTBCO1FBQ3ZDLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsUUFBUSxFQUFFLE1BQU07UUFDaEIsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7UUFDbkUsVUFBVSxFQUFFLDhEQUE4RDtRQUMxRSxZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSx1Q0FBdUMsRUFBRSx5Q0FBeUMsRUFBRSxnQ0FBZ0MsQ0FBQztRQUM5SixVQUFVLEVBQUUsQ0FBQztRQUNiLFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxHQUFHO0tBQ2hCO0lBQ0Q7UUFDRSxXQUFXLEVBQUUsa0JBQWtCO1FBQy9CLEtBQUssRUFBRSwyQkFBMkI7UUFDbEMsUUFBUSxFQUFFLFdBQVc7UUFDckIsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLHFDQUFxQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUN2RixVQUFVLEVBQUUsd0RBQXdEO1FBQ3BFLFlBQVksRUFBRSxDQUFDLHdCQUF3QixFQUFFLG9DQUFvQyxFQUFFLGlDQUFpQyxFQUFFLDBCQUEwQixDQUFDO1FBQzdJLFVBQVUsRUFBRSxHQUFHO1FBQ2YsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7SUFDRDtRQUNFLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixRQUFRLEVBQUUsV0FBVztRQUNyQixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0NBQWtDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ25GLFVBQVUsRUFBRSxxREFBcUQ7UUFDakUsWUFBWSxFQUFFLENBQUMsOEJBQThCLEVBQUUsb0NBQW9DLEVBQUUsMENBQTBDLEVBQUUsNkJBQTZCLENBQUM7UUFDL0osVUFBVSxFQUFFLEdBQUc7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsR0FBRztLQUNoQjtJQUNEO1FBQ0UsV0FBVyxFQUFFLGVBQWU7UUFDNUIsS0FBSyxFQUFFLDJCQUEyQjtRQUNsQyxRQUFRLEVBQUUsU0FBUztRQUNuQixTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSw4Q0FBOEMsRUFBRTtRQUN0RixVQUFVLEVBQUUsNERBQTREO1FBQ3hFLFlBQVksRUFBRSxDQUFDLG9DQUFvQyxFQUFFLHFDQUFxQyxFQUFFLDZDQUE2QyxFQUFFLDBCQUEwQixDQUFDO1FBQ3RLLFVBQVUsRUFBRSxHQUFHO1FBQ2YsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7SUFDRDtRQUNFLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixRQUFRLEVBQUUsYUFBYTtRQUN2QixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtRQUN2RSxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsRUFBRTtRQUNuRSxZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx1Q0FBdUMsRUFBRSxzQ0FBc0MsRUFBRSw0QkFBNEIsQ0FBQztRQUM3SixVQUFVLEVBQUUsR0FBRztRQUNmLFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxHQUFHO0tBQ2hCO0lBQ0Q7UUFDRSxXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLEtBQUssRUFBRSwyQkFBMkI7UUFDbEMsUUFBUSxFQUFFLE1BQU07UUFDaEIsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtRQUM5RSxVQUFVLEVBQUUsbURBQW1EO1FBQy9ELFlBQVksRUFBRSxDQUFDLCtCQUErQixFQUFFLG9DQUFvQyxFQUFFLCtDQUErQyxFQUFFLDZCQUE2QixDQUFDO1FBQ3JLLFVBQVUsRUFBRSxHQUFHO1FBQ2YsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7SUFDRDtRQUNFLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixRQUFRLEVBQUUsV0FBVztRQUNyQixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1FBQ3pFLFVBQVUsRUFBRSxtRUFBbUU7UUFDL0UsWUFBWSxFQUFFLENBQUMsaUNBQWlDLEVBQUUsa0NBQWtDLEVBQUUsK0NBQStDLEVBQUUsK0JBQStCLENBQUM7UUFDdkssVUFBVSxFQUFFLEdBQUc7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsR0FBRztLQUNoQjtJQUNEO1FBQ0UsV0FBVyxFQUFFLGVBQWU7UUFDNUIsS0FBSyxFQUFFLDJCQUEyQjtRQUNsQyxRQUFRLEVBQUUsYUFBYTtRQUN2QixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtRQUN6RCxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSx5Q0FBeUMsRUFBRTtRQUM5RSxZQUFZLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSw4QkFBOEIsRUFBRSx3Q0FBd0MsRUFBRSw2QkFBNkIsQ0FBQztRQUN6SixVQUFVLEVBQUUsR0FBRztRQUNmLFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxHQUFHO0tBQ2hCO0lBQ0Q7UUFDRSxXQUFXLEVBQUUsbUJBQW1CO1FBQ2hDLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLGtGQUFrRixFQUFFO1FBQ3RHLFVBQVUsRUFBRSxzREFBc0Q7UUFDbEUsWUFBWSxFQUFFLENBQUMsOEJBQThCLEVBQUUsNEJBQTRCLEVBQUUsK0NBQStDLEVBQUUsNkJBQTZCLENBQUM7UUFDNUosVUFBVSxFQUFFLEtBQUs7UUFDakIsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixLQUFhLEVBQ2IsVUFBa0IsRUFDbEIsU0FBOEIsRUFDWCxFQUFFO0lBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN2QixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxLQUFLLFNBQVMsVUFBVSxVQUFVLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3RSxNQUFNLFdBQVcsR0FBRyxHQUFHLGNBQWMsT0FBTyxDQUFDO1FBQzdDLE9BQU87WUFDTCxFQUFFLEVBQUUsUUFBUSxLQUFLLFNBQVMsVUFBVSxhQUFhLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxFQUFFLE1BQWU7WUFDckIsSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsR0FBRyxHQUFHLEtBQUs7WUFDdEIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsRUFBRSxRQUFRLEtBQUssU0FBUyxVQUFVLFNBQVMsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDeEQsSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLFNBQWtCO2dCQUMxQixLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRTtnQkFDNUMsY0FBYztnQkFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsY0FBYztvQkFDekIsWUFBWSxFQUFFLE9BQWdCO29CQUM5QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBZSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO29CQUNsRyxRQUFRLEVBQUU7d0JBQ1I7NEJBQ0UsRUFBRSxFQUFFLEdBQUcsY0FBYyxPQUFPOzRCQUM1QixJQUFJLEVBQUUsV0FBb0I7NEJBQzFCLElBQUksRUFBRSxnQkFBZ0IsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsa0NBQWtDOzRCQUMxRixTQUFTLEVBQUUsR0FBRzs0QkFDZCxRQUFRLEVBQUUsS0FBSzt5QkFDaEI7d0JBQ0Q7NEJBQ0UsRUFBRSxFQUFFLFdBQVc7NEJBQ2YsSUFBSSxFQUFFLE1BQWU7NEJBQ3JCLElBQUksRUFBRSxFQUFFOzRCQUNSLFNBQVMsRUFBRSxHQUFHLEdBQUcsQ0FBQzs0QkFDbEIsUUFBUSxFQUFFO2dDQUNSLEVBQUUsRUFBRSxHQUFHLFdBQVcsT0FBTztnQ0FDekIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRO2dDQUN2QixNQUFNLEVBQUUsU0FBa0I7Z0NBQzFCLEtBQUssRUFBRSxRQUFRLENBQUMsU0FBUztnQ0FDekIsU0FBUyxFQUFFLEdBQUc7NkJBQ2Y7eUJBQ0Y7d0JBQ0Q7NEJBQ0UsRUFBRSxFQUFFLEdBQUcsY0FBYyxTQUFTOzRCQUM5QixJQUFJLEVBQUUsV0FBb0I7NEJBQzFCLElBQUksRUFBRSxFQUFFOzRCQUNSLFNBQVMsRUFBRSxHQUFHLEdBQUcsQ0FBQzs0QkFDbEIsUUFBUSxFQUFFLEtBQUs7NEJBQ2YsU0FBUyxFQUFFLElBQUk7eUJBQ2hCO3FCQUNGO2lCQUNGO2dCQUNELFNBQVMsRUFBRSxHQUFHO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixJQUFJLFVBQW9DLENBQUM7QUFFekMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFpQixFQUEwQixFQUFFLENBQzFELEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLENBQUM7QUFFakcsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWlCLEVBQVEsRUFBRTtJQUNwRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPO0lBQ2xCLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDekIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFpRSxDQUFDO0lBQy9GLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO0lBQzNELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM3QyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRTFDLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxZQUFvQixFQUFvQixFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyRixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzlCLGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pCLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE9BQXdCLEVBQW9CLEVBQUU7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNsQixDQUFDLENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLEdBQVMsRUFBRTtRQUNsQyxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsR0FBRyxnQkFBZ0IsS0FBSyxlQUFlLENBQUMsSUFBSSxZQUFZLGVBQWUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCO1NBQ3hILENBQUM7SUFDSixDQUFDLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXFCLEVBQUUsTUFBNkIsRUFBUSxFQUFFO1FBQ3BGLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFBRSxPQUFPO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sRUFBRSxZQUFZLEtBQUssT0FBTztZQUFFLE9BQU87UUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxNQUFNO2dCQUNOLFVBQVUsRUFBRSxHQUFHO2dCQUNmLEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sRUFBRTtvQkFDUCxHQUFHLE9BQU87b0JBQ1YsTUFBTSxFQUFFLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtvQkFDekYsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQ3pDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDOzRCQUNyRixPQUFPO2dDQUNMLEdBQUcsT0FBTztnQ0FDVixRQUFRLEVBQUU7b0NBQ1IsR0FBRyxPQUFPLENBQUMsUUFBUTtvQ0FDbkIsTUFBTSxFQUFFLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQW9CLENBQUMsQ0FBQyxDQUFDLE9BQWdCO29DQUN4RSxVQUFVLEVBQUUsR0FBRztvQ0FDZixHQUFHLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lDQUNwRTs2QkFDRixDQUFDO3dCQUNKLENBQUM7d0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTOzRCQUFFLE9BQU8sT0FBTyxDQUFDO3dCQUN2QyxPQUFPOzRCQUNMLEdBQUcsT0FBTzs0QkFDVixTQUFTLEVBQUUsS0FBSzs0QkFDaEIsR0FBRyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDaEUsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFnQixFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQXFCLEVBQUUsUUFBMkIsRUFBaUIsRUFBRTtRQUM5RixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztRQUN2QyxJQUFJLE9BQU8sRUFBRSxZQUFZLEtBQUssT0FBTztZQUFFLE9BQU87UUFDOUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDakQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQzdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQUUsT0FBTztRQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsSUFBSSxFQUFFLGFBQWE7WUFDbkIsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN2QixJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDekIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLE1BQU0sRUFBRSxRQUFRLENBQUMsVUFBVTtnQkFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7YUFDdkI7U0FDRixDQUFDLENBQUM7UUFDSCxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFBRSxPQUFPO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ2QsSUFBSSxFQUFFLE1BQU07Z0JBQ1osZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUN4QixTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ3pCLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxJQUFJLEVBQUUsYUFBYTtZQUNuQixlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDeEIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1NBQzFCLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUNuQixVQUFrQixFQUNsQixLQUFhLEVBQ2IsU0FBOEIsRUFDWixFQUFFO1FBQ3BCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSztZQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDN0MsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUNGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBb0IsRUFBRTtRQUNqRSxNQUFNLFNBQVMsR0FBRyxRQUFRLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBb0I7WUFDL0IsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDO1FBQ0Ysa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM5QyxLQUFLLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDcEQsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsR0FBUyxFQUFFO1FBQ3RCLElBQUksT0FBTztZQUFFLE9BQU87UUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMvQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQUUsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRixLQUFLLE1BQU0sU0FBUyxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUNELGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLEtBQUssTUFBTSxTQUFTLElBQUksZUFBZSxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxJQUFJO2dCQUFFLFNBQVM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDZCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsU0FBUztnQkFDVCxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO2FBQ2pHLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMvQixJQUFJLFVBQVUsS0FBSyxJQUFJO1lBQUUsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFDRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBRWxCLE1BQU0sR0FBRyxHQUFHLEtBQUssSUFBbUIsRUFBRTtRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUM7WUFBRSxPQUFPO1FBRS9ELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxNQUFNLGlCQUFpQixDQUMxQixrSUFBa0ksQ0FDbkk7WUFBRSxPQUFPO1FBRVYsTUFBTSxVQUFVLEdBQUcsUUFBUSxLQUFLLGlCQUFpQixDQUFDO1FBQ2xELGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDO1lBQ3JCLEVBQUUsRUFBRSxVQUFVO1lBQ2QsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsR0FBRyxVQUFVLE9BQU87Z0JBQ3hCLElBQUksRUFBRSxXQUFXO2dCQUNqQixNQUFNLEVBQUUsU0FBUztnQkFDakIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRTt3QkFDTCxFQUFFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO3dCQUMzRSxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO3FCQUM5RDtpQkFDRjtnQkFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTthQUN0QjtTQUNGLENBQUM7WUFBRSxPQUFPO1FBQ1gsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLElBQUksRUFBRSxhQUFhO1lBQ25CLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtTQUNoRixDQUFDLENBQUM7UUFDSCxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLGlCQUFpQixDQUMxQixpTEFBaUwsQ0FDbEw7WUFBRSxPQUFPO1FBQ1YsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFFN0IsSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztZQUFFLE9BQU87UUFDdEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLENBQUM7UUFDdkYsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0saUJBQWlCLENBQUM7WUFDM0Isb0VBQW9FO1lBQ3BFLEVBQUU7WUFDRixpRUFBaUU7WUFDakUsc0VBQXNFO1lBQ3RFLDJEQUEyRDtZQUMzRCx1REFBdUQ7WUFDdkQsRUFBRTtZQUNGLHNDQUFzQztTQUN2QyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU87UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMvQixJQUFJLFVBQVUsS0FBSyxJQUFJO1lBQUUsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxFQUFFLENBQUM7SUFDVCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFDbEIsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWlFLENBQUM7SUFDL0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQ3RDLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO0lBRXZELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxZQUFvQixFQUFvQixFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyRixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzlCLGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pCLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDbkQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLDJCQUEyQixDQUUvRCxDQUFDO1FBQ1QsSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3RDLENBQUMsQ0FBQztJQUNGLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxPQUF3QixFQUFvQixFQUFFO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLENBQUMsU0FBUztZQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JGLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxNQUFNLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxQixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUMxQixPQUFPLENBQUMsS0FBSyxLQUFLLHFCQUFxQixDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7WUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUM7WUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFDRixNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQUUsSUFBZ0QsRUFBRSxFQUFFO1FBQ3pGLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPO1lBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RixDQUFDLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFRLEVBQUU7UUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLENBQUMsU0FBaUIsRUFBRSxNQUFjLEVBQVEsRUFBRTtRQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLElBQUk7WUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLENBQ3BCLFNBQWlCLEVBQ2pCLFVBQWdFLEVBQUUsRUFDNUQsRUFBRTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTO1lBQ1QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQztJQUNGLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFDdkIsU0FBaUIsRUFDakIsTUFBYyxFQUNkLElBQVksRUFDTSxFQUFFO1FBQ3BCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLFNBQWlCLEVBQUUsSUFBWSxFQUFvQixFQUFFO1FBQzdFLEtBQUssSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxHQUFTLEVBQUU7UUFDdEIsSUFBSSxPQUFPO1lBQUUsT0FBTztRQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQy9DLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakIsQ0FBQztRQUNELGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUFFLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELEtBQUssTUFBTSxTQUFTLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELEtBQUssTUFBTSxTQUFTLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRO2dCQUFFLFNBQVM7WUFDakMsVUFBVSxDQUFDLFNBQVMsRUFBRTtnQkFDcEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsU0FBUyxFQUFFLHFCQUFxQjtnQkFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0IsSUFBSSxVQUFVLEtBQUssSUFBSTtZQUFFLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0lBQ0YsVUFBVSxHQUFHLElBQUksQ0FBQztJQUVsQixNQUFNLEdBQUcsR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLE9BQU8sS0FBSyxZQUFZLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDO1lBQ3JCLEVBQUUsRUFBRSxXQUFXO1lBQ2YsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNyQixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQztZQUFFLE9BQU87UUFDWCxjQUFjLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FDcEIsV0FBVyxFQUNYLFVBQVUsRUFDViwwSEFBMEgsQ0FDM0g7WUFBRSxPQUFPO1FBQ1YsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FDcEIsV0FBVyxFQUNYLE1BQU0sRUFDTix1SEFBdUgsQ0FDeEg7WUFBRSxPQUFPO1FBQ1YsWUFBWSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDL0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxXQUFXLENBQUM7WUFDckIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDekQsUUFBUSxFQUFFO2dCQUNSLEVBQUUsRUFBRSxHQUFHLE1BQU0sT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVM7Z0JBQzFELEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRTt3QkFDZCxFQUFFLE9BQU8sRUFBRSw4Q0FBOEMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO3dCQUNsRixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO3dCQUM1RCxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO3dCQUMzRCxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO3FCQUN6RCxFQUFFO2dCQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3RCO1NBQ0YsQ0FBQztZQUFFLE9BQU87UUFDWCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUxRixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQztRQUN2RSxNQUFNLE1BQU0sR0FBRyxPQUFPLEtBQUssT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FBQztZQUNyQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN6RCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLEdBQUcsTUFBTSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUztnQkFDMUQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGtDQUFrQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDOUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7YUFDdEI7U0FDRixDQUFDO1lBQUUsT0FBTztRQUNYLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQzdCLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDakIsRUFBRSxFQUFFLEdBQUcsTUFBTSxPQUFPO1lBQ3BCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSw4RkFBOEY7WUFDdEcsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLE9BQU8sQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxXQUFXLENBQUM7WUFDckIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDekQsUUFBUSxFQUFFO2dCQUNSLEVBQUUsRUFBRSxHQUFHLE1BQU0sT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVM7Z0JBQzVELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTthQUN0QjtTQUNGLENBQUM7WUFBRSxPQUFPO1FBQ1gsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDN0IsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNqQixFQUFFLEVBQUUsR0FBRyxNQUFNLE9BQU87WUFDcEIsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLHdDQUF3QyxFQUFFO1NBQzdELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQzdCLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDakIsRUFBRSxFQUFFLEdBQUcsTUFBTSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSTtZQUNwRCxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsd0NBQXdDLEVBQUU7WUFDcEcsU0FBUyxFQUFFLGlEQUFpRDtZQUM1RCxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtTQUN2QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEtBQUssT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FBQztZQUNyQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN6RCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLEdBQUcsTUFBTSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUztnQkFDM0QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxrQ0FBa0M7b0JBQ3hDLFVBQVUsRUFBRSxvREFBb0Q7b0JBQ2hFLE9BQU8sRUFBRSwwREFBMEQ7aUJBQ3BFO2dCQUNELFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3RCO1NBQ0YsQ0FBQztZQUFFLE9BQU87UUFDWCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUxRixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxPQUFPLEtBQUssU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FBQztZQUNyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMzRCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLEdBQUcsUUFBUSxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUztnQkFDOUQsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7Z0JBQ2pFLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3RCO1NBQ0YsQ0FBQztZQUFFLE9BQU87UUFDWCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ25CLEVBQUUsRUFBRSxHQUFHLFFBQVEsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXO1lBQzNDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLDJCQUEyQixFQUFFO1lBQzVELFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQzdCLE1BQU0sVUFBVSxHQUFHLE9BQU8sS0FBSyxVQUFVLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDO1lBQ3JCLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzdELFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsR0FBRyxVQUFVLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXO2dCQUNoRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUU7d0JBQ2QsRUFBRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRTt3QkFDaEYsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRTt3QkFDOUQsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRTt3QkFDN0QsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRTtxQkFDM0QsRUFBRTtnQkFDSCxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQzlDO1NBQ0YsQ0FBQztZQUFFLE9BQU87UUFFWCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxXQUFXLENBQUM7WUFDckIsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDO1lBQUUsT0FBTztRQUNYLE1BQU0sT0FBTyxHQUFHO1lBQ2QsMkdBQTJHO1lBQzNHLEVBQUU7WUFDRixrQkFBa0I7WUFDbEIsRUFBRTtZQUNGLDRDQUE0QztZQUM1Qyx5Q0FBeUM7WUFDekMsb0RBQW9EO1lBQ3BELHNDQUFzQztZQUN0QyxFQUFFO1lBQ0YsNERBQTREO1NBQzdELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFBRSxPQUFPO1FBQ2xELGFBQWEsQ0FBQyxTQUFTLEVBQUU7WUFDdkIsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7U0FDbkUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMvQixJQUFJLFVBQVUsS0FBSyxJQUFJO1lBQUUsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxFQUFFLENBQUM7SUFDVCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRztRQUNmLEdBQUcsSUFBSSxDQUFDLFNBQVM7UUFDakI7WUFDRSxFQUFFLEVBQUUsWUFBWSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsUUFBUSxFQUFFLDZDQUE2QztZQUN2RCxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNyQixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLDZDQUE2QyxFQUFFO2dCQUM1RixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFO2FBQ25FO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTztJQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDL0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDeEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTztJQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU87UUFDeEMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUNsQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxvREFBb0QsRUFBRSxDQUFDO0FBQ3ZGLENBQUMsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFDbEIsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFrQ2QsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO21DQUNsRCxDQUFDLEtBQWtCLEVBQUUsRUFBRTtJQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxNQUFNLElBQUksR0FBSSxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDcEcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULDREQUE0RDtRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDbEQsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDbkMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDMUUsQ0FBQyxDQUFDLE9BQU8sQ0FDWixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7aUNBQzRCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sSUFBSSxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ25DLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pFLENBQUMsQ0FBQyxPQUFPLENBQ1osQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDOytCQUMwQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQzt3Q0FDbkUsQ0FBQyxLQUFrQixFQUFFLEVBQUU7SUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEUsQ0FBQztxQkFDZ0IsR0FBRyxFQUFFO0lBQ3BCLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQy9CLENBQUM7Ozs0Q0FHdUMsUUFBUTs0Q0FDUixpQkFBaUI7OEJBQy9CLGFBQWE7OEJBQ2IsV0FBVzs4QkFDWCxXQUFXOzJDQUNFLFNBQVM7Ozs7Ozs7O3FCQVEvQixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7c0JBQ3ZCLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7dUJBQzlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDO2VBQzFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7d0JBQ3hEO0lBQ2hCLGtCQUFrQixFQUFFLE9BQU87SUFDM0IsZUFBZSxFQUFFLENBQUM7SUFDbEIsNEJBQTRCLEVBQUUsT0FBTztJQUNyQyxvQkFBb0IsRUFBRSxNQUFNO0lBQzVCLGdCQUFnQixFQUFFLE9BQU87Q0FDMUI7b0JBQ2E7SUFDWixFQUFFLEVBQUUsdUJBQXVCO0lBQzNCLElBQUksRUFBRSxrRkFBa0Y7SUFDeEYsUUFBUSxFQUFFLENBQUM7SUFDWCxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU07SUFDOUIsU0FBUyxFQUFFLGNBQWM7Q0FDMUI7b0NBQzZCLElBQUk7K0JBQ1QsQ0FBQztRQUN4QixFQUFFLEVBQUUsbUJBQW1CO1FBQ3ZCLFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsTUFBTSxFQUFFLGtEQUFrRDtRQUMxRCxNQUFNLEVBQUUsV0FBVztRQUNuQixLQUFLLEVBQUUsY0FBYztRQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU07UUFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNO0tBQ2pDLENBQUM7a0JBQ1UsQ0FBQyxHQUFHLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQzs7O0NBR2xFLENBQUMifQ==