footprintjs 6.1.2 → 7.1.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.
- package/CLAUDE.md +31 -26
- package/README.md +17 -1
- package/dist/advanced.js +2 -6
- package/dist/esm/advanced.js +1 -3
- package/dist/esm/lib/builder/structure/StructureRecorder.js +2 -2
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +59 -24
- package/dist/esm/lib/memory/TransactionBuffer.js +92 -9
- package/dist/esm/lib/memory/utils.js +62 -1
- package/dist/esm/lib/recorder/InOutRecorder.js +31 -15
- package/dist/esm/lib/recorder/QualityRecorder.js +40 -13
- package/dist/esm/lib/recorder/RecorderOperation.js +3 -3
- package/dist/esm/lib/recorder/index.js +1 -8
- package/dist/esm/lib/recorder/qualityTrace.js +1 -1
- package/dist/esm/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/esm/lib/scope/recorders/MetricRecorder.js +37 -9
- package/dist/esm/trace.js +1 -12
- package/dist/lib/builder/structure/StructureRecorder.js +2 -2
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +59 -24
- package/dist/lib/memory/TransactionBuffer.js +91 -8
- package/dist/lib/memory/utils.js +64 -2
- package/dist/lib/recorder/InOutRecorder.js +31 -15
- package/dist/lib/recorder/QualityRecorder.js +40 -13
- package/dist/lib/recorder/RecorderOperation.js +3 -3
- package/dist/lib/recorder/index.js +2 -12
- package/dist/lib/recorder/qualityTrace.js +1 -1
- package/dist/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/lib/scope/recorders/MetricRecorder.js +37 -9
- package/dist/trace.js +2 -16
- package/dist/types/advanced.d.ts +0 -2
- package/dist/types/lib/builder/structure/StructureRecorder.d.ts +1 -1
- package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +26 -5
- package/dist/types/lib/memory/TransactionBuffer.d.ts +67 -1
- package/dist/types/lib/memory/utils.d.ts +29 -0
- package/dist/types/lib/recorder/InOutRecorder.d.ts +17 -6
- package/dist/types/lib/recorder/QualityRecorder.d.ts +17 -3
- package/dist/types/lib/recorder/RecorderOperation.d.ts +2 -2
- package/dist/types/lib/recorder/index.d.ts +0 -3
- package/dist/types/lib/recorder/qualityTrace.d.ts +5 -2
- package/dist/types/lib/runner/ExecutionRuntime.d.ts +1 -1
- package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +18 -3
- package/dist/types/trace.d.ts +0 -3
- package/package.json +1 -1
- package/dist/esm/lib/recorder/BoundaryStateTracker.js +0 -260
- package/dist/esm/lib/recorder/KeyedRecorder.js +0 -94
- package/dist/esm/lib/recorder/SequenceRecorder.js +0 -193
- package/dist/lib/recorder/BoundaryStateTracker.js +0 -264
- package/dist/lib/recorder/KeyedRecorder.js +0 -98
- package/dist/lib/recorder/SequenceRecorder.js +0 -197
- package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +0 -212
- package/dist/types/lib/recorder/KeyedRecorder.d.ts +0 -56
- package/dist/types/lib/recorder/SequenceRecorder.d.ts +0 -112
package/CLAUDE.md
CHANGED
|
@@ -296,7 +296,6 @@ const llmCommit = findCommit(commitLog, 'call-llm', 'adapterRawResponse');
|
|
|
296
296
|
| `SequenceStore<T>` | class | **Primary** 1:N ordered store (has `getEntryRanges()` for O(1) time-travel) |
|
|
297
297
|
| `BoundaryStateStore<T>` | class | **Primary** transient bracket-scoped state store |
|
|
298
298
|
| `CommitRangeIndex<TLabel>` | class | Interval index over commit indices (`open`/`close`/`enclosing`/`overlapping`) |
|
|
299
|
-
| `KeyedRecorder<T>` / `SequenceRecorder<T>` / `BoundaryStateTracker<T>` | abstract classes (DEPRECATED) | Legacy bases — migrate to the stores above |
|
|
300
299
|
| `topologyRecorder()` / `TopologyRecorder` | factory / class | Live composition graph for streaming consumers (subflow nodes + control-flow edges) |
|
|
301
300
|
| `inOutRecorder()` / `InOutRecorder` | factory / class | Chart in/out stream — `entry`/`exit` pairs at every chart boundary (top-level run + every subflow) |
|
|
302
301
|
| `QualityRecorder` + `qualityTrace`/`formatQualityTrace` | class / functions | Per-step quality scoring + Quality Stack Trace backtracking |
|
|
@@ -331,7 +330,7 @@ flowChart() builder → STATIC flowchart (design-time definition)
|
|
|
331
330
|
|
|
332
331
|
**What it ISN'T:**
|
|
333
332
|
- Not a full execution tree — that's `StageContext` / `executor.getSnapshot()`
|
|
334
|
-
- Not per-stage data — that's `MetricRecorder` / custom `
|
|
333
|
+
- Not per-stage data — that's `MetricRecorder` / a custom recorder composing `KeyedStore<T>`
|
|
335
334
|
- Not agent-specific — agentfootprint composes it; footprintjs owns it
|
|
336
335
|
|
|
337
336
|
**Why live consumers need it:** The executor already has the topology internally (execution tree in `StageContext`). But streaming consumers can't access that tree mid-run — they only see events. `TopologyRecorder` = "the tree, reconstructed from events, live-queryable."
|
|
@@ -403,7 +402,7 @@ Each chart execution → 2 boundaries:
|
|
|
403
402
|
Loop re-entry produces distinct pairs because the parent stage's executionIndex increments.
|
|
404
403
|
|
|
405
404
|
**What it IS:**
|
|
406
|
-
- `
|
|
405
|
+
- composes `SequenceStore<InOutEntry>` — flat ordered list + per-`runtimeStageId` index
|
|
407
406
|
- Captures the **payloads** at every chart boundary (what flowed IN and OUT)
|
|
408
407
|
- Path-aware: `subflowPath` is decomposed from the engine's path-prefixed `subflowId` and rooted under `__root__`
|
|
409
408
|
- Domain-agnostic — knows nothing about LLMs, tools, agents
|
|
@@ -451,39 +450,45 @@ inOut.getEntryRanges(); // O(1) per-step range index for time-trave
|
|
|
451
450
|
|
|
452
451
|
Example: [examples/runtime-features/flow-recorder/07-inout.ts](examples/runtime-features/flow-recorder/07-inout.ts)
|
|
453
452
|
|
|
454
|
-
**
|
|
453
|
+
**Three storage primitives (the v5 recorder model)** — choose by data shape. A recorder OWNS a store as a field and implements its channel interface (Convention 1 — "one purpose per recorder"). There are NO abstract base classes; composition is the only model.
|
|
455
454
|
|
|
456
|
-
|
|
|
457
|
-
|
|
458
|
-
| `
|
|
459
|
-
| `
|
|
460
|
-
| `
|
|
455
|
+
| Store | Relationship | Use When |
|
|
456
|
+
|-------|-------------|----------|
|
|
457
|
+
| `KeyedStore<T>` | 1:1 Map | Each step produces one record (MetricRecorder, TokenRecorder) |
|
|
458
|
+
| `SequenceStore<T>` | 1:N sequence + Map | Multiple records per step, ordering matters (CombinedNarrativeRecorder) |
|
|
459
|
+
| `BoundaryStateStore<T>` | bracket-scoped state | Live transient state during a `[start, stop]` event interval |
|
|
461
460
|
|
|
462
461
|
```typescript
|
|
463
|
-
import {
|
|
462
|
+
import { KeyedStore, SequenceStore } from 'footprintjs/trace';
|
|
463
|
+
import type { ScopeRecorder } from 'footprintjs';
|
|
464
464
|
|
|
465
|
-
//
|
|
466
|
-
class TokenRecorder
|
|
465
|
+
// KeyedStore: one entry per step
|
|
466
|
+
class TokenRecorder implements ScopeRecorder {
|
|
467
467
|
readonly id = 'tokens';
|
|
468
|
-
|
|
468
|
+
private readonly store = new KeyedStore<TokenEntry>();
|
|
469
|
+
onLLMCall(event) { this.store.set(event.runtimeStageId, { tokens: event.usage }); }
|
|
470
|
+
|
|
471
|
+
getForStep(id) { return this.store.get(id); } // Translate: per-step value
|
|
472
|
+
getTotal() { return this.store.aggregate((sum, e) => sum + e.tokens, 0); } // Aggregate: grand total
|
|
473
|
+
getUpTo(keys) { return this.store.accumulate((sum, e) => sum + e.tokens, 0, keys); } // Accumulate: up to slider
|
|
474
|
+
clear() { this.store.clear(); }
|
|
469
475
|
}
|
|
470
|
-
recorder.getByKey('call-llm#5'); // Translate: per-step value
|
|
471
|
-
recorder.aggregate((sum, e) => sum + e.tokens, 0); // Aggregate: grand total
|
|
472
|
-
recorder.accumulate((sum, e) => sum + e.tokens, 0, visibleKeys); // Accumulate: up to slider
|
|
473
476
|
|
|
474
|
-
//
|
|
475
|
-
class AuditRecorder
|
|
477
|
+
// SequenceStore: multiple entries per step, ordered
|
|
478
|
+
class AuditRecorder implements ScopeRecorder {
|
|
476
479
|
readonly id = 'audit';
|
|
477
|
-
|
|
478
|
-
|
|
480
|
+
private readonly store = new SequenceStore<AuditEntry>();
|
|
481
|
+
onRead(event) { this.store.push({ runtimeStageId: event.runtimeStageId, type: 'read', key: event.key }); }
|
|
482
|
+
|
|
483
|
+
getForStep(id) { return this.store.getByKey(id); } // Translate: per-step entries
|
|
484
|
+
getCount() { return this.store.aggregate((count, _) => count + 1, 0); } // Aggregate: grand total
|
|
485
|
+
getUpTo(keys) { return this.store.getEntriesUpTo(keys); } // Progressive: up to slider
|
|
486
|
+
getRanges() { return this.store.getEntryRanges(); } // Range index: O(1) slider sync
|
|
487
|
+
clear() { this.store.clear(); }
|
|
479
488
|
}
|
|
480
|
-
recorder.getEntriesForStep('call-llm#5'); // Translate: per-step entries
|
|
481
|
-
recorder.aggregate((count, _) => count + 1, 0); // Aggregate: grand total
|
|
482
|
-
recorder.getEntriesUpTo(visibleKeys); // Progressive: up to slider
|
|
483
|
-
recorder.getEntryRanges(); // Range index: O(1) slider sync
|
|
484
489
|
```
|
|
485
490
|
|
|
486
|
-
**`getEntryRanges()`** returns a precomputed `Map<runtimeStageId, {firstIdx, endIdx}>` maintained during `
|
|
491
|
+
**`getEntryRanges()`** returns a precomputed `Map<runtimeStageId, {firstIdx, endIdx}>` maintained during `push()`. Use for O(1) per-step range lookups during time-travel scrubbing. Same shape as `buildEntryRangeIndex()` in `footprint-explainable-ui`.
|
|
487
492
|
|
|
488
493
|
**`CombinedNarrativeEntry.direction`** — subflow entries carry `direction: 'entry' | 'exit'`. Use for programmatic subflow boundary detection instead of text scanning (which breaks with custom `NarrativeRenderer`).
|
|
489
494
|
|
|
@@ -701,7 +706,7 @@ A recorder owns exactly ONE concern (storage, OR event ingestion, OR state machi
|
|
|
701
706
|
|
|
702
707
|
Use composition: own a `SequenceStore<T>` / `KeyedStore<T>` / `BoundaryStateStore<T>` field, implement the relevant `ScopeRecorder` / `FlowRecorder` / `EmitRecorder` / `CombinedRecorder` interface, delegate event handling to internal helpers, delegate storage to the store. See `examples/recorders/` for canonical patterns.
|
|
703
708
|
|
|
704
|
-
|
|
709
|
+
Composition is the ONLY recorder model. The abstract base classes (`SequenceRecorder`, `KeyedRecorder`, `BoundaryStateTracker`) were removed in 7.0.0 — there is no inheritance path. Every recorder (including the built-ins `MetricRecorder`, `QualityRecorder`, `InOutRecorder`, `CombinedNarrativeRecorder`) owns a store as a field.
|
|
705
710
|
|
|
706
711
|
### Convention 2 — Examples are mandatory integration tests
|
|
707
712
|
|
package/README.md
CHANGED
|
@@ -168,7 +168,7 @@ The LLM calls the tool, gets back the decision and causal trace, and explains th
|
|
|
168
168
|
| **Subflow break propagation** | Mount a subflow with `propagateBreak: true` — inner `$break` terminates the parent loop, with drill-down preserved |
|
|
169
169
|
| **Emit channel** | `scope.$emit(name, payload)` — user-authored structured events to `EmitRecorder`, pass-through, zero-allocation when no recorder attached, redactable via `emitPatterns` |
|
|
170
170
|
| **Detach** *(new in 4.17)* | `scope.$detachAndForget(driver, child, input)` and `scope.$detachAndJoinLater(driver, child, input)` — fire-and-forget child flowcharts via the `footprintjs/detach` subpath. Six built-in drivers (microtask / immediate / setImmediate / setTimeout / sendBeacon / workerThread) + custom-driver protocol. Builder-native composition (`addDetachAndForget` / `addDetachAndJoinLater`) makes detach a labeled chart stage. `flushAllDetached()` for graceful shutdown. [Guide →](https://footprintjs.github.io/footPrint/guides/patterns/detach/) |
|
|
171
|
-
| **Recorder storage primitives** | `BoundaryStateStore<TState>` — one of three composable storage shelves alongside `SequenceStore<T>` (durable ordered, with `getEntryRanges()`) and `KeyedStore<T>` (durable 1:1). `BoundaryStateStore` tracks live transient state DURING a `[start, stop]` event interval (LLM stream partial, tool args streaming, agent turn state) and clears on stop. O(1) reads via `get` / `hasActive` / `activeCount`. Mental model: recorder *interfaces* (`ScopeRecorder` / `FlowRecorder` / `EmitRecorder`) are observers; stores are *bookkeeping shelves*. A real recorder picks ONE observer interface and OWNS the store as a field (composition — "one purpose per recorder"). The `Store` classes are exported from `footprintjs/trace
|
|
171
|
+
| **Recorder storage primitives** | `BoundaryStateStore<TState>` — one of three composable storage shelves alongside `SequenceStore<T>` (durable ordered, with `getEntryRanges()`) and `KeyedStore<T>` (durable 1:1). `BoundaryStateStore` tracks live transient state DURING a `[start, stop]` event interval (LLM stream partial, tool args streaming, agent turn state) and clears on stop. O(1) reads via `get` / `hasActive` / `activeCount`. Mental model: recorder *interfaces* (`ScopeRecorder` / `FlowRecorder` / `EmitRecorder`) are observers; stores are *bookkeeping shelves*. A real recorder picks ONE observer interface and OWNS the store as a field (composition — "one purpose per recorder"). The `Store` classes are exported from `footprintjs/trace` and are the only recorder-storage model — there are no abstract base classes to extend. [Guide →](https://footprintjs.github.io/footPrint/guides/features/recorder-storage-primitives/) |
|
|
172
172
|
|
|
173
173
|
---
|
|
174
174
|
|
|
@@ -235,6 +235,22 @@ npx degit footprintjs/footPrint/ai-instructions footprint-ai && bash footprint-a
|
|
|
235
235
|
|
|
236
236
|
---
|
|
237
237
|
|
|
238
|
+
## Roadmap — community extension points
|
|
239
|
+
|
|
240
|
+
These are deliberately deferred ideas where footprintjs aims to be a *true
|
|
241
|
+
developer's friend*: ship a great zero-config default, but let teams who need it
|
|
242
|
+
**bring their own** implementation. Contributions welcome — open an issue to
|
|
243
|
+
discuss before a PR.
|
|
244
|
+
|
|
245
|
+
- **Pluggable performance primitives (bring-your-own).** Hot-path internals
|
|
246
|
+
(`deepEqual` for change-only commits, `deepSmartMerge`, deep clones) are
|
|
247
|
+
built-in today. A future opt-in would let extreme-throughput consumers inject
|
|
248
|
+
their own (e.g. a SIMD fast-deep-equal or structural-sharing clone) while
|
|
249
|
+
everyone else keeps the default. Must honour the existing structural-equality
|
|
250
|
+
contract (a wrong comparator could drop real changes), so it ships with a
|
|
251
|
+
documented contract + dev-mode validation. See
|
|
252
|
+
[Commit change semantics](./docs/design/commit-change-semantics.md).
|
|
253
|
+
|
|
238
254
|
## Documentation
|
|
239
255
|
|
|
240
256
|
| Resource | Link |
|
package/dist/advanced.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.createSubflowHandlerDeps = exports.ContinuationResolver = exports.computeNodeType = exports.ChildrenExecutor = exports.applyOutputMapping = exports.NullControlFlowNarrativeGenerator = exports.isStageNodeReturn = exports.FlowchartTraverser = exports.shouldWrapWithProxy = exports.SCOPE_METHOD_NAMES = exports.joinPath = exports.createArrayProxy = exports.buildNestedPatch = exports.BREAK_SETTER = exports.ExecutionRuntime = exports.ZodScopeResolver = exports.isScopeSchema = exports.defineScopeSchema = exports.createScopeProxyFromZod = exports.toScopeFactory = exports.resolveScopeProvider = exports.registerScopeResolver = exports.makeFactoryProvider = exports.makeClassProvider = exports.looksLikeFactory = exports.looksLikeClassCtor = exports.isSubclassOfScopeFacade = exports.attachScopeMethods = exports.ScopeFacade = exports.createProtectedScope = exports.createErrorMessage = exports.createTypedScopeFactory = exports.specToStageNode = exports.SelectorFnList = exports.DeciderList = exports.ArrayMergeMode = exports.updateValue = exports.updateNestedValue = exports.setNestedValue = exports.redactPatch = exports.normalisePath = exports.getRunAndGlobalPaths = exports.getNestedValue = exports.deepSmartMerge = exports.applySmartMerge = exports.DiagnosticCollector = exports.TransactionBuffer = exports.EventLog = exports.StageContext = exports.SharedMemory = void 0;
|
|
25
|
-
exports.
|
|
25
|
+
exports.findLastWriter = exports.findCommits = exports.findCommit = exports.parseRuntimeStageId = exports.createExecutionCounter = exports.buildRuntimeStageId = exports.SubflowExecutor = exports.StageRunner = exports.SelectorHandler = exports.seedSubflowGlobalStore = exports.RuntimeStructureManager = exports.NodeResolver = exports.getInitialScopeValues = exports.extractParentScopeValues = exports.DEFAULT_MAX_ITERATIONS = exports.DeciderHandler = void 0;
|
|
26
26
|
var index_js_1 = require("./lib/memory/index.js");
|
|
27
27
|
Object.defineProperty(exports, "SharedMemory", { enumerable: true, get: function () { return index_js_1.SharedMemory; } });
|
|
28
28
|
var index_js_2 = require("./lib/memory/index.js");
|
|
@@ -109,8 +109,4 @@ var commitLogUtils_js_1 = require("./lib/memory/commitLogUtils.js");
|
|
|
109
109
|
Object.defineProperty(exports, "findCommit", { enumerable: true, get: function () { return commitLogUtils_js_1.findCommit; } });
|
|
110
110
|
Object.defineProperty(exports, "findCommits", { enumerable: true, get: function () { return commitLogUtils_js_1.findCommits; } });
|
|
111
111
|
Object.defineProperty(exports, "findLastWriter", { enumerable: true, get: function () { return commitLogUtils_js_1.findLastWriter; } });
|
|
112
|
-
var BoundaryStateTracker_js_1 = require("./lib/recorder/BoundaryStateTracker.js");
|
|
113
|
-
Object.defineProperty(exports, "BoundaryStateTracker", { enumerable: true, get: function () { return BoundaryStateTracker_js_1.BoundaryStateTracker; } });
|
|
114
|
-
var KeyedRecorder_js_1 = require("./lib/recorder/KeyedRecorder.js");
|
|
115
|
-
Object.defineProperty(exports, "KeyedRecorder", { enumerable: true, get: function () { return KeyedRecorder_js_1.KeyedRecorder; } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWR2YW5jZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNIOzs7Ozs7O0dBT0c7Ozs7QUFjSCxrREFBcUQ7QUFBNUMsd0dBQUEsWUFBWSxPQUFBO0FBQ3JCLGtEQUFxRDtBQUE1Qyx3R0FBQSxZQUFZLE9BQUE7QUFDckIsa0RBQWlEO0FBQXhDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQixrREFBMEQ7QUFBakQsNkdBQUEsaUJBQWlCLE9BQUE7QUFDMUIsa0RBQTREO0FBQW5ELCtHQUFBLG1CQUFtQixPQUFBO0FBQzVCLGtEQVUrQjtBQVQ3QiwyR0FBQSxlQUFlLE9BQUE7QUFDZiwwR0FBQSxjQUFjLE9BQUE7QUFDZCwwR0FBQSxjQUFjLE9BQUE7QUFDZCxnSEFBQSxvQkFBb0IsT0FBQTtBQUNwQix5R0FBQSxhQUFhLE9BQUE7QUFDYix1R0FBQSxXQUFXLE9BQUE7QUFDWCwwR0FBQSxjQUFjLE9BQUE7QUFDZCw2R0FBQSxpQkFBaUIsT0FBQTtBQUNqQix1R0FBQSxXQUFXLE9BQUE7QUF1QmIsbURBQXNHO0FBQTdGLDBHQUFBLGNBQWMsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUFFLDBHQUFBLGNBQWMsT0FBQTtBQUFFLDJHQUFBLGVBQWUsT0FBQTtBQUNyRSxxRUFBMEU7QUFBakUsNEhBQUEsdUJBQXVCLE9BQUE7QUFhaEMsaURBQTZGO0FBQXBGLDhHQUFBLGtCQUFrQixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFBRSx1R0FBQSxXQUFXLE9BQUE7QUFDOUQsaURBVThCO0FBVDVCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLG1IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDRHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLCtHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGdIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBHQUFBLGNBQWMsT0FBQTtBQWVoQixnQkFBZ0I7QUFDaEIsa0RBQW1IO0FBQTFHLG9IQUFBLHVCQUF1QixPQUFBO0FBQUUsOEdBQUEsaUJBQWlCLE9BQUE7QUFBRSwwR0FBQSxhQUFhLE9BQUE7QUFBRSw2R0FBQSxnQkFBZ0IsT0FBQTtBQU9wRixtREFBeUQ7QUFBaEQsNkdBQUEsZ0JBQWdCLE9BQUE7QUFPekIscURBT2lDO0FBTi9CLHlHQUFBLFlBQVksT0FBQTtBQUNaLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHFHQUFBLFFBQVEsT0FBQTtBQUNSLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLGdIQUFBLG1CQUFtQixPQUFBO0FBU3JCLG1EQUEyRDtBQUFsRCwrR0FBQSxrQkFBa0IsT0FBQTtBQUMzQixtREFBMEQ7QUFBakQsOEdBQUEsaUJBQWlCLE9BQUE7QUFtQjFCLG1EQUEwRTtBQUFqRSw4SEFBQSxpQ0FBaUMsT0FBQTtBQUkxQyxtREFnQitCO0FBZjdCLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDRHQUFBLGVBQWUsT0FBQTtBQUNmLGlIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLHFIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLDJHQUFBLGNBQWMsT0FBQTtBQUNkLG1IQUFBLHNCQUFzQixPQUFBO0FBQ3RCLHFIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLGtIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLHlHQUFBLFlBQVksT0FBQTtBQUNaLG9IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLG1IQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDRHQUFBLGVBQWUsT0FBQTtBQUNmLHdHQUFBLFdBQVcsT0FBQTtBQUNYLDRHQUFBLGVBQWUsT0FBQTtBQUtqQixvRUFBa0g7QUFBekcsd0hBQUEsbUJBQW1CLE9BQUE7QUFBRSwySEFBQSxzQkFBc0IsT0FBQTtBQUFFLHdIQUFBLG1CQUFtQixPQUFBO0FBQ3pFLG9FQUF5RjtBQUFoRiwrR0FBQSxVQUFVLE9BQUE7QUFBRSxnSEFBQSxXQUFXLE9BQUE7QUFBRSxtSEFBQSxjQUFjLE9BQUE7QUFDaEQsa0ZBQThFO0FBQXJFLCtIQUFBLG9CQUFvQixPQUFBO0FBQzdCLG9FQUFnRTtBQUF2RCxpSEFBQSxhQUFhLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGZvb3RwcmludGpzL2FkdmFuY2VkIOKAlCBMb3ctbGV2ZWwgaW50ZXJuYWxzIGZvciBjdXN0b20gZXhlY3V0aW9uIGVuZ2luZXMgYW5kIHRlc3RpbmcuXG4gKlxuICogTW9zdCB1c2VycyBuZXZlciBuZWVkIHRoaXMuIFVzZSBgZm9vdHByaW50anNgIChtYWluKSBpbnN0ZWFkLlxuICogVGhpcyBlbnRyeSBwb2ludCBleHBvc2VzIGBTaGFyZWRNZW1vcnlgLCBgU3RhZ2VDb250ZXh0YCwgYEZsb3djaGFydFRyYXZlcnNlcmAsXG4gKiBhbmQgb3RoZXIgcHJpbWl0aXZlcyB0aGF0IHBvd2VyIHRoZSBlbmdpbmUuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFNoYXJlZE1lbW9yeSwgU3RhZ2VDb250ZXh0IH0gZnJvbSAnZm9vdHByaW50anMvYWR2YW5jZWQnO1xuICogYGBgXG4gKlxuICogQG1vZHVsZSBhZHZhbmNlZFxuICovXG4vKipcbiAqIEZvb3RQcmludCDigJQgQWR2YW5jZWQgLyBJbnRlcm5hbCBBUElcbiAqXG4gKiBUaGVzZSBleHBvcnRzIGFyZSBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzLCB0ZXN0aW5nLCBhbmQgYnVpbGRpbmdcbiAqIGN1c3RvbSBleGVjdXRpb24gZW5naW5lcy4gTW9zdCB1c2VycyBzaG91bGQgdXNlIHRoZSBtYWluICdmb290cHJpbnQnIGVudHJ5IHBvaW50LlxuICpcbiAqIEltcG9ydCB2aWE6IGltcG9ydCB7IC4uLiB9IGZyb20gJ2Zvb3RwcmludC9hZHZhbmNlZCdcbiAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW1vcnkg4oCUIExvdy1sZXZlbCB0cmFuc2FjdGlvbmFsIHN0YXRlIHByaW1pdGl2ZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBDb21taXRCdW5kbGUsXG4gIEZsb3dDb250cm9sVHlwZSxcbiAgRmxvd01lc3NhZ2UsXG4gIE1lbW9yeVBhdGNoLFxuICBTdGFnZVNuYXBzaG90LFxuICBUcmFjZUVudHJ5LFxufSBmcm9tICcuL2xpYi9tZW1vcnkvaW5kZXguanMnO1xuZXhwb3J0IHsgU2hhcmVkTWVtb3J5IH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBFdmVudExvZyB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1ZmZlciB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBEaWFnbm9zdGljQ29sbGVjdG9yIH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGFwcGx5U21hcnRNZXJnZSxcbiAgZGVlcFNtYXJ0TWVyZ2UsXG4gIGdldE5lc3RlZFZhbHVlLFxuICBnZXRSdW5BbmRHbG9iYWxQYXRocyxcbiAgbm9ybWFsaXNlUGF0aCxcbiAgcmVkYWN0UGF0Y2gsXG4gIHNldE5lc3RlZFZhbHVlLFxuICB1cGRhdGVOZXN0ZWRWYWx1ZSxcbiAgdXBkYXRlVmFsdWUsXG59IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJ1aWxkZXIg4oCUIFR5cGVzIGFuZCBpbnRlcm5hbHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBFeGVjT3B0aW9ucyxcbiAgRmxvd0NoYXJ0T3B0aW9ucyxcbiAgRmxvd0NoYXJ0U3BlYyxcbiAgSUxvZ2dlcixcbiAgU2NvcGVQcm90ZWN0aW9uTW9kZSxcbiAgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLFxuICBTaW1wbGlmaWVkUGFyYWxsZWxTcGVjLFxuICBTdGFnZUZuLFxuICBTdGFnZU5vZGUsXG4gIFN0cmVhbUNhbGxiYWNrLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG4gIFN1YmZsb3dSZWYsXG59IGZyb20gJy4vbGliL2J1aWxkZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgQXJyYXlNZXJnZU1vZGUsIERlY2lkZXJMaXN0LCBTZWxlY3RvckZuTGlzdCwgc3BlY1RvU3RhZ2VOb2RlIH0gZnJvbSAnLi9saWIvYnVpbGRlci9pbmRleC5qcyc7XG5leHBvcnQgeyBjcmVhdGVUeXBlZFNjb3BlRmFjdG9yeSB9IGZyb20gJy4vbGliL2J1aWxkZXIvdHlwZWRGbG93Q2hhcnQuanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTY29wZSDigJQgUHJvdmlkZXJzLCBwcm90ZWN0aW9uLCByZWNvcmRlciBvcHRpb25zLCBhbmQgZXZlbnQgdHlwZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBQcm92aWRlclJlc29sdmVyLFxuICBSZXNvbHZlT3B0aW9ucyxcbiAgU2NvcGVQcm92aWRlcixcbiAgU3RhZ2VDb250ZXh0TGlrZSxcbiAgU3RyaWN0TW9kZSxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuZXhwb3J0IHsgY3JlYXRlRXJyb3JNZXNzYWdlLCBjcmVhdGVQcm90ZWN0ZWRTY29wZSwgU2NvcGVGYWNhZGUgfSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhdHRhY2hTY29wZU1ldGhvZHMsXG4gIGlzU3ViY2xhc3NPZlNjb3BlRmFjYWRlLFxuICBsb29rc0xpa2VDbGFzc0N0b3IsXG4gIGxvb2tzTGlrZUZhY3RvcnksXG4gIG1ha2VDbGFzc1Byb3ZpZGVyLFxuICBtYWtlRmFjdG9yeVByb3ZpZGVyLFxuICByZWdpc3RlclNjb3BlUmVzb2x2ZXIsXG4gIHJlc29sdmVTY29wZVByb3ZpZGVyLFxuICB0b1Njb3BlRmFjdG9yeSxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuXG4vLyBTY29wZVJlY29yZGVyIGNvbmZpZy9vcHRpb24gdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQWdncmVnYXRlZE1ldHJpY3MsXG4gIERlYnVnRW50cnksXG4gIERlYnVnUmVjb3JkZXJPcHRpb25zLFxuICBEZWJ1Z1ZlcmJvc2l0eSxcbiAgRGVmaW5lU2NvcGVPcHRpb25zLFxuICBSZWNvcmRlckNvbnRleHQsXG4gIFN0YWdlRXZlbnQsXG4gIFN0YWdlTWV0cmljcyxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuXG4vLyBab2QgaW50ZXJuYWxzXG5leHBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCwgZGVmaW5lU2NvcGVTY2hlbWEsIGlzU2NvcGVTY2hlbWEsIFpvZFNjb3BlUmVzb2x2ZXIgfSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJ1bm5lciDigJQgSW50ZXJuYWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIHsgUnVudGltZVNuYXBzaG90IH0gZnJvbSAnLi9saWIvcnVubmVyL2luZGV4LmpzJztcbmV4cG9ydCB7IEV4ZWN1dGlvblJ1bnRpbWUgfSBmcm9tICcuL2xpYi9ydW5uZXIvaW5kZXguanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWFjdGl2ZSDigJQgVHlwZWRTY29wZSBpbnRlcm5hbHMgKGZvciBjdXN0b20gcHJveHkgaW1wbGVtZW50YXRpb25zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7IFJlYWN0aXZlT3B0aW9ucywgUmVhY3RpdmVUYXJnZXQgfSBmcm9tICcuL2xpYi9yZWFjdGl2ZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBCUkVBS19TRVRURVIsXG4gIGJ1aWxkTmVzdGVkUGF0Y2gsXG4gIGNyZWF0ZUFycmF5UHJveHksXG4gIGpvaW5QYXRoLFxuICBTQ09QRV9NRVRIT0RfTkFNRVMsXG4gIHNob3VsZFdyYXBXaXRoUHJveHksXG59IGZyb20gJy4vbGliL3JlYWN0aXZlL2luZGV4LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRW5naW5lIOKAlCBERlMgZ3JhcGggdHJhdmVyc2FsIGludGVybmFsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7IFRyYXZlcnNlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUgeyBEZWNpZGVyIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB7IEZsb3djaGFydFRyYXZlcnNlciB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQgeyBpc1N0YWdlTm9kZVJldHVybiB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5cbi8vIE5hcnJhdGl2ZSBpbnRlcm5hbHNcbmV4cG9ydCB0eXBlIHsgSUNvbnRyb2xGbG93TmFycmF0aXZlIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHsgQ29tYmluZWROYXJyYXRpdmVFbnRyeSwgQ29tYmluZWROYXJyYXRpdmVPcHRpb25zIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgQnJhbmNoUmVzdWx0LFxuICBCcmFuY2hSZXN1bHRzLFxuICBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgYXMgRW5naW5lU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLFxuICBIYW5kbGVyRGVwcyxcbiAgSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIE5vZGVSZXN1bHRUeXBlLFxuICBSdW50aW1lU3RydWN0dXJlTWV0YWRhdGEsXG4gIFNjb3BlRmFjdG9yeSxcbiAgU2VyaWFsaXplZFBpcGVsaW5lTm9kZSxcbiAgU3RhZ2VGdW5jdGlvbixcbiAgU3ViZmxvd1Jlc3VsdCxcbiAgVHJhdmVyc2FsUmVzdWx0LFxufSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHsgTnVsbENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcblxuLy8gSGFuZGxlcnMgKHRlc3RpbmcgLyBjdXN0b20gZW5naW5lcylcbmV4cG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiwgUnVuU3RhZ2VGbiB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhcHBseU91dHB1dE1hcHBpbmcsXG4gIENoaWxkcmVuRXhlY3V0b3IsXG4gIGNvbXB1dGVOb2RlVHlwZSxcbiAgQ29udGludWF0aW9uUmVzb2x2ZXIsXG4gIGNyZWF0ZVN1YmZsb3dIYW5kbGVyRGVwcyxcbiAgRGVjaWRlckhhbmRsZXIsXG4gIERFRkFVTFRfTUFYX0lURVJBVElPTlMsXG4gIGV4dHJhY3RQYXJlbnRTY29wZVZhbHVlcyxcbiAgZ2V0SW5pdGlhbFNjb3BlVmFsdWVzLFxuICBOb2RlUmVzb2x2ZXIsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLFxuICBzZWVkU3ViZmxvd0dsb2JhbFN0b3JlLFxuICBTZWxlY3RvckhhbmRsZXIsXG4gIFN0YWdlUnVubmVyLFxuICBTdWJmbG93RXhlY3V0b3IsXG59IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5cbi8vIFRyYWNlIHV0aWxpdGllcyDigJQgcmUtZXhwb3J0ZWQgaGVyZSBmb3IgY29udmVuaWVuY2UuIENhbm9uaWNhbCBwYXRoOiAnZm9vdHByaW50anMvdHJhY2UnXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvbkNvdW50ZXIgfSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuZXhwb3J0IHsgYnVpbGRSdW50aW1lU3RhZ2VJZCwgY3JlYXRlRXhlY3V0aW9uQ291bnRlciwgcGFyc2VSdW50aW1lU3RhZ2VJZCB9IGZyb20gJy4vbGliL2VuZ2luZS9ydW50aW1lU3RhZ2VJZC5qcyc7XG5leHBvcnQgeyBmaW5kQ29tbWl0LCBmaW5kQ29tbWl0cywgZmluZExhc3RXcml0ZXIgfSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVRyYWNrZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Cb3VuZGFyeVN0YXRlVHJhY2tlci5qcyc7XG5leHBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvS2V5ZWRSZWNvcmRlci5qcyc7XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWR2YW5jZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNIOzs7Ozs7O0dBT0c7Ozs7QUFjSCxrREFBcUQ7QUFBNUMsd0dBQUEsWUFBWSxPQUFBO0FBQ3JCLGtEQUFxRDtBQUE1Qyx3R0FBQSxZQUFZLE9BQUE7QUFDckIsa0RBQWlEO0FBQXhDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQixrREFBMEQ7QUFBakQsNkdBQUEsaUJBQWlCLE9BQUE7QUFDMUIsa0RBQTREO0FBQW5ELCtHQUFBLG1CQUFtQixPQUFBO0FBQzVCLGtEQVUrQjtBQVQ3QiwyR0FBQSxlQUFlLE9BQUE7QUFDZiwwR0FBQSxjQUFjLE9BQUE7QUFDZCwwR0FBQSxjQUFjLE9BQUE7QUFDZCxnSEFBQSxvQkFBb0IsT0FBQTtBQUNwQix5R0FBQSxhQUFhLE9BQUE7QUFDYix1R0FBQSxXQUFXLE9BQUE7QUFDWCwwR0FBQSxjQUFjLE9BQUE7QUFDZCw2R0FBQSxpQkFBaUIsT0FBQTtBQUNqQix1R0FBQSxXQUFXLE9BQUE7QUF1QmIsbURBQXNHO0FBQTdGLDBHQUFBLGNBQWMsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUFFLDBHQUFBLGNBQWMsT0FBQTtBQUFFLDJHQUFBLGVBQWUsT0FBQTtBQUNyRSxxRUFBMEU7QUFBakUsNEhBQUEsdUJBQXVCLE9BQUE7QUFhaEMsaURBQTZGO0FBQXBGLDhHQUFBLGtCQUFrQixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFBRSx1R0FBQSxXQUFXLE9BQUE7QUFDOUQsaURBVThCO0FBVDVCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLG1IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDRHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLCtHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGdIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBHQUFBLGNBQWMsT0FBQTtBQWVoQixnQkFBZ0I7QUFDaEIsa0RBQW1IO0FBQTFHLG9IQUFBLHVCQUF1QixPQUFBO0FBQUUsOEdBQUEsaUJBQWlCLE9BQUE7QUFBRSwwR0FBQSxhQUFhLE9BQUE7QUFBRSw2R0FBQSxnQkFBZ0IsT0FBQTtBQU9wRixtREFBeUQ7QUFBaEQsNkdBQUEsZ0JBQWdCLE9BQUE7QUFPekIscURBT2lDO0FBTi9CLHlHQUFBLFlBQVksT0FBQTtBQUNaLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHFHQUFBLFFBQVEsT0FBQTtBQUNSLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLGdIQUFBLG1CQUFtQixPQUFBO0FBU3JCLG1EQUEyRDtBQUFsRCwrR0FBQSxrQkFBa0IsT0FBQTtBQUMzQixtREFBMEQ7QUFBakQsOEdBQUEsaUJBQWlCLE9BQUE7QUFtQjFCLG1EQUEwRTtBQUFqRSw4SEFBQSxpQ0FBaUMsT0FBQTtBQUkxQyxtREFnQitCO0FBZjdCLCtHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDZHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDRHQUFBLGVBQWUsT0FBQTtBQUNmLGlIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLHFIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLDJHQUFBLGNBQWMsT0FBQTtBQUNkLG1IQUFBLHNCQUFzQixPQUFBO0FBQ3RCLHFIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLGtIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLHlHQUFBLFlBQVksT0FBQTtBQUNaLG9IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLG1IQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDRHQUFBLGVBQWUsT0FBQTtBQUNmLHdHQUFBLFdBQVcsT0FBQTtBQUNYLDRHQUFBLGVBQWUsT0FBQTtBQUtqQixvRUFBa0g7QUFBekcsd0hBQUEsbUJBQW1CLE9BQUE7QUFBRSwySEFBQSxzQkFBc0IsT0FBQTtBQUFFLHdIQUFBLG1CQUFtQixPQUFBO0FBQ3pFLG9FQUF5RjtBQUFoRiwrR0FBQSxVQUFVLE9BQUE7QUFBRSxnSEFBQSxXQUFXLE9BQUE7QUFBRSxtSEFBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGZvb3RwcmludGpzL2FkdmFuY2VkIOKAlCBMb3ctbGV2ZWwgaW50ZXJuYWxzIGZvciBjdXN0b20gZXhlY3V0aW9uIGVuZ2luZXMgYW5kIHRlc3RpbmcuXG4gKlxuICogTW9zdCB1c2VycyBuZXZlciBuZWVkIHRoaXMuIFVzZSBgZm9vdHByaW50anNgIChtYWluKSBpbnN0ZWFkLlxuICogVGhpcyBlbnRyeSBwb2ludCBleHBvc2VzIGBTaGFyZWRNZW1vcnlgLCBgU3RhZ2VDb250ZXh0YCwgYEZsb3djaGFydFRyYXZlcnNlcmAsXG4gKiBhbmQgb3RoZXIgcHJpbWl0aXZlcyB0aGF0IHBvd2VyIHRoZSBlbmdpbmUuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFNoYXJlZE1lbW9yeSwgU3RhZ2VDb250ZXh0IH0gZnJvbSAnZm9vdHByaW50anMvYWR2YW5jZWQnO1xuICogYGBgXG4gKlxuICogQG1vZHVsZSBhZHZhbmNlZFxuICovXG4vKipcbiAqIEZvb3RQcmludCDigJQgQWR2YW5jZWQgLyBJbnRlcm5hbCBBUElcbiAqXG4gKiBUaGVzZSBleHBvcnRzIGFyZSBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzLCB0ZXN0aW5nLCBhbmQgYnVpbGRpbmdcbiAqIGN1c3RvbSBleGVjdXRpb24gZW5naW5lcy4gTW9zdCB1c2VycyBzaG91bGQgdXNlIHRoZSBtYWluICdmb290cHJpbnQnIGVudHJ5IHBvaW50LlxuICpcbiAqIEltcG9ydCB2aWE6IGltcG9ydCB7IC4uLiB9IGZyb20gJ2Zvb3RwcmludC9hZHZhbmNlZCdcbiAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW1vcnkg4oCUIExvdy1sZXZlbCB0cmFuc2FjdGlvbmFsIHN0YXRlIHByaW1pdGl2ZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBDb21taXRCdW5kbGUsXG4gIEZsb3dDb250cm9sVHlwZSxcbiAgRmxvd01lc3NhZ2UsXG4gIE1lbW9yeVBhdGNoLFxuICBTdGFnZVNuYXBzaG90LFxuICBUcmFjZUVudHJ5LFxufSBmcm9tICcuL2xpYi9tZW1vcnkvaW5kZXguanMnO1xuZXhwb3J0IHsgU2hhcmVkTWVtb3J5IH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBFdmVudExvZyB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1ZmZlciB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBEaWFnbm9zdGljQ29sbGVjdG9yIH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGFwcGx5U21hcnRNZXJnZSxcbiAgZGVlcFNtYXJ0TWVyZ2UsXG4gIGdldE5lc3RlZFZhbHVlLFxuICBnZXRSdW5BbmRHbG9iYWxQYXRocyxcbiAgbm9ybWFsaXNlUGF0aCxcbiAgcmVkYWN0UGF0Y2gsXG4gIHNldE5lc3RlZFZhbHVlLFxuICB1cGRhdGVOZXN0ZWRWYWx1ZSxcbiAgdXBkYXRlVmFsdWUsXG59IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJ1aWxkZXIg4oCUIFR5cGVzIGFuZCBpbnRlcm5hbHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBFeGVjT3B0aW9ucyxcbiAgRmxvd0NoYXJ0T3B0aW9ucyxcbiAgRmxvd0NoYXJ0U3BlYyxcbiAgSUxvZ2dlcixcbiAgU2NvcGVQcm90ZWN0aW9uTW9kZSxcbiAgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLFxuICBTaW1wbGlmaWVkUGFyYWxsZWxTcGVjLFxuICBTdGFnZUZuLFxuICBTdGFnZU5vZGUsXG4gIFN0cmVhbUNhbGxiYWNrLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG4gIFN1YmZsb3dSZWYsXG59IGZyb20gJy4vbGliL2J1aWxkZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgQXJyYXlNZXJnZU1vZGUsIERlY2lkZXJMaXN0LCBTZWxlY3RvckZuTGlzdCwgc3BlY1RvU3RhZ2VOb2RlIH0gZnJvbSAnLi9saWIvYnVpbGRlci9pbmRleC5qcyc7XG5leHBvcnQgeyBjcmVhdGVUeXBlZFNjb3BlRmFjdG9yeSB9IGZyb20gJy4vbGliL2J1aWxkZXIvdHlwZWRGbG93Q2hhcnQuanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTY29wZSDigJQgUHJvdmlkZXJzLCBwcm90ZWN0aW9uLCByZWNvcmRlciBvcHRpb25zLCBhbmQgZXZlbnQgdHlwZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBQcm92aWRlclJlc29sdmVyLFxuICBSZXNvbHZlT3B0aW9ucyxcbiAgU2NvcGVQcm92aWRlcixcbiAgU3RhZ2VDb250ZXh0TGlrZSxcbiAgU3RyaWN0TW9kZSxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuZXhwb3J0IHsgY3JlYXRlRXJyb3JNZXNzYWdlLCBjcmVhdGVQcm90ZWN0ZWRTY29wZSwgU2NvcGVGYWNhZGUgfSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhdHRhY2hTY29wZU1ldGhvZHMsXG4gIGlzU3ViY2xhc3NPZlNjb3BlRmFjYWRlLFxuICBsb29rc0xpa2VDbGFzc0N0b3IsXG4gIGxvb2tzTGlrZUZhY3RvcnksXG4gIG1ha2VDbGFzc1Byb3ZpZGVyLFxuICBtYWtlRmFjdG9yeVByb3ZpZGVyLFxuICByZWdpc3RlclNjb3BlUmVzb2x2ZXIsXG4gIHJlc29sdmVTY29wZVByb3ZpZGVyLFxuICB0b1Njb3BlRmFjdG9yeSxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuXG4vLyBTY29wZVJlY29yZGVyIGNvbmZpZy9vcHRpb24gdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQWdncmVnYXRlZE1ldHJpY3MsXG4gIERlYnVnRW50cnksXG4gIERlYnVnUmVjb3JkZXJPcHRpb25zLFxuICBEZWJ1Z1ZlcmJvc2l0eSxcbiAgRGVmaW5lU2NvcGVPcHRpb25zLFxuICBSZWNvcmRlckNvbnRleHQsXG4gIFN0YWdlRXZlbnQsXG4gIFN0YWdlTWV0cmljcyxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuXG4vLyBab2QgaW50ZXJuYWxzXG5leHBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCwgZGVmaW5lU2NvcGVTY2hlbWEsIGlzU2NvcGVTY2hlbWEsIFpvZFNjb3BlUmVzb2x2ZXIgfSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJ1bm5lciDigJQgSW50ZXJuYWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIHsgUnVudGltZVNuYXBzaG90IH0gZnJvbSAnLi9saWIvcnVubmVyL2luZGV4LmpzJztcbmV4cG9ydCB7IEV4ZWN1dGlvblJ1bnRpbWUgfSBmcm9tICcuL2xpYi9ydW5uZXIvaW5kZXguanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWFjdGl2ZSDigJQgVHlwZWRTY29wZSBpbnRlcm5hbHMgKGZvciBjdXN0b20gcHJveHkgaW1wbGVtZW50YXRpb25zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7IFJlYWN0aXZlT3B0aW9ucywgUmVhY3RpdmVUYXJnZXQgfSBmcm9tICcuL2xpYi9yZWFjdGl2ZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBCUkVBS19TRVRURVIsXG4gIGJ1aWxkTmVzdGVkUGF0Y2gsXG4gIGNyZWF0ZUFycmF5UHJveHksXG4gIGpvaW5QYXRoLFxuICBTQ09QRV9NRVRIT0RfTkFNRVMsXG4gIHNob3VsZFdyYXBXaXRoUHJveHksXG59IGZyb20gJy4vbGliL3JlYWN0aXZlL2luZGV4LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRW5naW5lIOKAlCBERlMgZ3JhcGggdHJhdmVyc2FsIGludGVybmFsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7IFRyYXZlcnNlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUgeyBEZWNpZGVyIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB7IEZsb3djaGFydFRyYXZlcnNlciB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQgeyBpc1N0YWdlTm9kZVJldHVybiB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5cbi8vIE5hcnJhdGl2ZSBpbnRlcm5hbHNcbmV4cG9ydCB0eXBlIHsgSUNvbnRyb2xGbG93TmFycmF0aXZlIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHsgQ29tYmluZWROYXJyYXRpdmVFbnRyeSwgQ29tYmluZWROYXJyYXRpdmVPcHRpb25zIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgQnJhbmNoUmVzdWx0LFxuICBCcmFuY2hSZXN1bHRzLFxuICBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgYXMgRW5naW5lU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLFxuICBIYW5kbGVyRGVwcyxcbiAgSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIE5vZGVSZXN1bHRUeXBlLFxuICBSdW50aW1lU3RydWN0dXJlTWV0YWRhdGEsXG4gIFNjb3BlRmFjdG9yeSxcbiAgU2VyaWFsaXplZFBpcGVsaW5lTm9kZSxcbiAgU3RhZ2VGdW5jdGlvbixcbiAgU3ViZmxvd1Jlc3VsdCxcbiAgVHJhdmVyc2FsUmVzdWx0LFxufSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHsgTnVsbENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcblxuLy8gSGFuZGxlcnMgKHRlc3RpbmcgLyBjdXN0b20gZW5naW5lcylcbmV4cG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiwgUnVuU3RhZ2VGbiB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhcHBseU91dHB1dE1hcHBpbmcsXG4gIENoaWxkcmVuRXhlY3V0b3IsXG4gIGNvbXB1dGVOb2RlVHlwZSxcbiAgQ29udGludWF0aW9uUmVzb2x2ZXIsXG4gIGNyZWF0ZVN1YmZsb3dIYW5kbGVyRGVwcyxcbiAgRGVjaWRlckhhbmRsZXIsXG4gIERFRkFVTFRfTUFYX0lURVJBVElPTlMsXG4gIGV4dHJhY3RQYXJlbnRTY29wZVZhbHVlcyxcbiAgZ2V0SW5pdGlhbFNjb3BlVmFsdWVzLFxuICBOb2RlUmVzb2x2ZXIsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLFxuICBzZWVkU3ViZmxvd0dsb2JhbFN0b3JlLFxuICBTZWxlY3RvckhhbmRsZXIsXG4gIFN0YWdlUnVubmVyLFxuICBTdWJmbG93RXhlY3V0b3IsXG59IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5cbi8vIFRyYWNlIHV0aWxpdGllcyDigJQgcmUtZXhwb3J0ZWQgaGVyZSBmb3IgY29udmVuaWVuY2UuIENhbm9uaWNhbCBwYXRoOiAnZm9vdHByaW50anMvdHJhY2UnXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvbkNvdW50ZXIgfSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuZXhwb3J0IHsgYnVpbGRSdW50aW1lU3RhZ2VJZCwgY3JlYXRlRXhlY3V0aW9uQ291bnRlciwgcGFyc2VSdW50aW1lU3RhZ2VJZCB9IGZyb20gJy4vbGliL2VuZ2luZS9ydW50aW1lU3RhZ2VJZC5qcyc7XG5leHBvcnQgeyBmaW5kQ29tbWl0LCBmaW5kQ29tbWl0cywgZmluZExhc3RXcml0ZXIgfSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuIl19
|
package/dist/esm/advanced.js
CHANGED
|
@@ -39,6 +39,4 @@ export { NullControlFlowNarrativeGenerator } from './lib/engine/index.js';
|
|
|
39
39
|
export { applyOutputMapping, ChildrenExecutor, computeNodeType, ContinuationResolver, createSubflowHandlerDeps, DeciderHandler, DEFAULT_MAX_ITERATIONS, extractParentScopeValues, getInitialScopeValues, NodeResolver, RuntimeStructureManager, seedSubflowGlobalStore, SelectorHandler, StageRunner, SubflowExecutor, } from './lib/engine/index.js';
|
|
40
40
|
export { buildRuntimeStageId, createExecutionCounter, parseRuntimeStageId } from './lib/engine/runtimeStageId.js';
|
|
41
41
|
export { findCommit, findCommits, findLastWriter } from './lib/memory/commitLogUtils.js';
|
|
42
|
-
export { BoundaryStateTracker } from './lib/recorder/BoundaryStateTracker.js';
|
|
43
|
-
export { KeyedRecorder } from './lib/recorder/KeyedRecorder.js';
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWR2YW5jZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0g7Ozs7Ozs7R0FPRztBQWNILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFdBQVcsRUFDWCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLFdBQVcsR0FDWixNQUFNLHVCQUF1QixDQUFDO0FBc0IvQixPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFhMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBYzlCLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPekQsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLE1BQU0seUJBQXlCLENBQUM7QUFRakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFtQjFELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsV0FBVyxFQUNYLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUkvQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGZvb3RwcmludGpzL2FkdmFuY2VkIOKAlCBMb3ctbGV2ZWwgaW50ZXJuYWxzIGZvciBjdXN0b20gZXhlY3V0aW9uIGVuZ2luZXMgYW5kIHRlc3RpbmcuXG4gKlxuICogTW9zdCB1c2VycyBuZXZlciBuZWVkIHRoaXMuIFVzZSBgZm9vdHByaW50anNgIChtYWluKSBpbnN0ZWFkLlxuICogVGhpcyBlbnRyeSBwb2ludCBleHBvc2VzIGBTaGFyZWRNZW1vcnlgLCBgU3RhZ2VDb250ZXh0YCwgYEZsb3djaGFydFRyYXZlcnNlcmAsXG4gKiBhbmQgb3RoZXIgcHJpbWl0aXZlcyB0aGF0IHBvd2VyIHRoZSBlbmdpbmUuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFNoYXJlZE1lbW9yeSwgU3RhZ2VDb250ZXh0IH0gZnJvbSAnZm9vdHByaW50anMvYWR2YW5jZWQnO1xuICogYGBgXG4gKlxuICogQG1vZHVsZSBhZHZhbmNlZFxuICovXG4vKipcbiAqIEZvb3RQcmludCDigJQgQWR2YW5jZWQgLyBJbnRlcm5hbCBBUElcbiAqXG4gKiBUaGVzZSBleHBvcnRzIGFyZSBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzLCB0ZXN0aW5nLCBhbmQgYnVpbGRpbmdcbiAqIGN1c3RvbSBleGVjdXRpb24gZW5naW5lcy4gTW9zdCB1c2VycyBzaG91bGQgdXNlIHRoZSBtYWluICdmb290cHJpbnQnIGVudHJ5IHBvaW50LlxuICpcbiAqIEltcG9ydCB2aWE6IGltcG9ydCB7IC4uLiB9IGZyb20gJ2Zvb3RwcmludC9hZHZhbmNlZCdcbiAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW1vcnkg4oCUIExvdy1sZXZlbCB0cmFuc2FjdGlvbmFsIHN0YXRlIHByaW1pdGl2ZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBDb21taXRCdW5kbGUsXG4gIEZsb3dDb250cm9sVHlwZSxcbiAgRmxvd01lc3NhZ2UsXG4gIE1lbW9yeVBhdGNoLFxuICBTdGFnZVNuYXBzaG90LFxuICBUcmFjZUVudHJ5LFxufSBmcm9tICcuL2xpYi9tZW1vcnkvaW5kZXguanMnO1xuZXhwb3J0IHsgU2hhcmVkTWVtb3J5IH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBFdmVudExvZyB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1ZmZlciB9IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBEaWFnbm9zdGljQ29sbGVjdG9yIH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGFwcGx5U21hcnRNZXJnZSxcbiAgZGVlcFNtYXJ0TWVyZ2UsXG4gIGdldE5lc3RlZFZhbHVlLFxuICBnZXRSdW5BbmRHbG9iYWxQYXRocyxcbiAgbm9ybWFsaXNlUGF0aCxcbiAgcmVkYWN0UGF0Y2gsXG4gIHNldE5lc3RlZFZhbHVlLFxuICB1cGRhdGVOZXN0ZWRWYWx1ZSxcbiAgdXBkYXRlVmFsdWUsXG59IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJ1aWxkZXIg4oCUIFR5cGVzIGFuZCBpbnRlcm5hbHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBFeGVjT3B0aW9ucyxcbiAgRmxvd0NoYXJ0T3B0aW9ucyxcbiAgRmxvd0NoYXJ0U3BlYyxcbiAgSUxvZ2dlcixcbiAgU2NvcGVQcm90ZWN0aW9uTW9kZSxcbiAgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLFxuICBTaW1wbGlmaWVkUGFyYWxsZWxTcGVjLFxuICBTdGFnZUZuLFxuICBTdGFnZU5vZGUsXG4gIFN0cmVhbUNhbGxiYWNrLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG4gIFN1YmZsb3dSZWYsXG59IGZyb20gJy4vbGliL2J1aWxkZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgQXJyYXlNZXJnZU1vZGUsIERlY2lkZXJMaXN0LCBTZWxlY3RvckZuTGlzdCwgc3BlY1RvU3RhZ2VOb2RlIH0gZnJvbSAnLi9saWIvYnVpbGRlci9pbmRleC5qcyc7XG5leHBvcnQgeyBjcmVhdGVUeXBlZFNjb3BlRmFjdG9yeSB9IGZyb20gJy4vbGliL2J1aWxkZXIvdHlwZWRGbG93Q2hhcnQuanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTY29wZSDigJQgUHJvdmlkZXJzLCBwcm90ZWN0aW9uLCByZWNvcmRlciBvcHRpb25zLCBhbmQgZXZlbnQgdHlwZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUge1xuICBQcm92aWRlclJlc29sdmVyLFxuICBSZXNvbHZlT3B0aW9ucyxcbiAgU2NvcGVQcm92aWRlcixcbiAgU3RhZ2VDb250ZXh0TGlrZSxcbiAgU3RyaWN0TW9kZSxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuZXhwb3J0IHsgY3JlYXRlRXJyb3JNZXNzYWdlLCBjcmVhdGVQcm90ZWN0ZWRTY29wZSwgU2NvcGVGYWNhZGUgfSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhdHRhY2hTY29wZU1ldGhvZHMsXG4gIGlzU3ViY2xhc3NPZlNjb3BlRmFjYWRlLFxuICBsb29rc0xpa2VDbGFzc0N0b3IsXG4gIGxvb2tzTGlrZUZhY3RvcnksXG4gIG1ha2VDbGFzc1Byb3ZpZGVyLFxuICBtYWtlRmFjdG9yeVByb3ZpZGVyLFxuICByZWdpc3RlclNjb3BlUmVzb2x2ZXIsXG4gIHJlc29sdmVTY29wZVByb3ZpZGVyLFxuICB0b1Njb3BlRmFjdG9yeSxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuXG4vLyBTY29wZVJlY29yZGVyIGNvbmZpZy9vcHRpb24gdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQWdncmVnYXRlZE1ldHJpY3MsXG4gIERlYnVnRW50cnksXG4gIERlYnVnUmVjb3JkZXJPcHRpb25zLFxuICBEZWJ1Z1ZlcmJvc2l0eSxcbiAgRGVmaW5lU2NvcGVPcHRpb25zLFxuICBSZWNvcmRlckNvbnRleHQsXG4gIFN0YWdlRXZlbnQsXG4gIFN0YWdlTWV0cmljcyxcbn0gZnJvbSAnLi9saWIvc2NvcGUvaW5kZXguanMnO1xuXG4vLyBab2QgaW50ZXJuYWxzXG5leHBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCwgZGVmaW5lU2NvcGVTY2hlbWEsIGlzU2NvcGVTY2hlbWEsIFpvZFNjb3BlUmVzb2x2ZXIgfSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJ1bm5lciDigJQgSW50ZXJuYWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIHsgUnVudGltZVNuYXBzaG90IH0gZnJvbSAnLi9saWIvcnVubmVyL2luZGV4LmpzJztcbmV4cG9ydCB7IEV4ZWN1dGlvblJ1bnRpbWUgfSBmcm9tICcuL2xpYi9ydW5uZXIvaW5kZXguanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWFjdGl2ZSDigJQgVHlwZWRTY29wZSBpbnRlcm5hbHMgKGZvciBjdXN0b20gcHJveHkgaW1wbGVtZW50YXRpb25zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7IFJlYWN0aXZlT3B0aW9ucywgUmVhY3RpdmVUYXJnZXQgfSBmcm9tICcuL2xpYi9yZWFjdGl2ZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBCUkVBS19TRVRURVIsXG4gIGJ1aWxkTmVzdGVkUGF0Y2gsXG4gIGNyZWF0ZUFycmF5UHJveHksXG4gIGpvaW5QYXRoLFxuICBTQ09QRV9NRVRIT0RfTkFNRVMsXG4gIHNob3VsZFdyYXBXaXRoUHJveHksXG59IGZyb20gJy4vbGliL3JlYWN0aXZlL2luZGV4LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRW5naW5lIOKAlCBERlMgZ3JhcGggdHJhdmVyc2FsIGludGVybmFsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7IFRyYXZlcnNlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUgeyBEZWNpZGVyIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB7IEZsb3djaGFydFRyYXZlcnNlciB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQgeyBpc1N0YWdlTm9kZVJldHVybiB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5cbi8vIE5hcnJhdGl2ZSBpbnRlcm5hbHNcbmV4cG9ydCB0eXBlIHsgSUNvbnRyb2xGbG93TmFycmF0aXZlIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHsgQ29tYmluZWROYXJyYXRpdmVFbnRyeSwgQ29tYmluZWROYXJyYXRpdmVPcHRpb25zIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgQnJhbmNoUmVzdWx0LFxuICBCcmFuY2hSZXN1bHRzLFxuICBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgYXMgRW5naW5lU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLFxuICBIYW5kbGVyRGVwcyxcbiAgSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIE5vZGVSZXN1bHRUeXBlLFxuICBSdW50aW1lU3RydWN0dXJlTWV0YWRhdGEsXG4gIFNjb3BlRmFjdG9yeSxcbiAgU2VyaWFsaXplZFBpcGVsaW5lTm9kZSxcbiAgU3RhZ2VGdW5jdGlvbixcbiAgU3ViZmxvd1Jlc3VsdCxcbiAgVHJhdmVyc2FsUmVzdWx0LFxufSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHsgTnVsbENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcblxuLy8gSGFuZGxlcnMgKHRlc3RpbmcgLyBjdXN0b20gZW5naW5lcylcbmV4cG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiwgUnVuU3RhZ2VGbiB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhcHBseU91dHB1dE1hcHBpbmcsXG4gIENoaWxkcmVuRXhlY3V0b3IsXG4gIGNvbXB1dGVOb2RlVHlwZSxcbiAgQ29udGludWF0aW9uUmVzb2x2ZXIsXG4gIGNyZWF0ZVN1YmZsb3dIYW5kbGVyRGVwcyxcbiAgRGVjaWRlckhhbmRsZXIsXG4gIERFRkFVTFRfTUFYX0lURVJBVElPTlMsXG4gIGV4dHJhY3RQYXJlbnRTY29wZVZhbHVlcyxcbiAgZ2V0SW5pdGlhbFNjb3BlVmFsdWVzLFxuICBOb2RlUmVzb2x2ZXIsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLFxuICBzZWVkU3ViZmxvd0dsb2JhbFN0b3JlLFxuICBTZWxlY3RvckhhbmRsZXIsXG4gIFN0YWdlUnVubmVyLFxuICBTdWJmbG93RXhlY3V0b3IsXG59IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5cbi8vIFRyYWNlIHV0aWxpdGllcyDigJQgcmUtZXhwb3J0ZWQgaGVyZSBmb3IgY29udmVuaWVuY2UuIENhbm9uaWNhbCBwYXRoOiAnZm9vdHByaW50anMvdHJhY2UnXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvbkNvdW50ZXIgfSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuZXhwb3J0IHsgYnVpbGRSdW50aW1lU3RhZ2VJZCwgY3JlYXRlRXhlY3V0aW9uQ291bnRlciwgcGFyc2VSdW50aW1lU3RhZ2VJZCB9IGZyb20gJy4vbGliL2VuZ2luZS9ydW50aW1lU3RhZ2VJZC5qcyc7XG5leHBvcnQgeyBmaW5kQ29tbWl0LCBmaW5kQ29tbWl0cywgZmluZExhc3RXcml0ZXIgfSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVRyYWNrZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Cb3VuZGFyeVN0YXRlVHJhY2tlci5qcyc7XG5leHBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvS2V5ZWRSZWNvcmRlci5qcyc7XG4iXX0=
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWR2YW5jZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0g7Ozs7Ozs7R0FPRztBQWNILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFdBQVcsRUFDWCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLFdBQVcsR0FDWixNQUFNLHVCQUF1QixDQUFDO0FBc0IvQixPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFhMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBYzlCLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPekQsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLE1BQU0seUJBQXlCLENBQUM7QUFRakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFtQjFELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsV0FBVyxFQUNYLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUkvQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZm9vdHByaW50anMvYWR2YW5jZWQg4oCUIExvdy1sZXZlbCBpbnRlcm5hbHMgZm9yIGN1c3RvbSBleGVjdXRpb24gZW5naW5lcyBhbmQgdGVzdGluZy5cbiAqXG4gKiBNb3N0IHVzZXJzIG5ldmVyIG5lZWQgdGhpcy4gVXNlIGBmb290cHJpbnRqc2AgKG1haW4pIGluc3RlYWQuXG4gKiBUaGlzIGVudHJ5IHBvaW50IGV4cG9zZXMgYFNoYXJlZE1lbW9yeWAsIGBTdGFnZUNvbnRleHRgLCBgRmxvd2NoYXJ0VHJhdmVyc2VyYCxcbiAqIGFuZCBvdGhlciBwcmltaXRpdmVzIHRoYXQgcG93ZXIgdGhlIGVuZ2luZS5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgU2hhcmVkTWVtb3J5LCBTdGFnZUNvbnRleHQgfSBmcm9tICdmb290cHJpbnRqcy9hZHZhbmNlZCc7XG4gKiBgYGBcbiAqXG4gKiBAbW9kdWxlIGFkdmFuY2VkXG4gKi9cbi8qKlxuICogRm9vdFByaW50IOKAlCBBZHZhbmNlZCAvIEludGVybmFsIEFQSVxuICpcbiAqIFRoZXNlIGV4cG9ydHMgYXJlIGZvciBhZHZhbmNlZCB1c2UgY2FzZXMsIHRlc3RpbmcsIGFuZCBidWlsZGluZ1xuICogY3VzdG9tIGV4ZWN1dGlvbiBlbmdpbmVzLiBNb3N0IHVzZXJzIHNob3VsZCB1c2UgdGhlIG1haW4gJ2Zvb3RwcmludCcgZW50cnkgcG9pbnQuXG4gKlxuICogSW1wb3J0IHZpYTogaW1wb3J0IHsgLi4uIH0gZnJvbSAnZm9vdHByaW50L2FkdmFuY2VkJ1xuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1lbW9yeSDigJQgTG93LWxldmVsIHRyYW5zYWN0aW9uYWwgc3RhdGUgcHJpbWl0aXZlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7XG4gIENvbW1pdEJ1bmRsZSxcbiAgRmxvd0NvbnRyb2xUeXBlLFxuICBGbG93TWVzc2FnZSxcbiAgTWVtb3J5UGF0Y2gsXG4gIFN0YWdlU25hcHNob3QsXG4gIFRyYWNlRW50cnksXG59IGZyb20gJy4vbGliL21lbW9yeS9pbmRleC5qcyc7XG5leHBvcnQgeyBTaGFyZWRNZW1vcnkgfSBmcm9tICcuL2xpYi9tZW1vcnkvaW5kZXguanMnO1xuZXhwb3J0IHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7IEV2ZW50TG9nIH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVmZmVyIH0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcbmV4cG9ydCB7IERpYWdub3N0aWNDb2xsZWN0b3IgfSBmcm9tICcuL2xpYi9tZW1vcnkvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgYXBwbHlTbWFydE1lcmdlLFxuICBkZWVwU21hcnRNZXJnZSxcbiAgZ2V0TmVzdGVkVmFsdWUsXG4gIGdldFJ1bkFuZEdsb2JhbFBhdGhzLFxuICBub3JtYWxpc2VQYXRoLFxuICByZWRhY3RQYXRjaCxcbiAgc2V0TmVzdGVkVmFsdWUsXG4gIHVwZGF0ZU5lc3RlZFZhbHVlLFxuICB1cGRhdGVWYWx1ZSxcbn0gZnJvbSAnLi9saWIvbWVtb3J5L2luZGV4LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQnVpbGRlciDigJQgVHlwZXMgYW5kIGludGVybmFsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7XG4gIEV4ZWNPcHRpb25zLFxuICBGbG93Q2hhcnRPcHRpb25zLFxuICBGbG93Q2hhcnRTcGVjLFxuICBJTG9nZ2VyLFxuICBTY29wZVByb3RlY3Rpb25Nb2RlLFxuICBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUsXG4gIFNpbXBsaWZpZWRQYXJhbGxlbFNwZWMsXG4gIFN0YWdlRm4sXG4gIFN0YWdlTm9kZSxcbiAgU3RyZWFtQ2FsbGJhY2ssXG4gIFN0cmVhbUxpZmVjeWNsZUhhbmRsZXIsXG4gIFN0cmVhbVRva2VuSGFuZGxlcixcbiAgU3ViZmxvd01vdW50T3B0aW9ucyxcbiAgU3ViZmxvd1JlZixcbn0gZnJvbSAnLi9saWIvYnVpbGRlci9pbmRleC5qcyc7XG5leHBvcnQgeyBBcnJheU1lcmdlTW9kZSwgRGVjaWRlckxpc3QsIFNlbGVjdG9yRm5MaXN0LCBzcGVjVG9TdGFnZU5vZGUgfSBmcm9tICcuL2xpYi9idWlsZGVyL2luZGV4LmpzJztcbmV4cG9ydCB7IGNyZWF0ZVR5cGVkU2NvcGVGYWN0b3J5IH0gZnJvbSAnLi9saWIvYnVpbGRlci90eXBlZEZsb3dDaGFydC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNjb3BlIOKAlCBQcm92aWRlcnMsIHByb3RlY3Rpb24sIHJlY29yZGVyIG9wdGlvbnMsIGFuZCBldmVudCB0eXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSB7XG4gIFByb3ZpZGVyUmVzb2x2ZXIsXG4gIFJlc29sdmVPcHRpb25zLFxuICBTY29wZVByb3ZpZGVyLFxuICBTdGFnZUNvbnRleHRMaWtlLFxuICBTdHJpY3RNb2RlLFxufSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5leHBvcnQgeyBjcmVhdGVFcnJvck1lc3NhZ2UsIGNyZWF0ZVByb3RlY3RlZFNjb3BlLCBTY29wZUZhY2FkZSB9IGZyb20gJy4vbGliL3Njb3BlL2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGF0dGFjaFNjb3BlTWV0aG9kcyxcbiAgaXNTdWJjbGFzc09mU2NvcGVGYWNhZGUsXG4gIGxvb2tzTGlrZUNsYXNzQ3RvcixcbiAgbG9va3NMaWtlRmFjdG9yeSxcbiAgbWFrZUNsYXNzUHJvdmlkZXIsXG4gIG1ha2VGYWN0b3J5UHJvdmlkZXIsXG4gIHJlZ2lzdGVyU2NvcGVSZXNvbHZlcixcbiAgcmVzb2x2ZVNjb3BlUHJvdmlkZXIsXG4gIHRvU2NvcGVGYWN0b3J5LFxufSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5cbi8vIFNjb3BlUmVjb3JkZXIgY29uZmlnL29wdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBBZ2dyZWdhdGVkTWV0cmljcyxcbiAgRGVidWdFbnRyeSxcbiAgRGVidWdSZWNvcmRlck9wdGlvbnMsXG4gIERlYnVnVmVyYm9zaXR5LFxuICBEZWZpbmVTY29wZU9wdGlvbnMsXG4gIFJlY29yZGVyQ29udGV4dCxcbiAgU3RhZ2VFdmVudCxcbiAgU3RhZ2VNZXRyaWNzLFxufSBmcm9tICcuL2xpYi9zY29wZS9pbmRleC5qcyc7XG5cbi8vIFpvZCBpbnRlcm5hbHNcbmV4cG9ydCB7IGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kLCBkZWZpbmVTY29wZVNjaGVtYSwgaXNTY29wZVNjaGVtYSwgWm9kU2NvcGVSZXNvbHZlciB9IGZyb20gJy4vbGliL3Njb3BlL2luZGV4LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUnVubmVyIOKAlCBJbnRlcm5hbHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgeyBSdW50aW1lU25hcHNob3QgfSBmcm9tICcuL2xpYi9ydW5uZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgRXhlY3V0aW9uUnVudGltZSB9IGZyb20gJy4vbGliL3J1bm5lci9pbmRleC5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlYWN0aXZlIOKAlCBUeXBlZFNjb3BlIGludGVybmFscyAoZm9yIGN1c3RvbSBwcm94eSBpbXBsZW1lbnRhdGlvbnMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIHsgUmVhY3RpdmVPcHRpb25zLCBSZWFjdGl2ZVRhcmdldCB9IGZyb20gJy4vbGliL3JlYWN0aXZlL2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIEJSRUFLX1NFVFRFUixcbiAgYnVpbGROZXN0ZWRQYXRjaCxcbiAgY3JlYXRlQXJyYXlQcm94eSxcbiAgam9pblBhdGgsXG4gIFNDT1BFX01FVEhPRF9OQU1FUyxcbiAgc2hvdWxkV3JhcFdpdGhQcm94eSxcbn0gZnJvbSAnLi9saWIvcmVhY3RpdmUvaW5kZXguanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFbmdpbmUg4oCUIERGUyBncmFwaCB0cmF2ZXJzYWwgaW50ZXJuYWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIHsgVHJhdmVyc2VyT3B0aW9ucyB9IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQgdHlwZSB7IERlY2lkZXIgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHsgRmxvd2NoYXJ0VHJhdmVyc2VyIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB7IGlzU3RhZ2VOb2RlUmV0dXJuIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcblxuLy8gTmFycmF0aXZlIGludGVybmFsc1xuZXhwb3J0IHR5cGUgeyBJQ29udHJvbEZsb3dOYXJyYXRpdmUgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUgeyBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5LCBDb21iaW5lZE5hcnJhdGl2ZU9wdGlvbnMgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUge1xuICBCcmFuY2hSZXN1bHQsXG4gIEJyYW5jaFJlc3VsdHMsXG4gIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSBhcyBFbmdpbmVTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUsXG4gIEhhbmRsZXJEZXBzLFxuICBJRXhlY3V0aW9uUnVudGltZSxcbiAgTm9kZVJlc3VsdFR5cGUsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNZXRhZGF0YSxcbiAgU2NvcGVGYWN0b3J5LFxuICBTZXJpYWxpemVkUGlwZWxpbmVOb2RlLFxuICBTdGFnZUZ1bmN0aW9uLFxuICBTdWJmbG93UmVzdWx0LFxuICBUcmF2ZXJzYWxSZXN1bHQsXG59IGZyb20gJy4vbGliL2VuZ2luZS9pbmRleC5qcyc7XG5leHBvcnQgeyBOdWxsQ29udHJvbEZsb3dOYXJyYXRpdmVHZW5lcmF0b3IgfSBmcm9tICcuL2xpYi9lbmdpbmUvaW5kZXguanMnO1xuXG4vLyBIYW5kbGVycyAodGVzdGluZyAvIGN1c3RvbSBlbmdpbmVzKVxuZXhwb3J0IHR5cGUgeyBFeGVjdXRlTm9kZUZuLCBSdW5TdGFnZUZuIH0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGFwcGx5T3V0cHV0TWFwcGluZyxcbiAgQ2hpbGRyZW5FeGVjdXRvcixcbiAgY29tcHV0ZU5vZGVUeXBlLFxuICBDb250aW51YXRpb25SZXNvbHZlcixcbiAgY3JlYXRlU3ViZmxvd0hhbmRsZXJEZXBzLFxuICBEZWNpZGVySGFuZGxlcixcbiAgREVGQVVMVF9NQVhfSVRFUkFUSU9OUyxcbiAgZXh0cmFjdFBhcmVudFNjb3BlVmFsdWVzLFxuICBnZXRJbml0aWFsU2NvcGVWYWx1ZXMsXG4gIE5vZGVSZXNvbHZlcixcbiAgUnVudGltZVN0cnVjdHVyZU1hbmFnZXIsXG4gIHNlZWRTdWJmbG93R2xvYmFsU3RvcmUsXG4gIFNlbGVjdG9ySGFuZGxlcixcbiAgU3RhZ2VSdW5uZXIsXG4gIFN1YmZsb3dFeGVjdXRvcixcbn0gZnJvbSAnLi9saWIvZW5naW5lL2luZGV4LmpzJztcblxuLy8gVHJhY2UgdXRpbGl0aWVzIOKAlCByZS1leHBvcnRlZCBoZXJlIGZvciBjb252ZW5pZW5jZS4gQ2Fub25pY2FsIHBhdGg6ICdmb290cHJpbnRqcy90cmFjZSdcbmV4cG9ydCB0eXBlIHsgRXhlY3V0aW9uQ291bnRlciB9IGZyb20gJy4vbGliL2VuZ2luZS9ydW50aW1lU3RhZ2VJZC5qcyc7XG5leHBvcnQgeyBidWlsZFJ1bnRpbWVTdGFnZUlkLCBjcmVhdGVFeGVjdXRpb25Db3VudGVyLCBwYXJzZVJ1bnRpbWVTdGFnZUlkIH0gZnJvbSAnLi9saWIvZW5naW5lL3J1bnRpbWVTdGFnZUlkLmpzJztcbmV4cG9ydCB7IGZpbmRDb21taXQsIGZpbmRDb21taXRzLCBmaW5kTGFzdFdyaXRlciB9IGZyb20gJy4vbGliL21lbW9yeS9jb21taXRMb2dVdGlscy5qcyc7XG4iXX0=
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* - Runtime events carry `runtimeStageId` (`[subflowPath/]stageId#N`),
|
|
16
16
|
* `iteration`, `traversalContext` — load-bearing for time-travel
|
|
17
|
-
* UIs, commit-log indices, and `
|
|
17
|
+
* UIs, commit-log indices, and `SequenceStore<T>` consumers.
|
|
18
18
|
* NONE of these exist at build time.
|
|
19
19
|
*
|
|
20
20
|
* - Build events carry only `stageId` + structural fields. No
|
|
@@ -155,4 +155,4 @@
|
|
|
155
155
|
* ```
|
|
156
156
|
*/
|
|
157
157
|
export {};
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvc3RydWN0dXJlL1N0cnVjdHVyZVJlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJKRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RydWN0dXJlUmVjb3JkZXIg4oCUIHBhc3NpdmUgb2JzZXJ2ZXIgb2YgQlVJTEQtVElNRSBjaGFydCBjb25zdHJ1Y3Rpb24gZXZlbnRzLlxuICpcbiAqIFRoZSBidWlsZC10aW1lIHR3aW4gb2YgYEZsb3dSZWNvcmRlcmAuIFdoZXJlIGBGbG93UmVjb3JkZXJgIG9ic2VydmVzXG4gKiBSVU5USU1FIGNvbnRyb2wtZmxvdyB0cmFuc2l0aW9ucyAocGVyLWV4ZWN1dGlvbiBgcnVudGltZVN0YWdlSWRgLFxuICogaXRlcmF0aW9uIGNvdW50cywgZXJyb3JzLCBwYXVzZXMpLCBgU3RydWN0dXJlUmVjb3JkZXJgIG9ic2VydmVzXG4gKiBTVEFUSUMgY2hhcnQgc2hhcGUgYXMgaXQncyBhc3NlbWJsZWQgYnkgdGhlIGJ1aWxkZXIg4oCUIGV2ZXJ5IHNwZWNcbiAqIG5vZGUgYWRkZWQsIGV2ZXJ5IG91dGdvaW5nIGVkZ2Ugd2lyZWQsIGV2ZXJ5IGRlY2lkZXIgY2xvc2VkLlxuICpcbiAqIFdoeSB0d28gaW50ZXJmYWNlcywgbm90IG9uZVxuICog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gKiAgIEJ1aWxkIGFuZCBydW50aW1lIGV2ZW50cyBoYXZlIGRpZmZlcmVudCBJTlZBUklBTlRTLCBub3QganVzdFxuICogICBkaWZmZXJlbnQgdGltaW5nOlxuICpcbiAqICAgICAtIFJ1bnRpbWUgZXZlbnRzIGNhcnJ5IGBydW50aW1lU3RhZ2VJZGAgKGBbc3ViZmxvd1BhdGgvXXN0YWdlSWQjTmApLFxuICogICAgICAgYGl0ZXJhdGlvbmAsIGB0cmF2ZXJzYWxDb250ZXh0YCDigJQgbG9hZC1iZWFyaW5nIGZvciB0aW1lLXRyYXZlbFxuICogICAgICAgVUlzLCBjb21taXQtbG9nIGluZGljZXMsIGFuZCBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgY29uc3VtZXJzLlxuICogICAgICAgTk9ORSBvZiB0aGVzZSBleGlzdCBhdCBidWlsZCB0aW1lLlxuICpcbiAqICAgICAtIEJ1aWxkIGV2ZW50cyBjYXJyeSBvbmx5IGBzdGFnZUlkYCArIHN0cnVjdHVyYWwgZmllbGRzLiBOb1xuICogICAgICAgZXhlY3V0aW9uIGluZGV4LCBubyBpdGVyYXRpb24sIG5vIHNuYXBzaG90LlxuICpcbiAqICAgICAtIFNvbWUgZXZlbnRzIGhhdmUgbm8gYW5hbG9nIGFjcm9zcyBwaGFzZXM6IGBvblBhdXNlYCAvXG4gKiAgICAgICBgb25SZXN1bWVgIC8gYG9uRXJyb3JgIC8gYG9uUnVuU3RhcnRgIGFyZSBydW50aW1lLW9ubHk7XG4gKiAgICAgICBgb25EZWNpZGVyQ29tcGxldGVgIC8gYG9uU3RhZ2VBZGRlZGAgYXJlIGJ1aWxkLW9ubHkuXG4gKlxuICogICBBIHNpbmdsZSBgRmxvd1JlY29yZGVyYCB3aXRoIGBwaGFzZTogJ3N0YXRpYycgfCAnZHluYW1pYydgXG4gKiAgIGRpc2NyaW1pbmF0b3Igd291bGQgZm9yY2UgZXZlcnkgY29uc3VtZXIgdG8gd3JpdGVcbiAqICAgYGlmIChlLnBoYXNlID09PSAnc3RhdGljJykgLi4uYCBicmFuY2hlcyBhbmQgd291bGQgZXJhc2UgdGhlXG4gKiAgIGxlYXN0LXByaXZpbGVnZSBib3VuZGFyeSAoYSBzdGF0aWMtb25seSBjb25zdW1lciBzaG91bGQgTk9UXG4gKiAgIGFjY2lkZW50YWxseSBvYnNlcnZlIHJ1bnRpbWUgZGF0YSDigJQgZS5nLiwgYSBwdWJsaWMgZG9jcyBzaXRlXG4gKiAgIHJlbmRlcmluZyBjaGFydCB0b3BvbG9neSBtdXN0IG5vdCBzZWUgc2NvcGUgdmFsdWVzKS5cbiAqXG4gKiAgIFR3byBpbnRlcmZhY2VzLCBzYW1lIG1lbnRhbCBtb2RlbCwgY2xlYW4gc2VwYXJhdGlvbi4gVHdvXG4gKiAgIHJlZ2lzdHJhdGlvbiBzaXRlcyBzaGlwIHRvZGF5IChwaWNrIHdoaWNoZXZlciBmaXRzIHlvdXIgY2FsbFxuICogICBzaXRlKTpcbiAqXG4gKiAgICAgMS4gKipPcHRpb25zLWJhZyoqIChwcmVmZXJyZWQgd2hlbiB0aGUgcmVjb3JkZXIgc2V0IGlzIGtub3duXG4gKiAgICAgICAgYXQgY29uc3RydWN0aW9uIHRpbWUg4oCUIHJlZ2lzdGVycyBCRUZPUkUgYHN0YXJ0KClgIHNvIGV2ZW5cbiAqICAgICAgICB0aGUgc2VlZCBldmVudCBmaXJlcyB0aHJvdWdoIHRoZSBub3JtYWwgZGlzcGF0Y2hlciBmYW4tb3V0KTpcbiAqICAgICAgICBgYGB0c1xuICogICAgICAgIGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcsIHsgc3RydWN0dXJlUmVjb3JkZXJzOiBbcmVjXSB9KVxuICogICAgICAgICAgLmFkZEZ1bmN0aW9uKCdhJywgZm5BLCAnYScpLmJ1aWxkKCk7XG4gKiAgICAgICAgYGBgXG4gKlxuICogICAgIDIuICoqRmx1ZW50KiogKHByZWZlcnJlZCB3aGVuIGF0dGFjaCBpcyBjb25kaXRpb25hbCwgbGF0ZSwgb3JcbiAqICAgICAgICBpbiBhIGNoYWluIGJ1aWxkZXIg4oCUIHRoZSBqdXN0LWF0dGFjaGVkIHJlY29yZGVyIGdldHMgYVxuICogICAgICAgIG9uZS10aW1lIHNlZWQgcmVwbGF5IHNvIGl0IG9ic2VydmVzIHRoZSByb290IHN0YWdlKTpcbiAqICAgICAgICBgYGB0c1xuICogICAgICAgIGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcpXG4gKiAgICAgICAgICAuYXR0YWNoU3RydWN0dXJlUmVjb3JkZXIocmVjKVxuICogICAgICAgICAgLmFkZEZ1bmN0aW9uKCdhJywgZm5BLCAnYScpLmJ1aWxkKCk7XG4gKiAgICAgICAgYGBgXG4gKlxuICogICBCb3RoIGRlbGl2ZXIgdGhlIHNhbWUgZXZlbnQgc3RyZWFtIHRvIHRoZSBzYW1lIHJlY29yZGVyLiBTZWUgdGhlXG4gKiAgIGBAZXhhbXBsZWAgYmxvY2sgYmVsb3cgZm9yIGEgZnVsbHktZmxlc2hlZC1vdXQgaW1wbGVtZW50YXRpb24uXG4gKlxuICogTGlmZWN5Y2xlICsgb3JkZXJpbmcgaW52YXJpYW50c1xuICog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gKiAgIC0gRmlyZXMgU1lOQ0hST05PVVNMWSBkdXJpbmcgYnVpbGRlciBjaGFpbiBjYWxscyAoYW5kIGR1cmluZ1xuICogICAgIGAuYnVpbGQoKWAgZm9yIHRoZSB0ZXJtaW5hbCBub2RlKSBhdCB0aGUgbmF0dXJhbCBtb21lbnQgZWFjaFxuICogICAgIHNwZWMgbXV0YXRpb24gY29tcGxldGVzLlxuICogICAtIGBvblN0YWdlQWRkZWQoQSlgIGFuZCBgb25TdGFnZUFkZGVkKEIpYCBmaXJlIEJFRk9SRSBhbnlcbiAqICAgICBgb25FZGdlQWRkZWQoe2Zyb206IEEsIHRvOiBCfSlgIOKAlCBlbmRwb2ludCByZWdpc3RyYXRpb25cbiAqICAgICBoYXBwZW5zIGJlZm9yZSBlZGdlIHdpcmluZy5cbiAqICAgLSBgb25EZWNpZGVyQ29tcGxldGUoRClgIGZpcmVzIGF0IHN1Yi1idWlsZGVyIGAuZW5kKClgIHRpbWUsIEFGVEVSXG4gKiAgICAgZXZlcnkgY2hpbGQncyBgb25TdGFnZUFkZGVkYCBhbmQgZXZlcnkgYG9uRWRnZUFkZGVkKHtmcm9tOiBELFxuICogICAgIHRvOiBjaGlsZH0pYC4gTWFya3MgdGhlIGRlY2lkZXIgYXMgbm8tZnVydGhlci1tdXRhdGlvbi5cbiAqICAgLSBgb25TdWJmbG93TW91bnRlZCh7c3ViZmxvd0lkfSlgIGZpcmVzIG9uY2UgcGVyIG1vdW50LlxuICogICAgICoqTU9VTlQtT05MWSoqOiBwYXJlbnQgcmVjb3JkZXJzIGRvIE5PVCByZWNlaXZlIGEgcmVwbGF5IG9mXG4gKiAgICAgdGhlIHN1YmZsb3cncyBvd24gaW50ZXJuYWwgc3RydWN0dXJlIGV2ZW50cyAodGhvc2UgZmlyZWRcbiAqICAgICBkdXJpbmcgdGhlIHN1YmZsb3cncyBvd24gYC5idWlsZCgpYCkuIE1hdGNoZXMgdGhlIHJ1bnRpbWVcbiAqICAgICBgb25TdWJmbG93RW50cnlgIHNlbWFudGljcyDigJQgY29tcG9zaXRpb24gb3ZlciByZXBsYXkuXG4gKlxuICogRXJyb3IgaXNvbGF0aW9uIChtYXRjaGVzIEZsb3dSZWNvcmRlciBjb250cmFjdClcbiAqIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICogICAtIEEgdGhyb3dpbmcgaGFuZGxlciBpcyBjYXVnaHQsIGxvZ2dlZCB2aWEgYGlzRGV2TW9kZSgpYCB3YXJuaW5nLFxuICogICAgIGFuZCBhY2N1bXVsYXRlZCBvbiBgYnVpbGRlci5nZXRTdHJ1Y3R1cmVCdWlsZEVycm9ycygpYCBmb3JcbiAqICAgICBwb3N0LWhvYyBpbnNwZWN0aW9uLlxuICogICAtIFN1YnNlcXVlbnQgcmVjb3JkZXJzICsgc3Vic2VxdWVudCBldmVudHMgZmlyZSBub3JtYWxseTsgb25lXG4gKiAgICAgbWlzYmVoYXZpbmcgcmVjb3JkZXIgY2Fubm90IFRIUk9XIGl0cyB3YXkgaW50byBibG9ja2luZ1xuICogICAgIGNvbnN0cnVjdGlvbi5cbiAqICAgLSBUaGUgZXJyb3JzW10gYWNjdW11bGF0b3IgaXMgc29mdC1jYXBwZWQgKH4xMDAgZW50cmllcykgd2l0aCBhXG4gKiAgICAgYF9fdHJ1bmNhdGVkX19gIHNlbnRpbmVsIHJlY29yZCBvbmNlIHRoZSBjYXAgaXMgaGl0LCB0byBwcmV2ZW50XG4gKiAgICAgdW5ib3VuZGVkIGdyb3d0aCBvbiBjaGF0dHkgYnJva2VuIHJlY29yZGVycy5cbiAqICAgLSBOb3RlOiB0aHJvdyBpc29sYXRpb24gZG9lcyBOT1QgZGVmZW5kIGFnYWluc3QgYSBoYW5kbGVyIHRoYXRcbiAqICAgICBzdWNjZWVkcyBhdCBydW50aW1lIGJ1dCBtdXRhdGVzIGBldmVudC5zcGVjYCB0byBjb3JydXB0IHRoZVxuICogICAgIGNoYXJ0LiBTZWUgXCJTcGVjIG11dGF0aW9uXCIgYmVsb3cuXG4gKlxuICogU3BlYyBtdXRhdGlvbiDigJQgcmVhZG9ubHktYnktY29udHJhY3QgKE5PVCBydW50aW1lLWVuZm9yY2VkKVxuICog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gKiAgIC0gRXZlbnQgcGF5bG9hZHMgcGFzcyBzcGVjIHJlZmVyZW5jZXMgd2hlcmUgdXNlZnVsIChlLmcuLCBgc3BlY2BcbiAqICAgICBvbiBgb25TdGFnZUFkZGVkYCkuIEV2ZXJ5IGZpZWxkIG9uIGV2ZXJ5IGV2ZW50IHBheWxvYWQgaXNcbiAqICAgICBtYXJrZWQgYHJlYWRvbmx5YCBpbiBUeXBlU2NyaXB0IOKAlCB0aGUgdHlwZSBzeXN0ZW0gc2lnbmFsc1xuICogICAgIGNvbnN1bWVyIGludGVudCBhdCBhdXRob3IgdGltZS5cbiAqICAgLSBUaGVyZSBpcyBOTyBydW50aW1lIGZyZWV6ZS4gVGhlIGJ1aWxkZXIgZmlyZXMgYG9uU3RhZ2VBZGRlZGBcbiAqICAgICBJTU1FRElBVEVMWSB3aGVuIGEgc3BlYyBub2RlIGlzIGFkZGVkLCBCRUZPUkUgdGhlIGJ1aWxkZXJcbiAqICAgICB3aXJlcyB0aGF0IG5vZGUncyBgLm5leHRgL2AuY2hpbGRyZW5gL2AubG9vcFRhcmdldGAgaW4gdGhlXG4gKiAgICAgc3Vic2VxdWVudCBgYWRkWGAgY2FsbC4gRnJlZXppbmcgaGVyZSB3b3VsZCBicmVhayB0aGVcbiAqICAgICBidWlsZGVyJ3Mgb3duIHN1YnNlcXVlbnQgbXV0YXRpb24uXG4gKiAgIC0gSGFuZGxlciBtdXRhdGlvbiBvZiBgZXZlbnQuc3BlY2AgaXMgRE9DVU1FTlRFRCBVTkRFRklORURcbiAqICAgICBCRUhBVklPUiDigJQgaXQgd2lsbCBzdWNjZWVkIGF0IHJ1bnRpbWUsIGJ1dCBpcyBub3Qgc3VwcG9ydGVkXG4gKiAgICAgYW5kIGRvd25zdHJlYW0gY29uc3VtZXJzIG1heSBicmVhay4gU3BlY2lmaWNhbGx5LCBtdXRhdGluZ1xuICogICAgIGBldmVudC5zcGVjLmZuYCwgYGV2ZW50LnNwZWMuaWRgLCBvciBgZXZlbnQuc3BlYy5jaGlsZHJlbmBcbiAqICAgICBjYW4gY29ycnVwdCBzdWJzZXF1ZW50IHJ1bnRpbWUgYmVoYXZpb3Igb2YgdGhlIGNoYXJ0LlxuICogICAtICoqVHJ1c3QgbW9kZWwqKjogYXR0YWNoIE9OTFkgcmVjb3JkZXJzIGZyb20gdHJ1c3RlZCBjb2RlIHBhdGhzLlxuICogICAgIEEgaG9zdGlsZSBvciBidWdneSByZWNvcmRlciBjYW4gZWZmZWN0aXZlbHkgc3Vic3RpdHV0ZSBzdGFnZVxuICogICAgIGZ1bmN0aW9ucyBvciByZXdpcmUgdGhlIGNoYXJ0IHN0cnVjdHVyZS4gVGhlIGByZWFkb25seWBcbiAqICAgICBtYXJrZXJzIGNhbm5vdCBkZWZlbmQgYWdhaW5zdCBpbnRlbnRpb25hbCBtdXRhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNsYXNzIFRyYWNlU3RydWN0dXJlUmVjb3JkZXIgaW1wbGVtZW50cyBTdHJ1Y3R1cmVSZWNvcmRlciB7XG4gKiAgIHJlYWRvbmx5IGlkID0gJ3RyYWNlLXN0YXRpYyc7XG4gKiAgIG5vZGVzOiBYeWZsb3dOb2RlW10gPSBbXTtcbiAqICAgZWRnZXM6IFh5Zmxvd0VkZ2VbXSA9IFtdO1xuICpcbiAqICAgb25TdGFnZUFkZGVkKGUpIHtcbiAqICAgICAvLyBOb2RlIHJvbGU6ICdzdGFnZScgaXMgdGhlIGluaXRpYWwgdHlwZS4gSWYgb3V0Z29pbmcgZWRnZXNcbiAqICAgICAvLyBhcnJpdmUgd2l0aCBraW5kICdmb3JrLWJyYW5jaCcgLyAnZGVjaXNpb24tYnJhbmNoJyB0aGUgbm9kZVxuICogICAgIC8vIGlzIGZ1bmN0aW9uaW5nIGFzIGEgZm9yay9kZWNpZGVyIOKAlCBkZXJpdmUgdGhlIHZpc3VhbCBzdHlsZVxuICogICAgIC8vIGZyb20gdGhvc2UgZWRnZXMsIG5vdCBmcm9tIGBlLnR5cGVgIGFsb25lLlxuICogICAgIHRoaXMubm9kZXMucHVzaCh7IGlkOiBlLnN0YWdlSWQsIHR5cGU6ICdsZW5zU3RhZ2UnLCBkYXRhOiB7IGxhYmVsOiBlLm5hbWUgfSB9KTtcbiAqICAgfVxuICogICBvbkVkZ2VBZGRlZChlKSB7XG4gKiAgICAgdGhpcy5lZGdlcy5wdXNoKHsgaWQ6IGAke2UuZnJvbX0tPiR7ZS50b31gLCBzb3VyY2U6IGUuZnJvbSwgdGFyZ2V0OiBlLnRvIH0pO1xuICogICB9XG4gKiAgIG9uU3ViZmxvd01vdW50ZWQoZSkge1xuICogICAgIHRoaXMubm9kZXMucHVzaCh7IGlkOiBlLnN1YmZsb3dJZCwgdHlwZTogJ3N1YmZsb3cnLCBkYXRhOiB7IGxhYmVsOiBlLnN1YmZsb3dOYW1lIH0gfSk7XG4gKiAgIH1cbiAqICAgb25EZWNpZGVyQ29tcGxldGUoZSkge1xuICogICAgIC8vIE9wdGlvbmFsOiBmaW5hbGl6ZSBub2RlIHN0eWxpbmcgbm93IHRoYXQgYnJhbmNoIGxpc3QgaXMgc2VhbGVkLlxuICogICB9XG4gKiB9XG4gKlxuICogLy8gUmVnaXN0cmF0aW9uIG9wdGlvbiBBIOKAlCBvcHRpb25zLWJhZyAocHJlZmVycmVkIHdoZW4gcmVjb3JkZXJzXG4gKiAvLyBhcmUga25vd24gdXAgZnJvbnQ7IGF0dGFjaGVzIEJFRk9SRSB0aGUgc2VlZCBldmVudCBmaXJlcyk6XG4gKiBjb25zdCByZWMgPSBuZXcgVHJhY2VTdHJ1Y3R1cmVSZWNvcmRlcigpO1xuICogY29uc3QgYnVpbGRlciA9IGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcsIHtcbiAqICAgc3RydWN0dXJlUmVjb3JkZXJzOiBbcmVjXSxcbiAqIH0pLmFkZEZ1bmN0aW9uKCdhJywgZm5BLCAnYScpO1xuICogY29uc3QgY2hhcnQgPSBidWlsZGVyLmJ1aWxkKCk7XG4gKlxuICogLy8gUmVnaXN0cmF0aW9uIG9wdGlvbiBCIOKAlCBmbHVlbnQgY2hhaW4gKHByZWZlcnJlZCBmb3IgY29uZGl0aW9uYWxcbiAqIC8vIG9yIGxhdGUgYXR0YWNoOyB0aGUganVzdC1hdHRhY2hlZCByZWNvcmRlciBnZXRzIGEgc2VlZCByZXBsYXkpOlxuICogY29uc3QgcmVjMiA9IG5ldyBUcmFjZVN0cnVjdHVyZVJlY29yZGVyKCk7XG4gKiBjb25zdCBidWlsZGVyMiA9IGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcpXG4gKiAgIC5hdHRhY2hTdHJ1Y3R1cmVSZWNvcmRlcihyZWMyKVxuICogICAuYWRkRnVuY3Rpb24oJ2EnLCBmbkEsICdhJyk7XG4gKlxuICogLy8gSW5zcGVjdCBhbnkgcmVjb3JkZXIgZXJyb3JzIChjYWxsIG9uIHRoZSBCVUlMREVSLCBub3QgdGhlIGNoYXJ0KTpcbiAqIGNvbnN0IGVycm9ycyA9IGJ1aWxkZXIuZ2V0U3RydWN0dXJlQnVpbGRFcnJvcnMoKTtcbiAqXG4gKiA8UmVhY3RGbG93IG5vZGVzPXtyZWMubm9kZXN9IGVkZ2VzPXtyZWMuZWRnZXN9IC8+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydFNwZWMsIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBFdmVudCBwYXlsb2FkIHR5cGVzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqXG4gKiBFdmVudCBwYXlsb2FkIGZvciBgU3RydWN0dXJlUmVjb3JkZXIub25TdGFnZUFkZGVkYC4gRmlyZXMgZm9yIGV2ZXJ5XG4gKiBzcGVjIG5vZGUgYWRkZWQgdG8gdGhlIGNoYXJ0LCBpbmNsdWRpbmcgdGhlIHNlZWQgKGFkZGVkIHZpYVxuICogYGZsb3dDaGFydCgpYCBmYWN0b3J5KSBhbmQgc3ViZmxvdyBtb3VudCBub2Rlcy4gRXhjbHVkZXMgc3ludGhldGljXG4gKiBsb29wLXJlZmVyZW5jZSBub2RlcyAodGhvc2UgY2FycnkgYGlzTG9vcFJlZmVyZW5jZTogdHJ1ZWAgb24gdGhlXG4gKiBzcGVjOyBjb25zdW1lcnMgc2VlIHRoZW0gdmlhIHRoZSBzZXBhcmF0ZSBgb25Mb29wRWRnZUFkZGVkYCBldmVudFxuICogaW5zdGVhZCBvZiBhcyBmcmVzaCBzdGFnZXMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cnVjdHVyZVN0YWdlQWRkZWRFdmVudCB7XG4gIC8qKlxuICAgKiBTdGFibGUgaWRlbnRpZmllciBmb3IgdGhpcyBub2RlLiBBVCBFVkVOVCBGSVJFIFRJTUUgdGhpcyBpcyB0aGVcbiAgICogYnVpbGRlcidzIExPQ0FMIGZvcm0gKG5vIHN1YmZsb3cgcHJlZml4IOKAlCB0aGUgcHJlZml4IGlzIGFwcGxpZWRcbiAgICogbGF0ZXIgYnkgYF9wcmVmaXhOb2RlVHJlZWAgd2hlbiB0aGlzIGJ1aWxkZXIgaXMgbW91bnRlZCBhcyBhXG4gICAqIHN1YmZsb3cgaW50byBhIHBhcmVudCkuXG4gICAqXG4gICAqIE5vdGU6IGBzcGVjLmlkYCBpcyBhIExJVkUgcmVmZXJlbmNlLiBJZiB5b3UgcmVhZCBpdCBBRlRFUiB0aGlzXG4gICAqIGNoYXJ0IGhhcyBiZWVuIG1vdW50ZWQgYXMgYSBzdWJmbG93LCBpdCBtYXkgaGF2ZSBiZWVuIHJld3JpdHRlblxuICAgKiB0byB0aGUgRlVMTCBwcmVmaXhlZCBmb3JtLiBVc2UgYHNwbGl0U3RhZ2VJZChzcGVjLmlkKWAgZnJvbVxuICAgKiBgZm9vdHByaW50anMvdHJhY2VgIHRvIGRlY29tcG9zZSBpdCBiYWNrIGludG8gbG9jYWwgKyBzdWJmbG93UGF0aC5cbiAgICpcbiAgICogQ29ycmVsYXRpbmcgd2l0aCBydW50aW1lIGV2ZW50czpcbiAgICogICAtIFNhbWUgYnVpbGRlciAobm8gbW91bnQpIOKGklxuICAgKiAgICAgYGV2ZW50LnN0YWdlSWQgPT09IHBhcnNlUnVudGltZVN0YWdlSWQocnVudGltZSkuc3RhZ2VJZGBcbiAgICogICAtIFRoaXMgYnVpbGRlciBtb3VudGVkIGFzIHN1YmZsb3cg4oaSIHVzZSBgc3BsaXRTdGFnZUlkYCBvbiB0aGVcbiAgICogICAgIHByZWZpeGVkIGZvcm0gKG9yIGBwYXJzZVJ1bnRpbWVTdGFnZUlkYCBvbiB0aGUgZnVsbFxuICAgKiAgICAgcnVudGltZVN0YWdlSWQpIGJlZm9yZSBjb21wYXJpbmcuXG4gICAqL1xuICByZWFkb25seSBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhlIG5vZGUuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFNwZWMgbm9kZSBgdHlwZWAuIExldHMgcmVjb3JkZXJzIGJyYW5jaCBvbiBzdGFnZSB2cyBkZWNpZGVyIHZzXG4gICAqICBmb3JrIHZzIHN1YmZsb3cgd2l0aG91dCByZS1kZXJpdmluZyBmcm9tIG90aGVyIGZpZWxkcy4gKi9cbiAgcmVhZG9ubHkgdHlwZTogTm9uTnVsbGFibGU8Rmxvd0NoYXJ0U3BlY1sndHlwZSddPjtcbiAgLyoqIFRydWUgZm9yIG5vZGVzIGFkZGVkIHZpYSBgYWRkUGF1c2FibGVGdW5jdGlvbigpYCDigJQgdXNlZnVsIGZvclxuICAgKiAgdmlzdWFsaXNlcnMgdGhhdCB3YW50IHRvIG1hcmsgc3RhZ2VzIHRoYXQgY2FuIHBhdXNlIGV4ZWN1dGlvbi4gKi9cbiAgcmVhZG9ubHkgaXNQYXVzYWJsZT86IGJvb2xlYW47XG4gIC8qKiBMaXZlIHJlZmVyZW5jZSB0byB0aGUgZnVsbCBzcGVjIG5vZGUsIGZvciBoYW5kbGVycyB0aGF0IHdhbnRcbiAgICogIGRldGFpbHMgYmV5b25kIHRoZSBkaXNjcmltaW5hdG9yIGZpZWxkcyBhYm92ZS4gTVVTVCBOT1QgYmVcbiAgICogIG11dGF0ZWQgYnkgdGhlIGhhbmRsZXIg4oCUIHJlYWRvbmx5IGlzIHR5cGUtbGV2ZWwgaW50ZW50OyBub1xuICAgKiAgcnVudGltZSBmcmVlemUuIFNlZSBcIlNwZWMgbXV0YXRpb25cIiBpbiB0aGUgZmlsZSBoZWFkZXIgZm9yIHRoZVxuICAgKiAgdHJ1c3QtbW9kZWwgY2F2ZWF0cy4gKi9cbiAgcmVhZG9ubHkgc3BlYzogRmxvd0NoYXJ0U3BlYztcbn1cblxuLyoqIEVkZ2Uga2luZHMgdGhlIGJ1aWxkZXIgcHJvZHVjZXMgYXQgc3RydWN0dXJhbCB0aW1lLiBNYXRjaGVzIHRoZVxuICogIGZvb3RwcmludGpzIGNvbnRyb2wtZmxvdyB2b2NhYnVsYXJ5IHVzZWQgYXQgcnVudGltZS5cbiAqXG4gKiAgV2h5IG5vIGBzdWJmbG93LWVudHJ5YCBoZXJlOiBzdWJmbG93IG1vdW50cyB1c2UgdGhlIGxpZmVjeWNsZVxuICogIGV2ZW50IGBvblN1YmZsb3dNb3VudGVkYCAobm90IGFuIGVkZ2UgZXZlbnQpLiBJZiBhIGZ1dHVyZSB1c2UgY2FzZVxuICogIG5lZWRzIHRoZSBwYXJlbnTihpJzdWJmbG93LXJvb3QgZWRnZSBhcyBhIGRpc3RpbmN0IGtpbmQsIGl0J2xsIGJlXG4gKiAgYWRkZWQgdGhlbiDigJQgWUFHTkkgbm93IChQYW5lbCAzLCBMNy4yIHJldmlldykuICovXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVFZGdlS2luZCA9XG4gIHwgJ25leHQnIC8vIGxpbmVhciBjaGFpbjogcHJldi5uZXh0ID0gY3VyclxuICB8ICdmb3JrLWJyYW5jaCcgLy8gZm9yayBwYXJlbnQg4oaSIHBhcmFsbGVsIGNoaWxkXG4gIHwgJ2RlY2lzaW9uLWJyYW5jaCc7IC8vIGRlY2lkZXIg4oaSIGJyYW5jaCBjaGlsZFxuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGBTdHJ1Y3R1cmVSZWNvcmRlci5vbkVkZ2VBZGRlZGAuIEZpcmVzIHdoZW5ldmVyXG4gKiB0aGUgYnVpbGRlciB3aXJlcyBhbiBvdXRnb2luZyBlZGdlIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlci4gQm90aFxuICogZW5kcG9pbnRzIGhhdmUgYWxyZWFkeSBiZWVuIGFubm91bmNlZCB2aWEgYG9uU3RhZ2VBZGRlZGAgYnkgdGhlXG4gKiB0aW1lIHRoaXMgZmlyZXMuXG4gKlxuICogTG9vcCBiYWNrLWVkZ2VzIGhhdmUgdGhlaXIgT1dOIGV2ZW50IChgb25Mb29wRWRnZUFkZGVkYCkgc29cbiAqIGNvbnN1bWVycyBjYW4gdGhlbWUgdGhlbSBkaXN0aW5jdGx5IGFuZCBzbyBidWlsZC10aW1lIGV2ZW50cyBzdGF5XG4gKiBmcmVlIG9mIHRoZSBydW50aW1lLW9ubHkgYGl0ZXJhdGlvbmAgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlRWRnZUFkZGVkRXZlbnQge1xuICByZWFkb25seSBmcm9tOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmQ6IFN0cnVjdHVyZUVkZ2VLaW5kO1xuICAvKiogT3B0aW9uYWwgaHVtYW4tcmVhZGFibGUgbGFiZWwg4oCUIHVzZWQgdG9kYXkgZm9yIGRlY2lkZXIgYnJhbmNoXG4gICAqICBrZXlzIChlLmcuLCBgJ2xvdydgLCBgJ2hpZ2gnYCwgYCdoaWdoIChkZWZhdWx0KSdgKSBhbmQgcGFyYWxsZWxcbiAgICogIGJyYW5jaCBpZHMuICovXG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGBTdHJ1Y3R1cmVSZWNvcmRlci5vbkxvb3BFZGdlQWRkZWRgLiBGaXJlcyB3aGVuXG4gKiBgLmxvb3BUbyh0YXJnZXQpYCBpbnN0YWxscyBhIGJhY2stZWRnZS4gRGlzdGluY3QgZnJvbVxuICogYG9uRWRnZUFkZGVkYCBzbyBjb25zdW1lcnMgY2FuIHRoZW1lIGJhY2stZWRnZXMgZGlmZmVyZW50bHkgYW5kXG4gKiBiZWNhdXNlIHJ1bnRpbWUgYG9uTG9vcGAgY2FycmllcyBgaXRlcmF0aW9uOiBudW1iZXJgIHdoaWNoIGhhcyBub1xuICogYnVpbGQtdGltZSBtZWFuaW5nIOKAlCBrZWVwaW5nIHRoZSBldmVudHMgc2VwYXJhdGVkIGF2b2lkcyBmb3JjaW5nXG4gKiBhbiBgaXRlcmF0aW9uPzogbnVtYmVyYCBsaWUgaW50byB0aGUgc3RydWN0dXJhbCBzaGFwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVMb29wRWRnZUFkZGVkRXZlbnQge1xuICByZWFkb25seSBmcm9tOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXZlbnQgcGF5bG9hZCBmb3IgYFN0cnVjdHVyZVJlY29yZGVyLm9uRGVjaWRlckNvbXBsZXRlYC4gRmlyZXNcbiAqIHdoZW4gYSBkZWNpZGVyIC8gc2VsZWN0b3Igc3ViLWJ1aWxkZXIgY2xvc2VzIHZpYSBgLmVuZCgpYC4gQnkgdGhlXG4gKiB0aW1lIHRoaXMgZmlyZXMgZXZlcnkgYnJhbmNoIGhhcyBiZWVuIGFubm91bmNlZCBhbmQgdGhlXG4gKiBgZGVmYXVsdEJyYW5jaGAgKGlmIHNldCB2aWEgYC5zZXREZWZhdWx0KClgKSBpcyBmaW5hbC4gTGV0c1xuICogcmVjb3JkZXJzIHRyZWF0IHRoZSBkZWNpZGVyIGFzIG5vLWZ1cnRoZXItbXV0YXRpb24gYW5kIHNuYXBzaG90XG4gKiBpdHMgYnJhbmNoIGxpc3QgYXMgZmluYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlRGVjaWRlckNvbXBsZXRlRXZlbnQge1xuICAvKiogRGVjaWRlciAvIHNlbGVjdG9yIHN0YWdlIGlkLiAqL1xuICByZWFkb25seSBkZWNpZGVyOiBzdHJpbmc7XG4gIC8qKiBTcGVjIHR5cGUgKGAnZGVjaWRlcidgIHZzIGAnc2VsZWN0b3InYCkg4oCUIGV4cG9zZWQgc28gY29uc3VtZXJzXG4gICAqICBkb24ndCBuZWVkIHRvIGxvb2sgdXAgdGhlIG9yaWdpbmFsIGBvblN0YWdlQWRkZWRgIGV2ZW50LiAqL1xuICByZWFkb25seSB0eXBlOiAnZGVjaWRlcicgfCAnc2VsZWN0b3InO1xuICAvKiogQnJhbmNoIG1lbWJlciBpZHMgaW4gZGVjbGFyYXRpb24gb3JkZXIuICovXG4gIHJlYWRvbmx5IGJyYW5jaElkczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBEZWZhdWx0IGJyYW5jaCBpZCB3aGVuIHNldCB2aWEgYC5zZXREZWZhdWx0KClgOyB1bmRlZmluZWQgd2hlblxuICAgKiAgbm8gZGVmYXVsdCBpcyBjb25maWd1cmVkIChlLmcuLCBzZWxlY3RvcnMpLiAqL1xuICByZWFkb25seSBkZWZhdWx0QnJhbmNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGBTdHJ1Y3R1cmVSZWNvcmRlci5vblN1YmZsb3dNb3VudGVkYC4gRmlyZXMgb25jZVxuICogcGVyIHN1YmZsb3cgbW91bnQgKGBhZGRTdWJGbG93Q2hhcnRgIC8gYGFkZFN1YkZsb3dDaGFydE5leHRgIGFuZFxuICogdGhlaXIgbGF6eSB2YXJpYW50cykuXG4gKlxuICogKipNT1VOVC1PTkxZIHNlbWFudGljcyoqIOKAlCB0aGUgc3ViZmxvdydzIE9XTiBzdHJ1Y3R1cmUgZXZlbnRzXG4gKiAoZXZlcnkgYG9uU3RhZ2VBZGRlZGAgLyBgb25FZGdlQWRkZWRgIGluc2lkZSB0aGUgc3ViZmxvdykgZmlyZWRcbiAqIGR1cmluZyB0aGUgc3ViZmxvdydzIG93biBgLmJ1aWxkKClgLCBiZWZvcmUgdGhlIG1vdW50LiBQYXJlbnRcbiAqIHJlY29yZGVycyBkbyBOT1QgcmVjZWl2ZSBhIHJlcGxheS4gSW5zdGVhZCwgdGhpcyBldmVudCBkZWxpdmVyc1xuICogdGhlIHN1YmZsb3cncyBmdWxsIHN0cnVjdHVyZSB2aWEgYHN1YmZsb3dTcGVjYCwgYW5kIGNvbnN1bWVycyBjYW5cbiAqIHdhbGsgaXQgdmlhIGB3YWxrU3ViZmxvd1NwZWNgIGZyb20gYGZvb3RwcmludGpzL3RyYWNlYC5cbiAqXG4gKiBUaGlzIG1hdGNoZXMgYEZsb3dSZWNvcmRlci5vblN1YmZsb3dFbnRyeWAgc2VtYW50aWNzIGF0IHJ1bnRpbWVcbiAqIChwYXJlbnRzIHNlZSB0aGUgYm91bmRhcnksIG5vdCBhIHJlcGxheSBvZiBpbnRlcm5hbHMpIGFuZFxuICogcHJlc2VydmVzIHRoZSBcIm9uZSBwdXJwb3NlIHBlciByZWNvcmRlclwiIGNvbnZlbnRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlU3ViZmxvd01vdW50ZWRFdmVudCB7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIgdGhlIHBhcmVudCBhc3NpZ25lZCBhdCBtb3VudC4gKi9cbiAgcmVhZG9ubHkgc3ViZmxvd0lkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBzdWJmbG93IG5hbWUuICovXG4gIHJlYWRvbmx5IHN1YmZsb3dOYW1lOiBzdHJpbmc7XG4gIC8qKiBNb3VudCBub2RlIGlkIGluIHRoZSBwYXJlbnQncyBjaGFydC4gKi9cbiAgcmVhZG9ubHkgcm9vdFN0YWdlSWQ6IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiB0aGUgbW91bnQgdXNlcyBsYXp5IHJlc29sdXRpb24gKGRlZmVycmVkIHN1YmZsb3dcbiAgICogIHJlc29sdXRpb24gdW50aWwgZXhlY3V0aW9uKS4gKi9cbiAgcmVhZG9ubHkgaXNMYXp5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1vdW50ZWQgc3ViZmxvdydzIGNvbXBsZXRlIHNwZWMg4oCUIHRoZSBTQU1FIE9CSkVDVFxuICAgKiAoPT09IHJlZmVyZW5jZSBlcXVhbGl0eSkgcmVhY2hhYmxlIHZpYSBgc3ViZmxvdy5idWlsZFRpbWVTdHJ1Y3R1cmVgXG4gICAqIGZvciB0aGUgRmxvd0NoYXJ0IHRoZSBjb25zdW1lciBwYXNzZWQgdG8gYGFkZFN1YkZsb3dDaGFydEJyYW5jaGAgL1xuICAgKiBgYWRkU3ViRmxvd0NoYXJ0YCAvIGBhZGRTdWJGbG93Q2hhcnROZXh0YC5cbiAgICpcbiAgICogVU5ERUZJTkVEIGZvciBsYXp5IG1vdW50cyBhdCBidWlsZCB0aW1lIChgaXNMYXp5OiB0cnVlYCkg4oCUIHRoZVxuICAgKiBzdWJmbG93J3Mgc3RydWN0dXJlIGhhc24ndCBiZWVuIHJlc29sdmVkIHlldC4gQ29uc3VtZXJzIHdhaXRpbmcgb25cbiAgICogbGF6eSBzdWJmbG93cyBoYW5kbGUgdGhlIHJ1bnRpbWUgYG9uU3ViZmxvd0VudHJ5YCBldmVudCBpbnN0ZWFkLlxuICAgKlxuICAgKiBJbW11dGFibGUgcG9zdC1idWlsZDsgY29uc3VtZXJzIE1VU1QgTk9UIG11dGF0ZS5cbiAgICpcbiAgICogQGludGVybmFsIGBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmVgIGlzIGxpYnJhcnktaW50ZXJuYWwuXG4gICAqICAgICAgICAgICBVc2UgYHdhbGtTdWJmbG93U3BlY2AgZnJvbSBgZm9vdHByaW50anMvdHJhY2VgIGZvciB0aGVcbiAgICogICAgICAgICAgIHN0YWJsZSBwdWJsaWMgY29udHJhY3QuXG4gICAqL1xuICByZWFkb25seSBzdWJmbG93U3BlYz86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcblxuICAvKipcbiAgICogTG9jYWwgbW91bnQgaWQgb2YgdGhpcyBzdWJmbG93IHdpdGhpbiBpdHMgcGFyZW50IOKAlCBlcXVhbCB0b1xuICAgKiBgc3ViZmxvd0lkYCBmb3IgdG9wLWxldmVsIG1vdW50cyAoZS5nLiBgJ2F1dGgnYCksIGNvbXBvc2VkXG4gICAqIChgJ2F1dGgvdmVyaWZ5J2ApIGZvciBuZXN0ZWQgbW91bnRzIHdob3NlIHJlY29yZGVyIGlzIGF0dGFjaGVkXG4gICAqIHRvIHRoZSBncmFuZHBhcmVudC4gTWF0Y2hlcyBydW50aW1lIGB0cmF2ZXJzYWxDb250ZXh0LnN1YmZsb3dQYXRoYFxuICAgKiBzZW1hbnRpY3Mg4oCUIE5FVkVSIHByZWZpeGVkIHdpdGggYF9fcm9vdF9fL2AuXG4gICAqL1xuICByZWFkb25seSBzdWJmbG93UGF0aDogc3RyaW5nO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFN0cnVjdHVyZVJlY29yZGVyIGludGVyZmFjZVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKlxuICogUGx1Z2dhYmxlIG9ic2VydmVyIGZvciBCVUlMRC1USU1FIGNoYXJ0IGNvbnN0cnVjdGlvbiBldmVudHMuXG4gKlxuICogQWxsIG1ldGhvZHMgYXJlIG9wdGlvbmFsIOKAlCBpbXBsZW1lbnQgb25seSB0aGUgaG9va3MgeW91IG5lZWQuXG4gKiBIYW5kbGVycyBmaXJlIFNZTkNIUk9OT1VTTFkgZHVyaW5nIGJ1aWxkZXIgb3BlcmF0aW9ucyBhbmQgYC5idWlsZCgpYC5cbiAqIEEgdGhyb3dpbmcgaGFuZGxlciBpcyBjYXVnaHQgKHNlZSBcIkVycm9yIGlzb2xhdGlvblwiIGluIHRoZSBmaWxlXG4gKiBoZWFkZXIpOyBzdWJzZXF1ZW50IGRpc3BhdGNoIGNvbnRpbnVlcy5cbiAqXG4gKiBMaWZlY3ljbGU6IGVhY2ggYFN0cnVjdHVyZVJlY29yZGVyYCBpbnN0YW5jZSBpcyByZWdpc3RlcmVkIHZpYVxuICogRUlUSEVSIHRoZSBgZmxvd0NoYXJ0KClgIG9wdGlvbnMgYmFnIChgeyBzdHJ1Y3R1cmVSZWNvcmRlcnM6IFtyZWNdIH1gKVxuICogT1IgdGhlIGZsdWVudCBgLmF0dGFjaFN0cnVjdHVyZVJlY29yZGVyKHJlYylgIGNoYWluIOKAlCBzZWUgdGhlIGZpbGVcbiAqIGhlYWRlciBmb3IgdGhlIHRyYWRlLW9mZnMuIFJlZ2lzdHJhdGlvbiBhZnRlciBgLmJ1aWxkKClgIGlzXG4gKiByZWplY3RlZCAoY2hhcnQgaXMgc2VhbGVkKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVSZWNvcmRlciB7XG4gIC8qKlxuICAgKiBTdGFibGUgaWRlbnRpZmllciDigJQgdXNlZCBieSB0aGUgZGlzcGF0Y2hlciB0byBzY29wZSBlcnJvclxuICAgKiBtZXNzYWdlcyBhbmQgdG8gc3VwcG9ydCBgZGV0YWNoKGlkKWAgbG9va3VwLlxuICAgKlxuICAgKiBDb252ZW50aW9uIChtYXRjaGVzIGBGbG93UmVjb3JkZXIuaWRgIGZyb20gQ0xBVURFLm1kKTpcbiAgICogICAtIGRvbWFpbi1wcmVmaXhlZCBrZWJhYi1jYXNlIChgJ2xlbnMtc3RydWN0dXJlJ2AsXG4gICAqICAgICBgJ2FnZW50Zm9vdHByaW50LWNvbXBvc2l0aW9uJ2AsIGAndHJhY2UtZXhwbGFpbmFibGUnYClcbiAgICogICAtIHNhbWUgaWQg4oaSIG11bHRpcGxlIHJlY29yZGVycyBjb2V4aXN0IChOT1QgZGVkdXBsaWNhdGVkIGJ5XG4gICAqICAgICBpZDsgdGhlIGRpc3BhdGNoZXIgZmlyZXMgZXZlcnkgYXR0YWNoZWQgcmVjb3JkZXIgcmVnYXJkbGVzcylcbiAgICogICAtIGBkZXRhY2goaWQpYCByZW1vdmVzIEVWRVJZIHJlY29yZGVyIHdpdGggdGhhdCBpZCDigJQgYmVcbiAgICogICAgIGludGVudGlvbmFsIGFib3V0IHJldXNlIGlmIHlvdSByZWx5IG9uIHNlbGVjdGl2ZSBkZXRhY2hcbiAgICpcbiAgICogQ2hvb3NlIGEgc3RhYmxlIGlkIGF0IG1vZHVsZSBsb2FkIGFuZCBkb24ndCByYW5kb21pc2UgaXQgYWNyb3NzXG4gICAqIHJ1bnMg4oCUIGl0IGxhbmRzIGluIGBTdHJ1Y3R1cmVCdWlsZEVycm9yLnJlY29yZGVySWRgIHNvIGRlYnVnXG4gICAqIG91dHB1dCBpcyBncmVwcGFibGUuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIG9uU3RhZ2VBZGRlZD8oZXZlbnQ6IFN0cnVjdHVyZVN0YWdlQWRkZWRFdmVudCk6IHZvaWQ7XG4gIG9uRWRnZUFkZGVkPyhldmVudDogU3RydWN0dXJlRWRnZUFkZGVkRXZlbnQpOiB2b2lkO1xuICBvbkxvb3BFZGdlQWRkZWQ/KGV2ZW50OiBTdHJ1Y3R1cmVMb29wRWRnZUFkZGVkRXZlbnQpOiB2b2lkO1xuICBvbkRlY2lkZXJDb21wbGV0ZT8oZXZlbnQ6IFN0cnVjdHVyZURlY2lkZXJDb21wbGV0ZUV2ZW50KTogdm9pZDtcbiAgb25TdWJmbG93TW91bnRlZD8oZXZlbnQ6IFN0cnVjdHVyZVN1YmZsb3dNb3VudGVkRXZlbnQpOiB2b2lkO1xufVxuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvc3RydWN0dXJlL1N0cnVjdHVyZVJlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJKRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RydWN0dXJlUmVjb3JkZXIg4oCUIHBhc3NpdmUgb2JzZXJ2ZXIgb2YgQlVJTEQtVElNRSBjaGFydCBjb25zdHJ1Y3Rpb24gZXZlbnRzLlxuICpcbiAqIFRoZSBidWlsZC10aW1lIHR3aW4gb2YgYEZsb3dSZWNvcmRlcmAuIFdoZXJlIGBGbG93UmVjb3JkZXJgIG9ic2VydmVzXG4gKiBSVU5USU1FIGNvbnRyb2wtZmxvdyB0cmFuc2l0aW9ucyAocGVyLWV4ZWN1dGlvbiBgcnVudGltZVN0YWdlSWRgLFxuICogaXRlcmF0aW9uIGNvdW50cywgZXJyb3JzLCBwYXVzZXMpLCBgU3RydWN0dXJlUmVjb3JkZXJgIG9ic2VydmVzXG4gKiBTVEFUSUMgY2hhcnQgc2hhcGUgYXMgaXQncyBhc3NlbWJsZWQgYnkgdGhlIGJ1aWxkZXIg4oCUIGV2ZXJ5IHNwZWNcbiAqIG5vZGUgYWRkZWQsIGV2ZXJ5IG91dGdvaW5nIGVkZ2Ugd2lyZWQsIGV2ZXJ5IGRlY2lkZXIgY2xvc2VkLlxuICpcbiAqIFdoeSB0d28gaW50ZXJmYWNlcywgbm90IG9uZVxuICog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gKiAgIEJ1aWxkIGFuZCBydW50aW1lIGV2ZW50cyBoYXZlIGRpZmZlcmVudCBJTlZBUklBTlRTLCBub3QganVzdFxuICogICBkaWZmZXJlbnQgdGltaW5nOlxuICpcbiAqICAgICAtIFJ1bnRpbWUgZXZlbnRzIGNhcnJ5IGBydW50aW1lU3RhZ2VJZGAgKGBbc3ViZmxvd1BhdGgvXXN0YWdlSWQjTmApLFxuICogICAgICAgYGl0ZXJhdGlvbmAsIGB0cmF2ZXJzYWxDb250ZXh0YCDigJQgbG9hZC1iZWFyaW5nIGZvciB0aW1lLXRyYXZlbFxuICogICAgICAgVUlzLCBjb21taXQtbG9nIGluZGljZXMsIGFuZCBgU2VxdWVuY2VTdG9yZTxUPmAgY29uc3VtZXJzLlxuICogICAgICAgTk9ORSBvZiB0aGVzZSBleGlzdCBhdCBidWlsZCB0aW1lLlxuICpcbiAqICAgICAtIEJ1aWxkIGV2ZW50cyBjYXJyeSBvbmx5IGBzdGFnZUlkYCArIHN0cnVjdHVyYWwgZmllbGRzLiBOb1xuICogICAgICAgZXhlY3V0aW9uIGluZGV4LCBubyBpdGVyYXRpb24sIG5vIHNuYXBzaG90LlxuICpcbiAqICAgICAtIFNvbWUgZXZlbnRzIGhhdmUgbm8gYW5hbG9nIGFjcm9zcyBwaGFzZXM6IGBvblBhdXNlYCAvXG4gKiAgICAgICBgb25SZXN1bWVgIC8gYG9uRXJyb3JgIC8gYG9uUnVuU3RhcnRgIGFyZSBydW50aW1lLW9ubHk7XG4gKiAgICAgICBgb25EZWNpZGVyQ29tcGxldGVgIC8gYG9uU3RhZ2VBZGRlZGAgYXJlIGJ1aWxkLW9ubHkuXG4gKlxuICogICBBIHNpbmdsZSBgRmxvd1JlY29yZGVyYCB3aXRoIGBwaGFzZTogJ3N0YXRpYycgfCAnZHluYW1pYydgXG4gKiAgIGRpc2NyaW1pbmF0b3Igd291bGQgZm9yY2UgZXZlcnkgY29uc3VtZXIgdG8gd3JpdGVcbiAqICAgYGlmIChlLnBoYXNlID09PSAnc3RhdGljJykgLi4uYCBicmFuY2hlcyBhbmQgd291bGQgZXJhc2UgdGhlXG4gKiAgIGxlYXN0LXByaXZpbGVnZSBib3VuZGFyeSAoYSBzdGF0aWMtb25seSBjb25zdW1lciBzaG91bGQgTk9UXG4gKiAgIGFjY2lkZW50YWxseSBvYnNlcnZlIHJ1bnRpbWUgZGF0YSDigJQgZS5nLiwgYSBwdWJsaWMgZG9jcyBzaXRlXG4gKiAgIHJlbmRlcmluZyBjaGFydCB0b3BvbG9neSBtdXN0IG5vdCBzZWUgc2NvcGUgdmFsdWVzKS5cbiAqXG4gKiAgIFR3byBpbnRlcmZhY2VzLCBzYW1lIG1lbnRhbCBtb2RlbCwgY2xlYW4gc2VwYXJhdGlvbi4gVHdvXG4gKiAgIHJlZ2lzdHJhdGlvbiBzaXRlcyBzaGlwIHRvZGF5IChwaWNrIHdoaWNoZXZlciBmaXRzIHlvdXIgY2FsbFxuICogICBzaXRlKTpcbiAqXG4gKiAgICAgMS4gKipPcHRpb25zLWJhZyoqIChwcmVmZXJyZWQgd2hlbiB0aGUgcmVjb3JkZXIgc2V0IGlzIGtub3duXG4gKiAgICAgICAgYXQgY29uc3RydWN0aW9uIHRpbWUg4oCUIHJlZ2lzdGVycyBCRUZPUkUgYHN0YXJ0KClgIHNvIGV2ZW5cbiAqICAgICAgICB0aGUgc2VlZCBldmVudCBmaXJlcyB0aHJvdWdoIHRoZSBub3JtYWwgZGlzcGF0Y2hlciBmYW4tb3V0KTpcbiAqICAgICAgICBgYGB0c1xuICogICAgICAgIGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcsIHsgc3RydWN0dXJlUmVjb3JkZXJzOiBbcmVjXSB9KVxuICogICAgICAgICAgLmFkZEZ1bmN0aW9uKCdhJywgZm5BLCAnYScpLmJ1aWxkKCk7XG4gKiAgICAgICAgYGBgXG4gKlxuICogICAgIDIuICoqRmx1ZW50KiogKHByZWZlcnJlZCB3aGVuIGF0dGFjaCBpcyBjb25kaXRpb25hbCwgbGF0ZSwgb3JcbiAqICAgICAgICBpbiBhIGNoYWluIGJ1aWxkZXIg4oCUIHRoZSBqdXN0LWF0dGFjaGVkIHJlY29yZGVyIGdldHMgYVxuICogICAgICAgIG9uZS10aW1lIHNlZWQgcmVwbGF5IHNvIGl0IG9ic2VydmVzIHRoZSByb290IHN0YWdlKTpcbiAqICAgICAgICBgYGB0c1xuICogICAgICAgIGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcpXG4gKiAgICAgICAgICAuYXR0YWNoU3RydWN0dXJlUmVjb3JkZXIocmVjKVxuICogICAgICAgICAgLmFkZEZ1bmN0aW9uKCdhJywgZm5BLCAnYScpLmJ1aWxkKCk7XG4gKiAgICAgICAgYGBgXG4gKlxuICogICBCb3RoIGRlbGl2ZXIgdGhlIHNhbWUgZXZlbnQgc3RyZWFtIHRvIHRoZSBzYW1lIHJlY29yZGVyLiBTZWUgdGhlXG4gKiAgIGBAZXhhbXBsZWAgYmxvY2sgYmVsb3cgZm9yIGEgZnVsbHktZmxlc2hlZC1vdXQgaW1wbGVtZW50YXRpb24uXG4gKlxuICogTGlmZWN5Y2xlICsgb3JkZXJpbmcgaW52YXJpYW50c1xuICog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gKiAgIC0gRmlyZXMgU1lOQ0hST05PVVNMWSBkdXJpbmcgYnVpbGRlciBjaGFpbiBjYWxscyAoYW5kIGR1cmluZ1xuICogICAgIGAuYnVpbGQoKWAgZm9yIHRoZSB0ZXJtaW5hbCBub2RlKSBhdCB0aGUgbmF0dXJhbCBtb21lbnQgZWFjaFxuICogICAgIHNwZWMgbXV0YXRpb24gY29tcGxldGVzLlxuICogICAtIGBvblN0YWdlQWRkZWQoQSlgIGFuZCBgb25TdGFnZUFkZGVkKEIpYCBmaXJlIEJFRk9SRSBhbnlcbiAqICAgICBgb25FZGdlQWRkZWQoe2Zyb206IEEsIHRvOiBCfSlgIOKAlCBlbmRwb2ludCByZWdpc3RyYXRpb25cbiAqICAgICBoYXBwZW5zIGJlZm9yZSBlZGdlIHdpcmluZy5cbiAqICAgLSBgb25EZWNpZGVyQ29tcGxldGUoRClgIGZpcmVzIGF0IHN1Yi1idWlsZGVyIGAuZW5kKClgIHRpbWUsIEFGVEVSXG4gKiAgICAgZXZlcnkgY2hpbGQncyBgb25TdGFnZUFkZGVkYCBhbmQgZXZlcnkgYG9uRWRnZUFkZGVkKHtmcm9tOiBELFxuICogICAgIHRvOiBjaGlsZH0pYC4gTWFya3MgdGhlIGRlY2lkZXIgYXMgbm8tZnVydGhlci1tdXRhdGlvbi5cbiAqICAgLSBgb25TdWJmbG93TW91bnRlZCh7c3ViZmxvd0lkfSlgIGZpcmVzIG9uY2UgcGVyIG1vdW50LlxuICogICAgICoqTU9VTlQtT05MWSoqOiBwYXJlbnQgcmVjb3JkZXJzIGRvIE5PVCByZWNlaXZlIGEgcmVwbGF5IG9mXG4gKiAgICAgdGhlIHN1YmZsb3cncyBvd24gaW50ZXJuYWwgc3RydWN0dXJlIGV2ZW50cyAodGhvc2UgZmlyZWRcbiAqICAgICBkdXJpbmcgdGhlIHN1YmZsb3cncyBvd24gYC5idWlsZCgpYCkuIE1hdGNoZXMgdGhlIHJ1bnRpbWVcbiAqICAgICBgb25TdWJmbG93RW50cnlgIHNlbWFudGljcyDigJQgY29tcG9zaXRpb24gb3ZlciByZXBsYXkuXG4gKlxuICogRXJyb3IgaXNvbGF0aW9uIChtYXRjaGVzIEZsb3dSZWNvcmRlciBjb250cmFjdClcbiAqIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICogICAtIEEgdGhyb3dpbmcgaGFuZGxlciBpcyBjYXVnaHQsIGxvZ2dlZCB2aWEgYGlzRGV2TW9kZSgpYCB3YXJuaW5nLFxuICogICAgIGFuZCBhY2N1bXVsYXRlZCBvbiBgYnVpbGRlci5nZXRTdHJ1Y3R1cmVCdWlsZEVycm9ycygpYCBmb3JcbiAqICAgICBwb3N0LWhvYyBpbnNwZWN0aW9uLlxuICogICAtIFN1YnNlcXVlbnQgcmVjb3JkZXJzICsgc3Vic2VxdWVudCBldmVudHMgZmlyZSBub3JtYWxseTsgb25lXG4gKiAgICAgbWlzYmVoYXZpbmcgcmVjb3JkZXIgY2Fubm90IFRIUk9XIGl0cyB3YXkgaW50byBibG9ja2luZ1xuICogICAgIGNvbnN0cnVjdGlvbi5cbiAqICAgLSBUaGUgZXJyb3JzW10gYWNjdW11bGF0b3IgaXMgc29mdC1jYXBwZWQgKH4xMDAgZW50cmllcykgd2l0aCBhXG4gKiAgICAgYF9fdHJ1bmNhdGVkX19gIHNlbnRpbmVsIHJlY29yZCBvbmNlIHRoZSBjYXAgaXMgaGl0LCB0byBwcmV2ZW50XG4gKiAgICAgdW5ib3VuZGVkIGdyb3d0aCBvbiBjaGF0dHkgYnJva2VuIHJlY29yZGVycy5cbiAqICAgLSBOb3RlOiB0aHJvdyBpc29sYXRpb24gZG9lcyBOT1QgZGVmZW5kIGFnYWluc3QgYSBoYW5kbGVyIHRoYXRcbiAqICAgICBzdWNjZWVkcyBhdCBydW50aW1lIGJ1dCBtdXRhdGVzIGBldmVudC5zcGVjYCB0byBjb3JydXB0IHRoZVxuICogICAgIGNoYXJ0LiBTZWUgXCJTcGVjIG11dGF0aW9uXCIgYmVsb3cuXG4gKlxuICogU3BlYyBtdXRhdGlvbiDigJQgcmVhZG9ubHktYnktY29udHJhY3QgKE5PVCBydW50aW1lLWVuZm9yY2VkKVxuICog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gKiAgIC0gRXZlbnQgcGF5bG9hZHMgcGFzcyBzcGVjIHJlZmVyZW5jZXMgd2hlcmUgdXNlZnVsIChlLmcuLCBgc3BlY2BcbiAqICAgICBvbiBgb25TdGFnZUFkZGVkYCkuIEV2ZXJ5IGZpZWxkIG9uIGV2ZXJ5IGV2ZW50IHBheWxvYWQgaXNcbiAqICAgICBtYXJrZWQgYHJlYWRvbmx5YCBpbiBUeXBlU2NyaXB0IOKAlCB0aGUgdHlwZSBzeXN0ZW0gc2lnbmFsc1xuICogICAgIGNvbnN1bWVyIGludGVudCBhdCBhdXRob3IgdGltZS5cbiAqICAgLSBUaGVyZSBpcyBOTyBydW50aW1lIGZyZWV6ZS4gVGhlIGJ1aWxkZXIgZmlyZXMgYG9uU3RhZ2VBZGRlZGBcbiAqICAgICBJTU1FRElBVEVMWSB3aGVuIGEgc3BlYyBub2RlIGlzIGFkZGVkLCBCRUZPUkUgdGhlIGJ1aWxkZXJcbiAqICAgICB3aXJlcyB0aGF0IG5vZGUncyBgLm5leHRgL2AuY2hpbGRyZW5gL2AubG9vcFRhcmdldGAgaW4gdGhlXG4gKiAgICAgc3Vic2VxdWVudCBgYWRkWGAgY2FsbC4gRnJlZXppbmcgaGVyZSB3b3VsZCBicmVhayB0aGVcbiAqICAgICBidWlsZGVyJ3Mgb3duIHN1YnNlcXVlbnQgbXV0YXRpb24uXG4gKiAgIC0gSGFuZGxlciBtdXRhdGlvbiBvZiBgZXZlbnQuc3BlY2AgaXMgRE9DVU1FTlRFRCBVTkRFRklORURcbiAqICAgICBCRUhBVklPUiDigJQgaXQgd2lsbCBzdWNjZWVkIGF0IHJ1bnRpbWUsIGJ1dCBpcyBub3Qgc3VwcG9ydGVkXG4gKiAgICAgYW5kIGRvd25zdHJlYW0gY29uc3VtZXJzIG1heSBicmVhay4gU3BlY2lmaWNhbGx5LCBtdXRhdGluZ1xuICogICAgIGBldmVudC5zcGVjLmZuYCwgYGV2ZW50LnNwZWMuaWRgLCBvciBgZXZlbnQuc3BlYy5jaGlsZHJlbmBcbiAqICAgICBjYW4gY29ycnVwdCBzdWJzZXF1ZW50IHJ1bnRpbWUgYmVoYXZpb3Igb2YgdGhlIGNoYXJ0LlxuICogICAtICoqVHJ1c3QgbW9kZWwqKjogYXR0YWNoIE9OTFkgcmVjb3JkZXJzIGZyb20gdHJ1c3RlZCBjb2RlIHBhdGhzLlxuICogICAgIEEgaG9zdGlsZSBvciBidWdneSByZWNvcmRlciBjYW4gZWZmZWN0aXZlbHkgc3Vic3RpdHV0ZSBzdGFnZVxuICogICAgIGZ1bmN0aW9ucyBvciByZXdpcmUgdGhlIGNoYXJ0IHN0cnVjdHVyZS4gVGhlIGByZWFkb25seWBcbiAqICAgICBtYXJrZXJzIGNhbm5vdCBkZWZlbmQgYWdhaW5zdCBpbnRlbnRpb25hbCBtdXRhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNsYXNzIFRyYWNlU3RydWN0dXJlUmVjb3JkZXIgaW1wbGVtZW50cyBTdHJ1Y3R1cmVSZWNvcmRlciB7XG4gKiAgIHJlYWRvbmx5IGlkID0gJ3RyYWNlLXN0YXRpYyc7XG4gKiAgIG5vZGVzOiBYeWZsb3dOb2RlW10gPSBbXTtcbiAqICAgZWRnZXM6IFh5Zmxvd0VkZ2VbXSA9IFtdO1xuICpcbiAqICAgb25TdGFnZUFkZGVkKGUpIHtcbiAqICAgICAvLyBOb2RlIHJvbGU6ICdzdGFnZScgaXMgdGhlIGluaXRpYWwgdHlwZS4gSWYgb3V0Z29pbmcgZWRnZXNcbiAqICAgICAvLyBhcnJpdmUgd2l0aCBraW5kICdmb3JrLWJyYW5jaCcgLyAnZGVjaXNpb24tYnJhbmNoJyB0aGUgbm9kZVxuICogICAgIC8vIGlzIGZ1bmN0aW9uaW5nIGFzIGEgZm9yay9kZWNpZGVyIOKAlCBkZXJpdmUgdGhlIHZpc3VhbCBzdHlsZVxuICogICAgIC8vIGZyb20gdGhvc2UgZWRnZXMsIG5vdCBmcm9tIGBlLnR5cGVgIGFsb25lLlxuICogICAgIHRoaXMubm9kZXMucHVzaCh7IGlkOiBlLnN0YWdlSWQsIHR5cGU6ICdsZW5zU3RhZ2UnLCBkYXRhOiB7IGxhYmVsOiBlLm5hbWUgfSB9KTtcbiAqICAgfVxuICogICBvbkVkZ2VBZGRlZChlKSB7XG4gKiAgICAgdGhpcy5lZGdlcy5wdXNoKHsgaWQ6IGAke2UuZnJvbX0tPiR7ZS50b31gLCBzb3VyY2U6IGUuZnJvbSwgdGFyZ2V0OiBlLnRvIH0pO1xuICogICB9XG4gKiAgIG9uU3ViZmxvd01vdW50ZWQoZSkge1xuICogICAgIHRoaXMubm9kZXMucHVzaCh7IGlkOiBlLnN1YmZsb3dJZCwgdHlwZTogJ3N1YmZsb3cnLCBkYXRhOiB7IGxhYmVsOiBlLnN1YmZsb3dOYW1lIH0gfSk7XG4gKiAgIH1cbiAqICAgb25EZWNpZGVyQ29tcGxldGUoZSkge1xuICogICAgIC8vIE9wdGlvbmFsOiBmaW5hbGl6ZSBub2RlIHN0eWxpbmcgbm93IHRoYXQgYnJhbmNoIGxpc3QgaXMgc2VhbGVkLlxuICogICB9XG4gKiB9XG4gKlxuICogLy8gUmVnaXN0cmF0aW9uIG9wdGlvbiBBIOKAlCBvcHRpb25zLWJhZyAocHJlZmVycmVkIHdoZW4gcmVjb3JkZXJzXG4gKiAvLyBhcmUga25vd24gdXAgZnJvbnQ7IGF0dGFjaGVzIEJFRk9SRSB0aGUgc2VlZCBldmVudCBmaXJlcyk6XG4gKiBjb25zdCByZWMgPSBuZXcgVHJhY2VTdHJ1Y3R1cmVSZWNvcmRlcigpO1xuICogY29uc3QgYnVpbGRlciA9IGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcsIHtcbiAqICAgc3RydWN0dXJlUmVjb3JkZXJzOiBbcmVjXSxcbiAqIH0pLmFkZEZ1bmN0aW9uKCdhJywgZm5BLCAnYScpO1xuICogY29uc3QgY2hhcnQgPSBidWlsZGVyLmJ1aWxkKCk7XG4gKlxuICogLy8gUmVnaXN0cmF0aW9uIG9wdGlvbiBCIOKAlCBmbHVlbnQgY2hhaW4gKHByZWZlcnJlZCBmb3IgY29uZGl0aW9uYWxcbiAqIC8vIG9yIGxhdGUgYXR0YWNoOyB0aGUganVzdC1hdHRhY2hlZCByZWNvcmRlciBnZXRzIGEgc2VlZCByZXBsYXkpOlxuICogY29uc3QgcmVjMiA9IG5ldyBUcmFjZVN0cnVjdHVyZVJlY29yZGVyKCk7XG4gKiBjb25zdCBidWlsZGVyMiA9IGZsb3dDaGFydCgnc2VlZCcsIGZuLCAnc2VlZCcpXG4gKiAgIC5hdHRhY2hTdHJ1Y3R1cmVSZWNvcmRlcihyZWMyKVxuICogICAuYWRkRnVuY3Rpb24oJ2EnLCBmbkEsICdhJyk7XG4gKlxuICogLy8gSW5zcGVjdCBhbnkgcmVjb3JkZXIgZXJyb3JzIChjYWxsIG9uIHRoZSBCVUlMREVSLCBub3QgdGhlIGNoYXJ0KTpcbiAqIGNvbnN0IGVycm9ycyA9IGJ1aWxkZXIuZ2V0U3RydWN0dXJlQnVpbGRFcnJvcnMoKTtcbiAqXG4gKiA8UmVhY3RGbG93IG5vZGVzPXtyZWMubm9kZXN9IGVkZ2VzPXtyZWMuZWRnZXN9IC8+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydFNwZWMsIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBFdmVudCBwYXlsb2FkIHR5cGVzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqXG4gKiBFdmVudCBwYXlsb2FkIGZvciBgU3RydWN0dXJlUmVjb3JkZXIub25TdGFnZUFkZGVkYC4gRmlyZXMgZm9yIGV2ZXJ5XG4gKiBzcGVjIG5vZGUgYWRkZWQgdG8gdGhlIGNoYXJ0LCBpbmNsdWRpbmcgdGhlIHNlZWQgKGFkZGVkIHZpYVxuICogYGZsb3dDaGFydCgpYCBmYWN0b3J5KSBhbmQgc3ViZmxvdyBtb3VudCBub2Rlcy4gRXhjbHVkZXMgc3ludGhldGljXG4gKiBsb29wLXJlZmVyZW5jZSBub2RlcyAodGhvc2UgY2FycnkgYGlzTG9vcFJlZmVyZW5jZTogdHJ1ZWAgb24gdGhlXG4gKiBzcGVjOyBjb25zdW1lcnMgc2VlIHRoZW0gdmlhIHRoZSBzZXBhcmF0ZSBgb25Mb29wRWRnZUFkZGVkYCBldmVudFxuICogaW5zdGVhZCBvZiBhcyBmcmVzaCBzdGFnZXMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cnVjdHVyZVN0YWdlQWRkZWRFdmVudCB7XG4gIC8qKlxuICAgKiBTdGFibGUgaWRlbnRpZmllciBmb3IgdGhpcyBub2RlLiBBVCBFVkVOVCBGSVJFIFRJTUUgdGhpcyBpcyB0aGVcbiAgICogYnVpbGRlcidzIExPQ0FMIGZvcm0gKG5vIHN1YmZsb3cgcHJlZml4IOKAlCB0aGUgcHJlZml4IGlzIGFwcGxpZWRcbiAgICogbGF0ZXIgYnkgYF9wcmVmaXhOb2RlVHJlZWAgd2hlbiB0aGlzIGJ1aWxkZXIgaXMgbW91bnRlZCBhcyBhXG4gICAqIHN1YmZsb3cgaW50byBhIHBhcmVudCkuXG4gICAqXG4gICAqIE5vdGU6IGBzcGVjLmlkYCBpcyBhIExJVkUgcmVmZXJlbmNlLiBJZiB5b3UgcmVhZCBpdCBBRlRFUiB0aGlzXG4gICAqIGNoYXJ0IGhhcyBiZWVuIG1vdW50ZWQgYXMgYSBzdWJmbG93LCBpdCBtYXkgaGF2ZSBiZWVuIHJld3JpdHRlblxuICAgKiB0byB0aGUgRlVMTCBwcmVmaXhlZCBmb3JtLiBVc2UgYHNwbGl0U3RhZ2VJZChzcGVjLmlkKWAgZnJvbVxuICAgKiBgZm9vdHByaW50anMvdHJhY2VgIHRvIGRlY29tcG9zZSBpdCBiYWNrIGludG8gbG9jYWwgKyBzdWJmbG93UGF0aC5cbiAgICpcbiAgICogQ29ycmVsYXRpbmcgd2l0aCBydW50aW1lIGV2ZW50czpcbiAgICogICAtIFNhbWUgYnVpbGRlciAobm8gbW91bnQpIOKGklxuICAgKiAgICAgYGV2ZW50LnN0YWdlSWQgPT09IHBhcnNlUnVudGltZVN0YWdlSWQocnVudGltZSkuc3RhZ2VJZGBcbiAgICogICAtIFRoaXMgYnVpbGRlciBtb3VudGVkIGFzIHN1YmZsb3cg4oaSIHVzZSBgc3BsaXRTdGFnZUlkYCBvbiB0aGVcbiAgICogICAgIHByZWZpeGVkIGZvcm0gKG9yIGBwYXJzZVJ1bnRpbWVTdGFnZUlkYCBvbiB0aGUgZnVsbFxuICAgKiAgICAgcnVudGltZVN0YWdlSWQpIGJlZm9yZSBjb21wYXJpbmcuXG4gICAqL1xuICByZWFkb25seSBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhlIG5vZGUuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFNwZWMgbm9kZSBgdHlwZWAuIExldHMgcmVjb3JkZXJzIGJyYW5jaCBvbiBzdGFnZSB2cyBkZWNpZGVyIHZzXG4gICAqICBmb3JrIHZzIHN1YmZsb3cgd2l0aG91dCByZS1kZXJpdmluZyBmcm9tIG90aGVyIGZpZWxkcy4gKi9cbiAgcmVhZG9ubHkgdHlwZTogTm9uTnVsbGFibGU8Rmxvd0NoYXJ0U3BlY1sndHlwZSddPjtcbiAgLyoqIFRydWUgZm9yIG5vZGVzIGFkZGVkIHZpYSBgYWRkUGF1c2FibGVGdW5jdGlvbigpYCDigJQgdXNlZnVsIGZvclxuICAgKiAgdmlzdWFsaXNlcnMgdGhhdCB3YW50IHRvIG1hcmsgc3RhZ2VzIHRoYXQgY2FuIHBhdXNlIGV4ZWN1dGlvbi4gKi9cbiAgcmVhZG9ubHkgaXNQYXVzYWJsZT86IGJvb2xlYW47XG4gIC8qKiBMaXZlIHJlZmVyZW5jZSB0byB0aGUgZnVsbCBzcGVjIG5vZGUsIGZvciBoYW5kbGVycyB0aGF0IHdhbnRcbiAgICogIGRldGFpbHMgYmV5b25kIHRoZSBkaXNjcmltaW5hdG9yIGZpZWxkcyBhYm92ZS4gTVVTVCBOT1QgYmVcbiAgICogIG11dGF0ZWQgYnkgdGhlIGhhbmRsZXIg4oCUIHJlYWRvbmx5IGlzIHR5cGUtbGV2ZWwgaW50ZW50OyBub1xuICAgKiAgcnVudGltZSBmcmVlemUuIFNlZSBcIlNwZWMgbXV0YXRpb25cIiBpbiB0aGUgZmlsZSBoZWFkZXIgZm9yIHRoZVxuICAgKiAgdHJ1c3QtbW9kZWwgY2F2ZWF0cy4gKi9cbiAgcmVhZG9ubHkgc3BlYzogRmxvd0NoYXJ0U3BlYztcbn1cblxuLyoqIEVkZ2Uga2luZHMgdGhlIGJ1aWxkZXIgcHJvZHVjZXMgYXQgc3RydWN0dXJhbCB0aW1lLiBNYXRjaGVzIHRoZVxuICogIGZvb3RwcmludGpzIGNvbnRyb2wtZmxvdyB2b2NhYnVsYXJ5IHVzZWQgYXQgcnVudGltZS5cbiAqXG4gKiAgV2h5IG5vIGBzdWJmbG93LWVudHJ5YCBoZXJlOiBzdWJmbG93IG1vdW50cyB1c2UgdGhlIGxpZmVjeWNsZVxuICogIGV2ZW50IGBvblN1YmZsb3dNb3VudGVkYCAobm90IGFuIGVkZ2UgZXZlbnQpLiBJZiBhIGZ1dHVyZSB1c2UgY2FzZVxuICogIG5lZWRzIHRoZSBwYXJlbnTihpJzdWJmbG93LXJvb3QgZWRnZSBhcyBhIGRpc3RpbmN0IGtpbmQsIGl0J2xsIGJlXG4gKiAgYWRkZWQgdGhlbiDigJQgWUFHTkkgbm93IChQYW5lbCAzLCBMNy4yIHJldmlldykuICovXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVFZGdlS2luZCA9XG4gIHwgJ25leHQnIC8vIGxpbmVhciBjaGFpbjogcHJldi5uZXh0ID0gY3VyclxuICB8ICdmb3JrLWJyYW5jaCcgLy8gZm9yayBwYXJlbnQg4oaSIHBhcmFsbGVsIGNoaWxkXG4gIHwgJ2RlY2lzaW9uLWJyYW5jaCc7IC8vIGRlY2lkZXIg4oaSIGJyYW5jaCBjaGlsZFxuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGBTdHJ1Y3R1cmVSZWNvcmRlci5vbkVkZ2VBZGRlZGAuIEZpcmVzIHdoZW5ldmVyXG4gKiB0aGUgYnVpbGRlciB3aXJlcyBhbiBvdXRnb2luZyBlZGdlIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlci4gQm90aFxuICogZW5kcG9pbnRzIGhhdmUgYWxyZWFkeSBiZWVuIGFubm91bmNlZCB2aWEgYG9uU3RhZ2VBZGRlZGAgYnkgdGhlXG4gKiB0aW1lIHRoaXMgZmlyZXMuXG4gKlxuICogTG9vcCBiYWNrLWVkZ2VzIGhhdmUgdGhlaXIgT1dOIGV2ZW50IChgb25Mb29wRWRnZUFkZGVkYCkgc29cbiAqIGNvbnN1bWVycyBjYW4gdGhlbWUgdGhlbSBkaXN0aW5jdGx5IGFuZCBzbyBidWlsZC10aW1lIGV2ZW50cyBzdGF5XG4gKiBmcmVlIG9mIHRoZSBydW50aW1lLW9ubHkgYGl0ZXJhdGlvbmAgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlRWRnZUFkZGVkRXZlbnQge1xuICByZWFkb25seSBmcm9tOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmQ6IFN0cnVjdHVyZUVkZ2VLaW5kO1xuICAvKiogT3B0aW9uYWwgaHVtYW4tcmVhZGFibGUgbGFiZWwg4oCUIHVzZWQgdG9kYXkgZm9yIGRlY2lkZXIgYnJhbmNoXG4gICAqICBrZXlzIChlLmcuLCBgJ2xvdydgLCBgJ2hpZ2gnYCwgYCdoaWdoIChkZWZhdWx0KSdgKSBhbmQgcGFyYWxsZWxcbiAgICogIGJyYW5jaCBpZHMuICovXG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGBTdHJ1Y3R1cmVSZWNvcmRlci5vbkxvb3BFZGdlQWRkZWRgLiBGaXJlcyB3aGVuXG4gKiBgLmxvb3BUbyh0YXJnZXQpYCBpbnN0YWxscyBhIGJhY2stZWRnZS4gRGlzdGluY3QgZnJvbVxuICogYG9uRWRnZUFkZGVkYCBzbyBjb25zdW1lcnMgY2FuIHRoZW1lIGJhY2stZWRnZXMgZGlmZmVyZW50bHkgYW5kXG4gKiBiZWNhdXNlIHJ1bnRpbWUgYG9uTG9vcGAgY2FycmllcyBgaXRlcmF0aW9uOiBudW1iZXJgIHdoaWNoIGhhcyBub1xuICogYnVpbGQtdGltZSBtZWFuaW5nIOKAlCBrZWVwaW5nIHRoZSBldmVudHMgc2VwYXJhdGVkIGF2b2lkcyBmb3JjaW5nXG4gKiBhbiBgaXRlcmF0aW9uPzogbnVtYmVyYCBsaWUgaW50byB0aGUgc3RydWN0dXJhbCBzaGFwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVMb29wRWRnZUFkZGVkRXZlbnQge1xuICByZWFkb25seSBmcm9tOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXZlbnQgcGF5bG9hZCBmb3IgYFN0cnVjdHVyZVJlY29yZGVyLm9uRGVjaWRlckNvbXBsZXRlYC4gRmlyZXNcbiAqIHdoZW4gYSBkZWNpZGVyIC8gc2VsZWN0b3Igc3ViLWJ1aWxkZXIgY2xvc2VzIHZpYSBgLmVuZCgpYC4gQnkgdGhlXG4gKiB0aW1lIHRoaXMgZmlyZXMgZXZlcnkgYnJhbmNoIGhhcyBiZWVuIGFubm91bmNlZCBhbmQgdGhlXG4gKiBgZGVmYXVsdEJyYW5jaGAgKGlmIHNldCB2aWEgYC5zZXREZWZhdWx0KClgKSBpcyBmaW5hbC4gTGV0c1xuICogcmVjb3JkZXJzIHRyZWF0IHRoZSBkZWNpZGVyIGFzIG5vLWZ1cnRoZXItbXV0YXRpb24gYW5kIHNuYXBzaG90XG4gKiBpdHMgYnJhbmNoIGxpc3QgYXMgZmluYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlRGVjaWRlckNvbXBsZXRlRXZlbnQge1xuICAvKiogRGVjaWRlciAvIHNlbGVjdG9yIHN0YWdlIGlkLiAqL1xuICByZWFkb25seSBkZWNpZGVyOiBzdHJpbmc7XG4gIC8qKiBTcGVjIHR5cGUgKGAnZGVjaWRlcidgIHZzIGAnc2VsZWN0b3InYCkg4oCUIGV4cG9zZWQgc28gY29uc3VtZXJzXG4gICAqICBkb24ndCBuZWVkIHRvIGxvb2sgdXAgdGhlIG9yaWdpbmFsIGBvblN0YWdlQWRkZWRgIGV2ZW50LiAqL1xuICByZWFkb25seSB0eXBlOiAnZGVjaWRlcicgfCAnc2VsZWN0b3InO1xuICAvKiogQnJhbmNoIG1lbWJlciBpZHMgaW4gZGVjbGFyYXRpb24gb3JkZXIuICovXG4gIHJlYWRvbmx5IGJyYW5jaElkczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBEZWZhdWx0IGJyYW5jaCBpZCB3aGVuIHNldCB2aWEgYC5zZXREZWZhdWx0KClgOyB1bmRlZmluZWQgd2hlblxuICAgKiAgbm8gZGVmYXVsdCBpcyBjb25maWd1cmVkIChlLmcuLCBzZWxlY3RvcnMpLiAqL1xuICByZWFkb25seSBkZWZhdWx0QnJhbmNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGBTdHJ1Y3R1cmVSZWNvcmRlci5vblN1YmZsb3dNb3VudGVkYC4gRmlyZXMgb25jZVxuICogcGVyIHN1YmZsb3cgbW91bnQgKGBhZGRTdWJGbG93Q2hhcnRgIC8gYGFkZFN1YkZsb3dDaGFydE5leHRgIGFuZFxuICogdGhlaXIgbGF6eSB2YXJpYW50cykuXG4gKlxuICogKipNT1VOVC1PTkxZIHNlbWFudGljcyoqIOKAlCB0aGUgc3ViZmxvdydzIE9XTiBzdHJ1Y3R1cmUgZXZlbnRzXG4gKiAoZXZlcnkgYG9uU3RhZ2VBZGRlZGAgLyBgb25FZGdlQWRkZWRgIGluc2lkZSB0aGUgc3ViZmxvdykgZmlyZWRcbiAqIGR1cmluZyB0aGUgc3ViZmxvdydzIG93biBgLmJ1aWxkKClgLCBiZWZvcmUgdGhlIG1vdW50LiBQYXJlbnRcbiAqIHJlY29yZGVycyBkbyBOT1QgcmVjZWl2ZSBhIHJlcGxheS4gSW5zdGVhZCwgdGhpcyBldmVudCBkZWxpdmVyc1xuICogdGhlIHN1YmZsb3cncyBmdWxsIHN0cnVjdHVyZSB2aWEgYHN1YmZsb3dTcGVjYCwgYW5kIGNvbnN1bWVycyBjYW5cbiAqIHdhbGsgaXQgdmlhIGB3YWxrU3ViZmxvd1NwZWNgIGZyb20gYGZvb3RwcmludGpzL3RyYWNlYC5cbiAqXG4gKiBUaGlzIG1hdGNoZXMgYEZsb3dSZWNvcmRlci5vblN1YmZsb3dFbnRyeWAgc2VtYW50aWNzIGF0IHJ1bnRpbWVcbiAqIChwYXJlbnRzIHNlZSB0aGUgYm91bmRhcnksIG5vdCBhIHJlcGxheSBvZiBpbnRlcm5hbHMpIGFuZFxuICogcHJlc2VydmVzIHRoZSBcIm9uZSBwdXJwb3NlIHBlciByZWNvcmRlclwiIGNvbnZlbnRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlU3ViZmxvd01vdW50ZWRFdmVudCB7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIgdGhlIHBhcmVudCBhc3NpZ25lZCBhdCBtb3VudC4gKi9cbiAgcmVhZG9ubHkgc3ViZmxvd0lkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBzdWJmbG93IG5hbWUuICovXG4gIHJlYWRvbmx5IHN1YmZsb3dOYW1lOiBzdHJpbmc7XG4gIC8qKiBNb3VudCBub2RlIGlkIGluIHRoZSBwYXJlbnQncyBjaGFydC4gKi9cbiAgcmVhZG9ubHkgcm9vdFN0YWdlSWQ6IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiB0aGUgbW91bnQgdXNlcyBsYXp5IHJlc29sdXRpb24gKGRlZmVycmVkIHN1YmZsb3dcbiAgICogIHJlc29sdXRpb24gdW50aWwgZXhlY3V0aW9uKS4gKi9cbiAgcmVhZG9ubHkgaXNMYXp5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1vdW50ZWQgc3ViZmxvdydzIGNvbXBsZXRlIHNwZWMg4oCUIHRoZSBTQU1FIE9CSkVDVFxuICAgKiAoPT09IHJlZmVyZW5jZSBlcXVhbGl0eSkgcmVhY2hhYmxlIHZpYSBgc3ViZmxvdy5idWlsZFRpbWVTdHJ1Y3R1cmVgXG4gICAqIGZvciB0aGUgRmxvd0NoYXJ0IHRoZSBjb25zdW1lciBwYXNzZWQgdG8gYGFkZFN1YkZsb3dDaGFydEJyYW5jaGAgL1xuICAgKiBgYWRkU3ViRmxvd0NoYXJ0YCAvIGBhZGRTdWJGbG93Q2hhcnROZXh0YC5cbiAgICpcbiAgICogVU5ERUZJTkVEIGZvciBsYXp5IG1vdW50cyBhdCBidWlsZCB0aW1lIChgaXNMYXp5OiB0cnVlYCkg4oCUIHRoZVxuICAgKiBzdWJmbG93J3Mgc3RydWN0dXJlIGhhc24ndCBiZWVuIHJlc29sdmVkIHlldC4gQ29uc3VtZXJzIHdhaXRpbmcgb25cbiAgICogbGF6eSBzdWJmbG93cyBoYW5kbGUgdGhlIHJ1bnRpbWUgYG9uU3ViZmxvd0VudHJ5YCBldmVudCBpbnN0ZWFkLlxuICAgKlxuICAgKiBJbW11dGFibGUgcG9zdC1idWlsZDsgY29uc3VtZXJzIE1VU1QgTk9UIG11dGF0ZS5cbiAgICpcbiAgICogQGludGVybmFsIGBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmVgIGlzIGxpYnJhcnktaW50ZXJuYWwuXG4gICAqICAgICAgICAgICBVc2UgYHdhbGtTdWJmbG93U3BlY2AgZnJvbSBgZm9vdHByaW50anMvdHJhY2VgIGZvciB0aGVcbiAgICogICAgICAgICAgIHN0YWJsZSBwdWJsaWMgY29udHJhY3QuXG4gICAqL1xuICByZWFkb25seSBzdWJmbG93U3BlYz86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcblxuICAvKipcbiAgICogTG9jYWwgbW91bnQgaWQgb2YgdGhpcyBzdWJmbG93IHdpdGhpbiBpdHMgcGFyZW50IOKAlCBlcXVhbCB0b1xuICAgKiBgc3ViZmxvd0lkYCBmb3IgdG9wLWxldmVsIG1vdW50cyAoZS5nLiBgJ2F1dGgnYCksIGNvbXBvc2VkXG4gICAqIChgJ2F1dGgvdmVyaWZ5J2ApIGZvciBuZXN0ZWQgbW91bnRzIHdob3NlIHJlY29yZGVyIGlzIGF0dGFjaGVkXG4gICAqIHRvIHRoZSBncmFuZHBhcmVudC4gTWF0Y2hlcyBydW50aW1lIGB0cmF2ZXJzYWxDb250ZXh0LnN1YmZsb3dQYXRoYFxuICAgKiBzZW1hbnRpY3Mg4oCUIE5FVkVSIHByZWZpeGVkIHdpdGggYF9fcm9vdF9fL2AuXG4gICAqL1xuICByZWFkb25seSBzdWJmbG93UGF0aDogc3RyaW5nO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFN0cnVjdHVyZVJlY29yZGVyIGludGVyZmFjZVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKlxuICogUGx1Z2dhYmxlIG9ic2VydmVyIGZvciBCVUlMRC1USU1FIGNoYXJ0IGNvbnN0cnVjdGlvbiBldmVudHMuXG4gKlxuICogQWxsIG1ldGhvZHMgYXJlIG9wdGlvbmFsIOKAlCBpbXBsZW1lbnQgb25seSB0aGUgaG9va3MgeW91IG5lZWQuXG4gKiBIYW5kbGVycyBmaXJlIFNZTkNIUk9OT1VTTFkgZHVyaW5nIGJ1aWxkZXIgb3BlcmF0aW9ucyBhbmQgYC5idWlsZCgpYC5cbiAqIEEgdGhyb3dpbmcgaGFuZGxlciBpcyBjYXVnaHQgKHNlZSBcIkVycm9yIGlzb2xhdGlvblwiIGluIHRoZSBmaWxlXG4gKiBoZWFkZXIpOyBzdWJzZXF1ZW50IGRpc3BhdGNoIGNvbnRpbnVlcy5cbiAqXG4gKiBMaWZlY3ljbGU6IGVhY2ggYFN0cnVjdHVyZVJlY29yZGVyYCBpbnN0YW5jZSBpcyByZWdpc3RlcmVkIHZpYVxuICogRUlUSEVSIHRoZSBgZmxvd0NoYXJ0KClgIG9wdGlvbnMgYmFnIChgeyBzdHJ1Y3R1cmVSZWNvcmRlcnM6IFtyZWNdIH1gKVxuICogT1IgdGhlIGZsdWVudCBgLmF0dGFjaFN0cnVjdHVyZVJlY29yZGVyKHJlYylgIGNoYWluIOKAlCBzZWUgdGhlIGZpbGVcbiAqIGhlYWRlciBmb3IgdGhlIHRyYWRlLW9mZnMuIFJlZ2lzdHJhdGlvbiBhZnRlciBgLmJ1aWxkKClgIGlzXG4gKiByZWplY3RlZCAoY2hhcnQgaXMgc2VhbGVkKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVSZWNvcmRlciB7XG4gIC8qKlxuICAgKiBTdGFibGUgaWRlbnRpZmllciDigJQgdXNlZCBieSB0aGUgZGlzcGF0Y2hlciB0byBzY29wZSBlcnJvclxuICAgKiBtZXNzYWdlcyBhbmQgdG8gc3VwcG9ydCBgZGV0YWNoKGlkKWAgbG9va3VwLlxuICAgKlxuICAgKiBDb252ZW50aW9uIChtYXRjaGVzIGBGbG93UmVjb3JkZXIuaWRgIGZyb20gQ0xBVURFLm1kKTpcbiAgICogICAtIGRvbWFpbi1wcmVmaXhlZCBrZWJhYi1jYXNlIChgJ2xlbnMtc3RydWN0dXJlJ2AsXG4gICAqICAgICBgJ2FnZW50Zm9vdHByaW50LWNvbXBvc2l0aW9uJ2AsIGAndHJhY2UtZXhwbGFpbmFibGUnYClcbiAgICogICAtIHNhbWUgaWQg4oaSIG11bHRpcGxlIHJlY29yZGVycyBjb2V4aXN0IChOT1QgZGVkdXBsaWNhdGVkIGJ5XG4gICAqICAgICBpZDsgdGhlIGRpc3BhdGNoZXIgZmlyZXMgZXZlcnkgYXR0YWNoZWQgcmVjb3JkZXIgcmVnYXJkbGVzcylcbiAgICogICAtIGBkZXRhY2goaWQpYCByZW1vdmVzIEVWRVJZIHJlY29yZGVyIHdpdGggdGhhdCBpZCDigJQgYmVcbiAgICogICAgIGludGVudGlvbmFsIGFib3V0IHJldXNlIGlmIHlvdSByZWx5IG9uIHNlbGVjdGl2ZSBkZXRhY2hcbiAgICpcbiAgICogQ2hvb3NlIGEgc3RhYmxlIGlkIGF0IG1vZHVsZSBsb2FkIGFuZCBkb24ndCByYW5kb21pc2UgaXQgYWNyb3NzXG4gICAqIHJ1bnMg4oCUIGl0IGxhbmRzIGluIGBTdHJ1Y3R1cmVCdWlsZEVycm9yLnJlY29yZGVySWRgIHNvIGRlYnVnXG4gICAqIG91dHB1dCBpcyBncmVwcGFibGUuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIG9uU3RhZ2VBZGRlZD8oZXZlbnQ6IFN0cnVjdHVyZVN0YWdlQWRkZWRFdmVudCk6IHZvaWQ7XG4gIG9uRWRnZUFkZGVkPyhldmVudDogU3RydWN0dXJlRWRnZUFkZGVkRXZlbnQpOiB2b2lkO1xuICBvbkxvb3BFZGdlQWRkZWQ/KGV2ZW50OiBTdHJ1Y3R1cmVMb29wRWRnZUFkZGVkRXZlbnQpOiB2b2lkO1xuICBvbkRlY2lkZXJDb21wbGV0ZT8oZXZlbnQ6IFN0cnVjdHVyZURlY2lkZXJDb21wbGV0ZUV2ZW50KTogdm9pZDtcbiAgb25TdWJmbG93TW91bnRlZD8oZXZlbnQ6IFN0cnVjdHVyZVN1YmZsb3dNb3VudGVkRXZlbnQpOiB2b2lkO1xufVxuIl19
|