footprintjs 4.17.2 → 5.0.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 +39 -1
- package/dist/advanced.js +1 -1
- package/dist/esm/advanced.js +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/lib/builder/FlowChartBuilder.js +32 -7
- package/dist/esm/lib/decide/decide.js +9 -9
- package/dist/esm/lib/decide/evidence.js +2 -2
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +3 -3
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +3 -3
- package/dist/esm/lib/engine/narrative/types.js +1 -1
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +20 -3
- package/dist/esm/lib/memory/StageContext.js +3 -3
- package/dist/esm/lib/memory/backtrack.js +1 -1
- package/dist/esm/lib/reactive/createTypedScope.js +5 -5
- package/dist/esm/lib/reactive/types.js +7 -7
- package/dist/esm/lib/recorder/BoundaryStateStore.js +167 -0
- package/dist/esm/lib/recorder/BoundaryStateTracker.js +4 -4
- package/dist/esm/lib/recorder/CombinedRecorder.js +9 -9
- package/dist/esm/lib/recorder/CommitRangeIndex.js +207 -0
- package/dist/esm/lib/recorder/CompositeRecorder.js +6 -6
- package/dist/esm/lib/recorder/EmitRecorder.js +3 -3
- package/dist/esm/lib/recorder/InOutRecorder.js +1 -1
- package/dist/esm/lib/recorder/KeyedStore.js +113 -0
- package/dist/esm/lib/recorder/QualityRecorder.js +2 -2
- package/dist/esm/lib/recorder/SequenceRecorder.js +2 -2
- package/dist/esm/lib/recorder/SequenceStore.js +195 -0
- package/dist/esm/lib/recorder/TopologyRecorder.js +1 -1
- package/dist/esm/lib/recorder/index.js +13 -3
- package/dist/esm/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/esm/lib/runner/FlowChartExecutor.js +72 -28
- package/dist/esm/lib/runner/RunContext.js +2 -2
- package/dist/esm/lib/runner/RunnableChart.js +1 -1
- package/dist/esm/lib/runner/runId.js +65 -0
- package/dist/esm/lib/scope/ScopeFacade.js +6 -6
- package/dist/esm/lib/scope/index.js +1 -1
- package/dist/esm/lib/scope/recorders/DebugRecorder.js +4 -4
- package/dist/esm/lib/scope/recorders/MetricRecorder.js +2 -2
- package/dist/esm/lib/scope/recorders/index.js +1 -1
- package/dist/esm/lib/scope/types.js +1 -1
- package/dist/esm/recorders.js +1 -1
- package/dist/esm/trace.js +13 -1
- package/dist/index.js +3 -3
- package/dist/lib/builder/FlowChartBuilder.js +32 -7
- package/dist/lib/decide/decide.js +9 -9
- package/dist/lib/decide/evidence.js +2 -2
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +3 -3
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +3 -3
- package/dist/lib/engine/narrative/types.js +1 -1
- package/dist/lib/engine/traversal/FlowchartTraverser.js +20 -3
- package/dist/lib/memory/StageContext.js +3 -3
- package/dist/lib/memory/backtrack.js +1 -1
- package/dist/lib/reactive/createTypedScope.js +5 -5
- package/dist/lib/reactive/types.js +7 -7
- package/dist/lib/recorder/BoundaryStateStore.js +171 -0
- package/dist/lib/recorder/BoundaryStateTracker.js +4 -4
- package/dist/lib/recorder/CombinedRecorder.js +9 -9
- package/dist/lib/recorder/CommitRangeIndex.js +211 -0
- package/dist/lib/recorder/CompositeRecorder.js +6 -6
- package/dist/lib/recorder/EmitRecorder.js +3 -3
- package/dist/lib/recorder/InOutRecorder.js +1 -1
- package/dist/lib/recorder/KeyedStore.js +117 -0
- package/dist/lib/recorder/QualityRecorder.js +2 -2
- package/dist/lib/recorder/SequenceRecorder.js +2 -2
- package/dist/lib/recorder/SequenceStore.js +199 -0
- package/dist/lib/recorder/TopologyRecorder.js +1 -1
- package/dist/lib/recorder/index.js +19 -6
- package/dist/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/lib/runner/FlowChartExecutor.js +72 -28
- package/dist/lib/runner/RunContext.js +2 -2
- package/dist/lib/runner/RunnableChart.js +1 -1
- package/dist/lib/runner/runId.js +70 -0
- package/dist/lib/scope/ScopeFacade.js +6 -6
- package/dist/lib/scope/index.js +1 -1
- package/dist/lib/scope/recorders/DebugRecorder.js +4 -4
- package/dist/lib/scope/recorders/MetricRecorder.js +2 -2
- package/dist/lib/scope/recorders/index.js +1 -1
- package/dist/lib/scope/types.js +1 -1
- package/dist/recorders.js +1 -1
- package/dist/trace.js +18 -2
- package/dist/types/index.d.ts +4 -4
- package/dist/types/lib/decide/evidence.d.ts +3 -3
- package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +1 -1
- package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +2 -2
- package/dist/types/lib/engine/narrative/types.d.ts +19 -2
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +11 -0
- package/dist/types/lib/memory/StageContext.d.ts +2 -2
- package/dist/types/lib/memory/backtrack.d.ts +1 -1
- package/dist/types/lib/reactive/types.d.ts +7 -7
- package/dist/types/lib/recorder/BoundaryStateStore.d.ts +115 -0
- package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +3 -3
- package/dist/types/lib/recorder/CombinedRecorder.d.ts +11 -11
- package/dist/types/lib/recorder/CommitRangeIndex.d.ts +147 -0
- package/dist/types/lib/recorder/CompositeRecorder.d.ts +8 -8
- package/dist/types/lib/recorder/EmitRecorder.d.ts +2 -2
- package/dist/types/lib/recorder/InOutRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/KeyedStore.d.ts +70 -0
- package/dist/types/lib/recorder/QualityRecorder.d.ts +4 -4
- package/dist/types/lib/recorder/SequenceRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/SequenceStore.d.ts +120 -0
- package/dist/types/lib/recorder/TopologyRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/index.d.ts +5 -2
- package/dist/types/lib/runner/ExecutionRuntime.d.ts +1 -1
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +36 -14
- package/dist/types/lib/runner/RunContext.d.ts +2 -2
- package/dist/types/lib/runner/RunnableChart.d.ts +2 -2
- package/dist/types/lib/runner/runId.d.ts +45 -0
- package/dist/types/lib/scope/ScopeFacade.d.ts +4 -4
- package/dist/types/lib/scope/index.d.ts +1 -1
- package/dist/types/lib/scope/recorders/DebugRecorder.d.ts +4 -4
- package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +4 -4
- package/dist/types/lib/scope/recorders/index.d.ts +1 -1
- package/dist/types/lib/scope/types.d.ts +1 -1
- package/dist/types/recorders.d.ts +1 -1
- package/dist/types/trace.d.ts +5 -0
- package/package.json +1 -1
|
@@ -324,4 +324,4 @@ class TopologyRecorder {
|
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
exports.TopologyRecorder = TopologyRecorder;
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wb2xvZ3lSZWNvcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVjb3JkZXIvVG9wb2xvZ3lSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpREc7OztBQTJFSCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakI7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUFtQyxFQUFFO0lBQ3BFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRkQsNENBRUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDbEIsRUFBRSxDQUFTO0lBRUgsU0FBUyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQzVDLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDekIsS0FBSyxHQUFtQixFQUFFLENBQUM7SUFDNUMsK0VBQStFO0lBQzlELFlBQVksR0FBYSxFQUFFLENBQUM7SUFFN0M7OENBQzBDO0lBQ3pCLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQ3JFLDRFQUE0RTtJQUNwRSxlQUFlLENBQW1DO0lBQzFEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNjLHNCQUFzQixHQUFHLElBQUksR0FBRyxFQUFnRCxDQUFDO0lBRWxHLFlBQVksVUFBbUMsRUFBRTtRQUMvQyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCx5RUFBeUU7SUFFekUsY0FBYyxDQUFDLEtBQXVCO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsNkJBQTZCO1FBRXJELE1BQU0sU0FBUyxH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QUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCx3RUFBd0U7SUFDeEUsVUFBVTtRQUNSLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVTtZQUNoQixXQUFXLEVBQUUseUVBQXlFO1lBQ3RGLGtCQUFrQixFQUFFLFdBQW9CO1lBQ3hDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3pCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4UkQsNENBd1JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUb3BvbG9neVJlY29yZGVyIOKAlCBjb21wb3NpdGlvbiBncmFwaCBidWlsdCBkdXJpbmcgdHJhdmVyc2FsLlxuICpcbiAqIFRoZSBnYXAgdGhpcyBmaWxsczpcbiAqICAgZm9vdHByaW50anMgZmlyZXMgYXRvbWljIGZsb3cgZXZlbnRzIChvblN1YmZsb3dFbnRyeSwgb25Gb3JrLCBvbkRlY2lzaW9uLFxuICogICBvbkxvb3ApIGJ1dCB0aGUgYWNjdW11bGF0ZWQgKnNoYXBlKiBvZiBhIHJ1biDigJQgd2hvIG5lc3RzIGluc2lkZSB3aG9tLFxuICogICB3aGljaCBub2RlcyBhcmUgcGFyYWxsZWwgc2libGluZ3MgdnMgYnJhbmNoZXMgb2YgYSBkZWNpc2lvbiDigJQgaXMgb25seVxuICogICB2aXNpYmxlIHBvc3QtcnVuIHZpYSBgZXhlY3V0b3IuZ2V0U25hcHNob3QoKWAgdHJlZS13YWxraW5nLlxuICpcbiAqICAgU3RyZWFtaW5nIGNvbnN1bWVycyAobGl2ZSBVSXMsIGluLWZsaWdodCBkZWJ1Z2dlcnMpIHNlZSBvbmx5IHRoZSBldmVudFxuICogICBzdHJlYW0uIEV2ZXJ5IHN1Y2ggY29uc3VtZXIgaGFzIHRvIHJlYnVpbGQgc3ViZmxvdy1zdGFjayArIGZvcmstbWFwICtcbiAqICAgZGVjaXNpb24tdHJhY2tlciBmcm9tIHNjcmF0Y2gsIHVzdWFsbHkgc2xpZ2h0bHkgd3JvbmcgaW4gZGlmZmVyZW50IHdheXMuXG4gKlxuICogICBUb3BvbG9neVJlY29yZGVyIGlzIHRoZSBzdGFuZGFyZCBhY2N1bXVsYXRvcjogb25lIHN1YnNjcmlwdGlvbiB0byB0aGVcbiAqICAgdGhyZWUgcHJpbWl0aXZlIGNoYW5uZWxzLCBvbmUgbGl2ZSBncmFwaCwgcXVlcnlhYmxlIGF0IGFueSBtb21lbnQgZHVyaW5nXG4gKiAgIG9yIGFmdGVyIGEgcnVuLlxuICpcbiAqIFdoYXQgaXQgcmVjb3JkcyDigJQgVEhSRUUgbm9kZSBraW5kcyBmb3IgY29tcGxldGUgY29tcG9zaXRpb24gY292ZXJhZ2U6XG4gKiAgIDEuICdzdWJmbG93JyAgICAgICAgICDigJQgdmlhIG9uU3ViZmxvd0VudHJ5IChhIG1vdW50ZWQgc3ViZmxvdyBib3VuZGFyeSlcbiAqICAgMi4gJ2ZvcmstYnJhbmNoJyAgICAgIOKAlCB2aWEgb25Gb3JrIChvbmUgbm9kZSBwZXIgY2hpbGQsIHN5bnRoZXNpemVkKVxuICogICAzLiAnZGVjaXNpb24tYnJhbmNoJyAg4oCUIHZpYSBvbkRlY2lzaW9uICh0aGUgY2hvc2VuIGJyYW5jaCwgc3ludGhlc2l6ZWQpXG4gKlxuICogICBXaGVuIGEgZm9yay1icmFuY2ggb3IgZGVjaXNpb24tYnJhbmNoIHRhcmdldCBJUyBBTFNPIGEgc3ViZmxvdywgdGhlXG4gKiAgIHN1YnNlcXVlbnQgb25TdWJmbG93RW50cnkgY3JlYXRlcyBhIHN1YmZsb3cgQ0hJTEQgb2YgdGhlIHN5bnRoZXRpYyBub2RlLlxuICogICBUaGUgbGF5ZXJlZCBzaGFwZSBwcmVzZXJ2ZXMgYm90aCBcIndobyBicmFuY2hlZFwiIGFuZCBcIndoYXQgdGhlIGJyYW5jaCByYW4uXCJcbiAqXG4gKiAgIFBsYWluIHNlcXVlbnRpYWwgc3RhZ2VzIGFyZSBOT1Qgbm9kZXMg4oCUIHRoYXQncyBTdGFnZUNvbnRleHQncyBqb2IuXG4gKiAgIFRvcG9sb2d5IGlzIGEgZ3JhcGggb2YgY29udHJvbC1mbG93IGJyYW5jaGluZywgbm90IGEgZnVsbCBleGVjdXRpb24gdHJlZS5cbiAqXG4gKiBFZGdlczpcbiAqICAgT25lIGVkZ2UgcGVyIHRyYXZlcnNhbCB0cmFuc2l0aW9uIOKAlCBga2luZGAgbWF0Y2hlcyB0aGUgY2hpbGQnc1xuICogICBgaW5jb21pbmdLaW5kYC4gQSBjb25zdW1lciByZW5kZXJpbmcgXCJwYXJhbGxlbCBjb2x1bW5zXCIgZmlsdGVycyBlZGdlc1xuICogICB3aGVyZSBga2luZCA9PT0gJ2ZvcmstYnJhbmNoJ2Agc2hhcmluZyB0aGUgc2FtZSBgZnJvbWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IHRvcG9sb2d5UmVjb3JkZXIgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogY29uc3QgdG9wbyA9IHRvcG9sb2d5UmVjb3JkZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaENvbWJpbmVkUmVjb3JkZXIodG9wbyk7ICAvLyBhdXRvLXJvdXRlcyB0byBGbG93UmVjb3JkZXIgY2hhbm5lbFxuICpcbiAqIGF3YWl0IGV4ZWN1dG9yLnJ1bigpO1xuICpcbiAqIGNvbnN0IHsgbm9kZXMsIGVkZ2VzLCBhY3RpdmVOb2RlSWQsIHJvb3RJZCB9ID0gdG9wby5nZXRUb3BvbG9neSgpO1xuICogLy8gQ29uc3VtZXIgcXVlcmllczpcbiAqIHRvcG8uZ2V0Q2hpbGRyZW4oJ3NmLXBhcmVudCcpOyAgICAgICAgICAgICAgLy8gZGlyZWN0IGNoaWxkcmVuIChhbnkga2luZClcbiAqIHRvcG8uZ2V0QnlLaW5kKCdmb3JrLWJyYW5jaCcpOyAgICAgICAgICAgICAgLy8gYWxsIHBhcmFsbGVsIGJyYW5jaGVzXG4gKiB0b3BvLmdldFN1YmZsb3dOb2RlcygpOyAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgbW91bnRlZCBzdWJmbG93c1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBGbG93RGVjaXNpb25FdmVudCxcbiAgRmxvd0ZvcmtFdmVudCxcbiAgRmxvd0xvb3BFdmVudCxcbiAgRmxvd1JlY29yZGVyLFxuICBGbG93U3ViZmxvd0V2ZW50LFxufSBmcm9tICcuLi9lbmdpbmUvbmFycmF0aXZlL3R5cGVzLmpzJztcblxuLyoqIFRoZSBraW5kIG9mIGNvbXBvc2l0aW9uIHVuaXQgYSBub2RlIHJlcHJlc2VudHMuICovXG5leHBvcnQgdHlwZSBUb3BvbG9neU5vZGVLaW5kID0gJ3N1YmZsb3cnIHwgJ2ZvcmstYnJhbmNoJyB8ICdkZWNpc2lvbi1icmFuY2gnO1xuXG4vKiogSG93IHRoZSB0cmF2ZXJzYWwgcmVhY2hlZCB0aGlzIG5vZGUg4oCUIGRyaXZlcyBjb25zdW1lciBsYXlvdXQgZGVjaXNpb25zLiAqL1xuZXhwb3J0IHR5cGUgVG9wb2xvZ3lJbmNvbWluZ0tpbmQgPSAncm9vdCcgfCAnbmV4dCcgfCAnZm9yay1icmFuY2gnIHwgJ2RlY2lzaW9uLWJyYW5jaCcgfCAnbG9vcC1pdGVyYXRpb24nO1xuXG4vKiogQSBjb21wb3NpdGlvbi1zaWduaWZpY2FudCBwb2ludCBpbiB0aGUgZ3JhcGguICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcG9sb2d5Tm9kZSB7XG4gIC8qKiBVbmlxdWUgaWQuIFN1YmZsb3dzIHVzZSB0aGVpciBzdWJmbG93SWQgKHdpdGggYCNuYCBzdWZmaXggb24gcmUtZW50cnkpLlxuICAgKiAgU3ludGhldGljIG5vZGVzIChmb3JrLWJyYW5jaCAvIGRlY2lzaW9uLWJyYW5jaCkgdXNlXG4gICAqICBgZm9yay0ke3J1bnRpbWVTdGFnZUlkfS0ke2l9YCAvIGBkZWNpc2lvbi0ke3J1bnRpbWVTdGFnZUlkfWAgZm9ybS4gKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgLyoqIFdoYXQgdGhpcyBub2RlIHJlcHJlc2VudHMuICovXG4gIHJlYWRvbmx5IGtpbmQ6IFRvcG9sb2d5Tm9kZUtpbmQ7XG4gIC8qKiBEaXNwbGF5IG5hbWUuIEZvciBzdWJmbG93czogYEZsb3dTdWJmbG93RXZlbnQubmFtZWAuIEZvciBmb3JrLWJyYW5jaGVzOlxuICAgKiAgdGhlIGNoaWxkIG5hbWUgZnJvbSBgRmxvd0ZvcmtFdmVudC5jaGlsZHJlbmAuIEZvciBkZWNpc2lvbi1icmFuY2hlczpcbiAgICogIHRoZSBjaG9zZW4gbmFtZSBmcm9tIGBGbG93RGVjaXNpb25FdmVudC5jaG9zZW5gLiAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKiBQYXJlbnQgbm9kZSBpZC4gVW5kZWZpbmVkIHdoZW4gdGhpcyBub2RlIHNpdHMgYXQgdGhlIHJ1bidzIHRvcCBsZXZlbC4gKi9cbiAgcmVhZG9ubHkgcGFyZW50SWQ/OiBzdHJpbmc7XG4gIC8qKiBEZXB0aCBpbiB0aGUgdG9wb2xvZ3kgdHJlZSAoMCA9IHRvcC1sZXZlbCkuICovXG4gIHJlYWRvbmx5IGRlcHRoOiBudW1iZXI7XG4gIC8qKiBIb3cgdGhlIHRyYXZlcnNhbCByZWFjaGVkIHRoaXMgbm9kZS4gKi9cbiAgcmVhZG9ubHkgaW5jb21pbmdLaW5kOiBUb3BvbG9neUluY29taW5nS2luZDtcbiAgLyoqIHJ1bnRpbWVTdGFnZUlkIGF0IHRoZSBtb21lbnQgdGhlIG5vZGUgd2FzIGNyZWF0ZWQuICovXG4gIHJlYWRvbmx5IGVudGVyZWRBdDogc3RyaW5nO1xuICAvKiogcnVudGltZVN0YWdlSWQgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBzdWJmbG93IGV4aXRlZC4gT25seSBtZWFuaW5nZnVsXG4gICAqICBmb3Iga2luZD0nc3ViZmxvdyc7IGZvcmsvZGVjaXNpb24tYnJhbmNoIG5vZGVzIGFyZSBpbnN0YW50YW5lb3VzLiAqL1xuICBleGl0ZWRBdD86IHN0cmluZztcbiAgLyoqIEtpbmQtc3BlY2lmaWMgZXh0cmFzOiBmb3JrUGFyZW50LCBkZWNpZGVyLCByYXRpb25hbGUsIGRlc2NyaXB0aW9uLiAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pjtcbn1cblxuLyoqIEEgdHJhdmVyc2FsIHRyYW5zaXRpb24gYmV0d2VlbiB0d28gbm9kZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcG9sb2d5RWRnZSB7XG4gIHJlYWRvbmx5IGZyb206IHN0cmluZztcbiAgcmVhZG9ubHkgdG86IHN0cmluZztcbiAgcmVhZG9ubHkga2luZDogRXhjbHVkZTxUb3BvbG9neUluY29taW5nS2luZCwgJ3Jvb3QnPjtcbiAgcmVhZG9ubHkgYXQ6IHN0cmluZztcbn1cblxuLyoqIFNuYXBzaG90IG9mIHRoZSBjb21wb3NpdGlvbiBncmFwaC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9wb2xvZ3kge1xuICByZWFkb25seSBub2RlczogUmVhZG9ubHlBcnJheTxUb3BvbG9neU5vZGU+O1xuICByZWFkb25seSBlZGdlczogUmVhZG9ubHlBcnJheTxUb3BvbG9neUVkZ2U+O1xuICAvKiogQ3VycmVudGx5LWFjdGl2ZSBzdWJmbG93ICh0b3Agb2YgdGhlIHN1YmZsb3cgc3RhY2spLiBGb3JrLWJyYW5jaCBhbmRcbiAgICogIGRlY2lzaW9uLWJyYW5jaCBub2RlcyBhcmUgaW5zdGFudGFuZW91cyDigJQgdGhleSBkb24ndCBhZmZlY3QgYWN0aXZlTm9kZUlkLiAqL1xuICByZWFkb25seSBhY3RpdmVOb2RlSWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBGaXJzdCBub2RlIGluc2VydGVkLiBudWxsIGJlZm9yZSBhbnkgY29tcG9zaXRpb24gZXZlbnQgZmlyZXMuICovXG4gIHJlYWRvbmx5IHJvb3RJZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb3BvbG9neVJlY29yZGVyT3B0aW9ucyB7XG4gIC8qKiBSZWNvcmRlciBpZC4gRGVmYXVsdHMgdG8gYHRvcG9sb2d5LU5gIChhdXRvLWluY3JlbWVudGVkKS4gKi9cbiAgaWQ/OiBzdHJpbmc7XG59XG5cbi8vIENvcnJlbGF0aW9uIHN0YXRlOiBtYXBzIGEgcGVuZGluZyBmb3JrL2RlY2lzaW9uIGNoaWxkIG5hbWUgdG8gaXRzIHN5bnRoZXRpY1xuLy8gbm9kZSBpZCwgc28gYSBzdWJzZXF1ZW50IG9uU3ViZmxvd0VudHJ5IG1hdGNoaW5nIHRoYXQgbmFtZSBjYW4gYmUgbmVzdGVkXG4vLyB1bmRlciB0aGUgc3ludGhldGljIG5vZGUgKHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgcGVlcikuXG5pbnRlcmZhY2UgUGVuZGluZ0NoaWxkIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIGF0OiBzdHJpbmc7XG59XG5cbmxldCBfY291bnRlciA9IDA7XG5cbi8qKlxuICogRmFjdG9yeSDigJQgbWF0Y2hlcyB0aGUgYG5hcnJhdGl2ZSgpYCAvIGBtZXRyaWNzKClgIHN0eWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9wb2xvZ3lSZWNvcmRlcihvcHRpb25zOiBUb3BvbG9neVJlY29yZGVyT3B0aW9ucyA9IHt9KTogVG9wb2xvZ3lSZWNvcmRlciB7XG4gIHJldHVybiBuZXcgVG9wb2xvZ3lSZWNvcmRlcihvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBTdGF0ZWZ1bCBhY2N1bXVsYXRvciB0aGF0IHdhdGNoZXMgRmxvd1JlY29yZGVyIGV2ZW50cyBhbmQgbWFpbnRhaW5zIGEgbGl2ZVxuICogY29tcG9zaXRpb24gZ3JhcGguIEF0dGFjaCB2aWEgYGV4ZWN1dG9yLmF0dGFjaENvbWJpbmVkUmVjb3JkZXIocmVjb3JkZXIpYCDigJRcbiAqIGZvb3RwcmludGpzIGRldGVjdHMgdGhlIGBGbG93UmVjb3JkZXJgIG1ldGhvZCBzaGFwZSBhbmQgcm91dGVzIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvcG9sb2d5UmVjb3JkZXIgaW1wbGVtZW50cyBGbG93UmVjb3JkZXIge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZXNCeUlkID0gbmV3IE1hcDxzdHJpbmcsIFRvcG9sb2d5Tm9kZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBub2RlT3JkZXI6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZWRnZXM6IFRvcG9sb2d5RWRnZVtdID0gW107XG4gIC8qKiBTdGFjayBvZiBhY3RpdmUgU1VCRkxPVyBub2RlIGlkcy4gRm9yay9kZWNpc2lvbi1icmFuY2ggbm9kZXMgbmV2ZXIgcHVzaC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJmbG93U3RhY2s6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIE1hcCBvZiBjaGlsZE5hbWUg4oaSIHBlbmRpbmcgZm9yay1icmFuY2ggc3ludGhldGljIG5vZGUsIGNvbnN1bWVkIGJ5XG4gICAqICB0aGUgbmV4dCBtYXRjaGluZyBgb25TdWJmbG93RW50cnlgLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHBlbmRpbmdGb3JrQnlOYW1lID0gbmV3IE1hcDxzdHJpbmcsIFBlbmRpbmdDaGlsZD4oKTtcbiAgLyoqIFBlbmRpbmcgZGVjaXNpb24tYnJhbmNoIHN5bnRoZXRpYyBub2RlLCBjb25zdW1lZCBieSBhIG1hdGNoaW5nIGVudHJ5LiAqL1xuICBwcml2YXRlIHBlbmRpbmdEZWNpc2lvbj86IHsgbmFtZTogc3RyaW5nIH0gJiBQZW5kaW5nQ2hpbGQ7XG4gIC8qKlxuICAgKiBUaGUgcHJldmlvdXMgc3ViZmxvdyB0aGF0IGp1c3QgZmluaXNoZWQsIGtleWVkIGJ5IHNjb3BlIChwYXJlbnRJZCxcbiAgICogb3IgJycgZm9yIHJvb3QpLiBXaGVuIGEgbmV3IHN1YmZsb3cgZW50ZXJzIGluIHRoZSBzYW1lIHNjb3BlIHZpYVxuICAgKiB0aGUgbm9ybWFsIG5leHQtY2hhaW5lZCBwYXRoIChub3QgZm9yay9kZWNpc2lvbiksIHdlIGVtaXQgYSBgbmV4dGBcbiAgICogZWRnZSBmcm9tIHRoZSBwcmV2aW91cyBzdWJmbG93IHRvIHRoZSBuZXcgb25lIOKAlCBtYXRjaGluZyBob3cgdGhlXG4gICAqIGJ1aWxkZXIgYWN0dWFsbHkgd2lyZWQgdGhlbTogYC5hZGRTdWJGbG93Q2hhcnROZXh0KEEpLmFkZFN1YkZsb3dDaGFydE5leHQoQilgXG4gICAqIG1lYW5zIEEg4oaSIEIsIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIFdpdGhvdXQgdGhpcywgY29uc3VtZXJzIG9ubHkgc2VlIHBhcmVudOKGkmNoaWxkIGVkZ2VzIChBLCBCLCBDIGFsbFxuICAgKiBjaGlsZHJlbiBvZiB0aGVpciBjb21tb24gYW5jZXN0b3IpIHdpdGggbm8gcmVjb3JkIG9mIHRoZSBhY3R1YWxcbiAgICogQSDihpIgQiDihpIgQyBzZXF1ZW50aWFsIGNoYWluIHRoYXQgcmFuIOKAlCB3aGljaCBpcyBleGFjdGx5IHdoYXRcbiAgICogVG9wb2xvZ3lSZWNvcmRlciBpcyBzdXBwb3NlZCB0byBleHBvc2UuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHByZXZpb3VzU3ViZmxvd0luU2NvcGUgPSBuZXcgTWFwPHN0cmluZywgeyBub2RlSWQ6IHN0cmluZzsgZXhpdGVkQXQ6IHN0cmluZyB9PigpO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRvcG9sb2d5UmVjb3JkZXJPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmlkID0gb3B0aW9ucy5pZCA/PyBgdG9wb2xvZ3ktJHsrK19jb3VudGVyfWA7XG4gIH1cblxuICAvLyDilIDilIAgRmxvd1JlY29yZGVyIGhvb2tzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIG9uU3ViZmxvd0VudHJ5KGV2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3ViZmxvd0lkID0gZXZlbnQuc3ViZmxvd0lkO1xuICAgIGlmICghc3ViZmxvd0lkKSByZXR1cm47IC8vIE5lZWQgYSBzdGFibGUgaWQgdG8gdHJhY2suXG5cbiAgICBjb25zdCBlbnRlcmVkQXQgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5ydW50aW1lU3RhZ2VJZCA/PyAnJztcblxuICAgIC8vIERldGVybWluZSB0aGUgcGFyZW50OiBwcmVmZXIgYSBwZW5kaW5nIGZvcmsvZGVjaXNpb24gbWF0Y2ggYnkgbmFtZSxcbiAgICAvLyBvdGhlcndpc2UgdGhlIGN1cnJlbnQgdG9wLW9mLXN1YmZsb3ctc3RhY2suXG4gICAgbGV0IHBhcmVudElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGluY29taW5nS2luZDogVG9wb2xvZ3lJbmNvbWluZ0tpbmQ7XG5cbiAgICBjb25zdCBwZW5kaW5nRm9yayA9IHRoaXMucGVuZGluZ0ZvcmtCeU5hbWUuZ2V0KGV2ZW50Lm5hbWUpO1xuICAgIGlmIChwZW5kaW5nRm9yaykge1xuICAgICAgcGFyZW50SWQgPSBwZW5kaW5nRm9yay5ub2RlSWQ7XG4gICAgICBpbmNvbWluZ0tpbmQgPSAnbmV4dCc7IC8vIENoaWxkIE9GIGEgZm9yay1icmFuY2ggbm9kZTsgdGhlIGZvcmsgc2VtYW50aWNcbiAgICAgIC8vIGlzIGNhcHR1cmVkIGJ5IHRoZSBmb3JrLWJyYW5jaCdzIG93biBpbmNvbWluZ0tpbmQuXG4gICAgICB0aGlzLnBlbmRpbmdGb3JrQnlOYW1lLmRlbGV0ZShldmVudC5uYW1lKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGVuZGluZ0RlY2lzaW9uICYmIHRoaXMucGVuZGluZ0RlY2lzaW9uLm5hbWUgPT09IGV2ZW50Lm5hbWUpIHtcbiAgICAgIHBhcmVudElkID0gdGhpcy5wZW5kaW5nRGVjaXNpb24ubm9kZUlkO1xuICAgICAgaW5jb21pbmdLaW5kID0gJ25leHQnO1xuICAgICAgdGhpcy5wZW5kaW5nRGVjaXNpb24gPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmVudElkID0gdGhpcy5zdWJmbG93U3RhY2tbdGhpcy5zdWJmbG93U3RhY2subGVuZ3RoIC0gMV07XG4gICAgICBpbmNvbWluZ0tpbmQgPSBwYXJlbnRJZCA/ICduZXh0JyA6ICdyb290JztcbiAgICB9XG5cbiAgICAvLyBEaXNhbWJpZ3VhdGUgcmUtZW50cnkgKGUuZy4sIGxvb3AgYm9keSByZS1lbnRlcnMgdGhlIHNhbWUgc3ViZmxvdykuXG4gICAgbGV0IG5vZGVJZCA9IHN1YmZsb3dJZDtcbiAgICBpZiAodGhpcy5ub2Rlc0J5SWQuaGFzKG5vZGVJZCkpIHtcbiAgICAgIGxldCBuID0gMTtcbiAgICAgIHdoaWxlICh0aGlzLm5vZGVzQnlJZC5oYXMoYCR7c3ViZmxvd0lkfSMke259YCkpIG4rKztcbiAgICAgIG5vZGVJZCA9IGAke3N1YmZsb3dJZH0jJHtufWA7XG4gICAgfVxuXG4gICAgY29uc3QgZGVwdGggPSBwYXJlbnRJZCA/IHRoaXMubm9kZXNCeUlkLmdldChwYXJlbnRJZCkhLmRlcHRoICsgMSA6IDA7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBldmVudC5kZXNjcmlwdGlvbiA/IHsgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uIH0gOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBub2RlOiBUb3BvbG9neU5vZGUgPSB7XG4gICAgICBpZDogbm9kZUlkLFxuICAgICAga2luZDogJ3N1YmZsb3cnLFxuICAgICAgbmFtZTogZXZlbnQubmFtZSxcbiAgICAgIHBhcmVudElkLFxuICAgICAgZGVwdGgsXG4gICAgICBpbmNvbWluZ0tpbmQsXG4gICAgICBlbnRlcmVkQXQsXG4gICAgICBtZXRhZGF0YSxcbiAgICB9O1xuICAgIHRoaXMubm9kZXNCeUlkLnNldChub2RlSWQsIG5vZGUpO1xuICAgIHRoaXMubm9kZU9yZGVyLnB1c2gobm9kZUlkKTtcblxuICAgIGlmIChwYXJlbnRJZCAmJiBpbmNvbWluZ0tpbmQgIT09ICdyb290Jykge1xuICAgICAgdGhpcy5lZGdlcy5wdXNoKHtcbiAgICAgICAgZnJvbTogcGFyZW50SWQsXG4gICAgICAgIHRvOiBub2RlSWQsXG4gICAgICAgIGtpbmQ6IGluY29taW5nS2luZCxcbiAgICAgICAgYXQ6IGVudGVyZWRBdCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE5leHQtY2hhaW5lZCBlZGdlIGZyb20gdGhlIFBSRVZJT1VTIHN1YmZsb3cgaW4gdGhpcyBzY29wZS5cbiAgICAvL1xuICAgIC8vIGAuYWRkU3ViRmxvd0NoYXJ0TmV4dChBKS5hZGRTdWJGbG93Q2hhcnROZXh0KEIpLmFkZFN1YkZsb3dDaGFydE5leHQoQylgXG4gICAgLy8gcnVucyBhczogQSBlbnRlcnMg4oaSIEEgZXhpdHMg4oaSIEIgZW50ZXJzIOKGkiBCIGV4aXRzIOKGkiBDIGVudGVycy4gQXRcbiAgICAvLyBCJ3MgZW50cnkgdGhlIHN0YWNrIGhhcyByZXR1cm5lZCB0byB0aGUgc2NvcGUgaXQgd2FzIGluIGJlZm9yZSBBXG4gICAgLy8gZW50ZXJlZCAocm9vdCwgb3IgdGhlIHNoYXJlZCBhbmNlc3RvcikuIFdpdGhvdXQgdGhpcyBlZGdlIHdlJ2RcbiAgICAvLyBzZWUgbm9kZXMge0EsIEIsIEN9IGJ1dCBubyByZWNvcmQgdGhhdCBBIHJhbiBCRUZPUkUgQiB3aGljaCByYW5cbiAgICAvLyBCRUZPUkUgQyDigJQgYW5kIGRvd25zdHJlYW0gY29uc3VtZXJzIHdvdWxkIGhhdmUgdG8gcmVjb25zdHJ1Y3RcbiAgICAvLyBzZXF1ZW50aWFsIG9yZGVyaW5nIHRoZW1zZWx2ZXMuXG4gICAgLy9cbiAgICAvLyBPbmx5IGVtaXQgb24gdGhlIHJlZ3VsYXItZW50cnkgcGF0aC4gRm9yay9kZWNpc2lvbiBlbnRyaWVzIGhhdmVcbiAgICAvLyB0aGVpciBvd24gZWRnZSBtZWNoYW5pY3MgKHBhcmVudOKGkmZvcmstYnJhbmNoLCBwYXJlbnTihpJkZWNpc2lvbi1cbiAgICAvLyBicmFuY2gpIHRoYXQgY2FycnkgdGhlIGJyYW5jaGluZyBzZW1hbnRpY3MuXG4gICAgaWYgKGluY29taW5nS2luZCA9PT0gJ25leHQnIHx8IGluY29taW5nS2luZCA9PT0gJ3Jvb3QnKSB7XG4gICAgICBjb25zdCBzY29wZUtleSA9IHBhcmVudElkID8/ICcnO1xuICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnByZXZpb3VzU3ViZmxvd0luU2NvcGUuZ2V0KHNjb3BlS2V5KTtcbiAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICB0aGlzLmVkZ2VzLnB1c2goe1xuICAgICAgICAgIGZyb206IHByZXZpb3VzLm5vZGVJZCxcbiAgICAgICAgICB0bzogbm9kZUlkLFxuICAgICAgICAgIGtpbmQ6ICduZXh0JyxcbiAgICAgICAgICBhdDogZW50ZXJlZEF0LFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1N1YmZsb3dJblNjb3BlLmRlbGV0ZShzY29wZUtleSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zdWJmbG93U3RhY2sucHVzaChub2RlSWQpO1xuICB9XG5cbiAgb25TdWJmbG93RXhpdChldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVJZCA9IHRoaXMuc3ViZmxvd1N0YWNrLnBvcCgpO1xuICAgIGlmICghbm9kZUlkKSByZXR1cm47XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZXNCeUlkLmdldChub2RlSWQpO1xuICAgIGNvbnN0IGV4aXRlZEF0ID0gZXZlbnQudHJhdmVyc2FsQ29udGV4dD8ucnVudGltZVN0YWdlSWQgPz8gJyc7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuZXhpdGVkQXQgPSBleGl0ZWRBdDtcbiAgICAgIC8vIFJlbWVtYmVyIHRoaXMgbm9kZSBhcyB0aGUgXCJwcmV2aW91cyBzdWJmbG93XCIgaW4gaXRzIHNjb3BlLlxuICAgICAgLy8gV2hhdGV2ZXIgc3ViZmxvdyBlbnRlcnMgTkVYVCBpbiB0aGUgc2FtZSBzY29wZSAobm9ybWFsLWVudHJ5XG4gICAgICAvLyBwYXRoLCBub3QgZm9yay9kZWNpc2lvbikgZ2V0cyBhIGBuZXh0YCBlZGdlIGRyYXduIGZyb20gaGVyZVxuICAgICAgLy8g4oCUIHRoaXMgaXMgdGhlIHJlYWwgc2VxdWVudGlhbCBBIOKGkiBCIHRyYW5zaXRpb24gdGhhdCB0aGVcbiAgICAgIC8vIGAuYWRkU3ViRmxvd0NoYXJ0TmV4dCgpYCBidWlsZGVyIHByb2R1Y2VkLlxuICAgICAgY29uc3Qgc2NvcGVLZXkgPSBub2RlLnBhcmVudElkID8/ICcnO1xuICAgICAgdGhpcy5wcmV2aW91c1N1YmZsb3dJblNjb3BlLnNldChzY29wZUtleSwgeyBub2RlSWQsIGV4aXRlZEF0IH0pO1xuICAgIH1cbiAgICAvLyBDbGVhciBwZW5kaW5nRGVjaXNpb24gb24gZXhpdCDigJQgYSBkZWNpc2lvbiBpZGVudGlmaWVzIGV4YWN0bHkgT05FXG4gICAgLy8gdGFyZ2V0LiBJZiB0aGUgY2hvc2VuIGdvZXMgdG8gYSBwbGFpbiBzdGFnZSAobm90IGEgc3ViZmxvdyksIHRoZVxuICAgIC8vIHBlbmRpbmcgZW50cnkgd291bGQgb3RoZXJ3aXNlIGxpbmdlciBhbmQgZmFsc2VseSBtYXRjaCBhblxuICAgIC8vIHVucmVsYXRlZCBzdWJmbG93IGxhdGVyIGluIGEgZGlmZmVyZW50IHNjb3BlLlxuICAgIHRoaXMucGVuZGluZ0RlY2lzaW9uID0gdW5kZWZpbmVkO1xuICAgIC8vIERlbGliZXJhdGVseSBOT1QgY2xlYXJpbmcgcGVuZGluZ0ZvcmtCeU5hbWUg4oCUIGZvcmsgc2libGluZ3MgbmVlZFxuICAgIC8vIHRoZWlyIHBlbmRpbmcgZW50cmllcyB0byBzdXJ2aXZlIHNjb3BlIGV4aXRzIG9mIGVhcmxpZXIgc2libGluZ3NcbiAgICAvLyAoZS5nLiBBbHBoYSdzIGlubmVyIHNmLW1lc3NhZ2VzIGV4aXRzIGJlZm9yZSBCZXRhIGVudGVycykuIEZvcmtcbiAgICAvLyBwZW5kaW5nIGVudHJpZXMgYXJlIGNsZWFyZWQgb24gbmV3IGBvbkZvcmtgIG9yIGNvbnN1bWVkIG9uIG1hdGNoLlxuICB9XG5cbiAgb25Gb3JrKGV2ZW50OiBGbG93Rm9ya0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLnN1YmZsb3dTdGFja1t0aGlzLnN1YmZsb3dTdGFjay5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhdCA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnJ1bnRpbWVTdGFnZUlkID8/ICcnO1xuICAgIGNvbnN0IGRlcHRoID0gYWN0aXZlSWQgPyB0aGlzLm5vZGVzQnlJZC5nZXQoYWN0aXZlSWQpIS5kZXB0aCArIDEgOiAwO1xuXG4gICAgLy8gUmVzZXQgYW55IHByaW9yIHBlbmRpbmcgZm9yayBzdGF0ZSDigJQgYSBuZXcgZm9yayBzdGFydHMgZnJlc2guXG4gICAgdGhpcy5wZW5kaW5nRm9ya0J5TmFtZS5jbGVhcigpO1xuXG4gICAgZXZlbnQuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGROYW1lLCBpKSA9PiB7XG4gICAgICBjb25zdCBub2RlSWQgPSBgZm9yay0ke2F0IHx8IGV2ZW50LnBhcmVudH0tJHtpfS0ke2NoaWxkTmFtZX1gO1xuICAgICAgY29uc3Qgbm9kZTogVG9wb2xvZ3lOb2RlID0ge1xuICAgICAgICBpZDogbm9kZUlkLFxuICAgICAgICBraW5kOiAnZm9yay1icmFuY2gnLFxuICAgICAgICBuYW1lOiBjaGlsZE5hbWUsXG4gICAgICAgIHBhcmVudElkOiBhY3RpdmVJZCxcbiAgICAgICAgZGVwdGgsXG4gICAgICAgIGluY29taW5nS2luZDogJ2ZvcmstYnJhbmNoJyxcbiAgICAgICAgZW50ZXJlZEF0OiBhdCxcbiAgICAgICAgbWV0YWRhdGE6IHsgZm9ya1BhcmVudDogZXZlbnQucGFyZW50IH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5ub2Rlc0J5SWQuc2V0KG5vZGVJZCwgbm9kZSk7XG4gICAgICB0aGlzLm5vZGVPcmRlci5wdXNoKG5vZGVJZCk7XG4gICAgICBpZiAoYWN0aXZlSWQpIHtcbiAgICAgICAgdGhpcy5lZGdlcy5wdXNoKHsgZnJvbTogYWN0aXZlSWQsIHRvOiBub2RlSWQsIGtpbmQ6ICdmb3JrLWJyYW5jaCcsIGF0IH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5wZW5kaW5nRm9ya0J5TmFtZS5zZXQoY2hpbGROYW1lLCB7IG5vZGVJZCwgYXQgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlY2lzaW9uKGV2ZW50OiBGbG93RGVjaXNpb25FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5zdWJmbG93U3RhY2tbdGhpcy5zdWJmbG93U3RhY2subGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYXQgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5ydW50aW1lU3RhZ2VJZCA/PyAnJztcbiAgICBjb25zdCBkZXB0aCA9IGFjdGl2ZUlkID8gdGhpcy5ub2Rlc0J5SWQuZ2V0KGFjdGl2ZUlkKSEuZGVwdGggKyAxIDogMDtcblxuICAgIC8vIEEgbmV3IGRlY2lzaW9uIHN1cGVyc2VkZXMgYW55IHByaW9yIHVucmVzb2x2ZWQgcGVuZGluZyBvbmUuXG4gICAgdGhpcy5wZW5kaW5nRGVjaXNpb24gPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBub2RlSWQgPSBgZGVjaXNpb24tJHthdCB8fCBldmVudC5kZWNpZGVyfS0ke2V2ZW50LmNob3Nlbn1gO1xuICAgIGNvbnN0IG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgZGVjaWRlcjogZXZlbnQuZGVjaWRlciB9O1xuICAgIGlmIChldmVudC5yYXRpb25hbGUpIG1ldGFkYXRhLnJhdGlvbmFsZSA9IGV2ZW50LnJhdGlvbmFsZTtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIG1ldGFkYXRhLmRlc2NyaXB0aW9uID0gZXZlbnQuZGVzY3JpcHRpb247XG5cbiAgICBjb25zdCBub2RlOiBUb3BvbG9neU5vZGUgPSB7XG4gICAgICBpZDogbm9kZUlkLFxuICAgICAga2luZDogJ2RlY2lzaW9uLWJyYW5jaCcsXG4gICAgICBuYW1lOiBldmVudC5jaG9zZW4sXG4gICAgICBwYXJlbnRJZDogYWN0aXZlSWQsXG4gICAgICBkZXB0aCxcbiAgICAgIGluY29taW5nS2luZDogJ2RlY2lzaW9uLWJyYW5jaCcsXG4gICAgICBlbnRlcmVkQXQ6IGF0LFxuICAgICAgbWV0YWRhdGEsXG4gICAgfTtcbiAgICB0aGlzLm5vZGVzQnlJZC5zZXQobm9kZUlkLCBub2RlKTtcbiAgICB0aGlzLm5vZGVPcmRlci5wdXNoKG5vZGVJZCk7XG4gICAgaWYgKGFjdGl2ZUlkKSB7XG4gICAgICB0aGlzLmVkZ2VzLnB1c2goeyBmcm9tOiBhY3RpdmVJZCwgdG86IG5vZGVJZCwga2luZDogJ2RlY2lzaW9uLWJyYW5jaCcsIGF0IH0pO1xuICAgIH1cbiAgICB0aGlzLnBlbmRpbmdEZWNpc2lvbiA9IHsgbmFtZTogZXZlbnQuY2hvc2VuLCBub2RlSWQsIGF0IH07XG4gIH1cblxuICBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBsb29wVG8ganVtcHMgYmFjayBpbnNpZGUgdGhlIENVUlJFTlQgc3ViZmxvdy4gUmVjb3JkIGEgc2VsZi1lZGdlIG9uIHRoZVxuICAgIC8vIGFjdGl2ZSBzdWJmbG93IOKAlCBzeW50aGV0aWMgZm9yay9kZWNpc2lvbiBub2RlcyBkb24ndCBwYXJ0aWNpcGF0ZSBpbiBsb29wcy5cbiAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuc3ViZmxvd1N0YWNrW3RoaXMuc3ViZmxvd1N0YWNrLmxlbmd0aCAtIDFdO1xuICAgIGlmICghYWN0aXZlSWQpIHJldHVybjtcbiAgICB0aGlzLmVkZ2VzLnB1c2goe1xuICAgICAgZnJvbTogYWN0aXZlSWQsXG4gICAgICB0bzogYWN0aXZlSWQsXG4gICAgICBraW5kOiAnbG9vcC1pdGVyYXRpb24nLFxuICAgICAgYXQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnJ1bnRpbWVTdGFnZUlkID8/ICcnLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIENhbGxlZCBieSB0aGUgZXhlY3V0b3IgYmVmb3JlIGVhY2ggYHJ1bigpYCDigJQgcmVzZXRzIGFsbCBzdGF0ZS4gKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5ub2Rlc0J5SWQuY2xlYXIoKTtcbiAgICB0aGlzLm5vZGVPcmRlci5sZW5ndGggPSAwO1xuICAgIHRoaXMuZWRnZXMubGVuZ3RoID0gMDtcbiAgICB0aGlzLnN1YmZsb3dTdGFjay5sZW5ndGggPSAwO1xuICAgIHRoaXMucGVuZGluZ0ZvcmtCeU5hbWUuY2xlYXIoKTtcbiAgICB0aGlzLnByZXZpb3VzU3ViZmxvd0luU2NvcGUuY2xlYXIoKTtcbiAgICB0aGlzLnBlbmRpbmdEZWNpc2lvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIOKUgOKUgCBRdWVyeSBBUEkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIExpdmUgc25hcHNob3Qgb2YgdGhlIGNvbXBvc2l0aW9uIGdyYXBoLiBTYWZlIGR1cmluZyBvciBhZnRlciBhIHJ1bi4gKi9cbiAgZ2V0VG9wb2xvZ3koKTogVG9wb2xvZ3kge1xuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5ub2RlT3JkZXIubWFwKChpZCkgPT4gdGhpcy5ub2Rlc0J5SWQuZ2V0KGlkKSEpO1xuICAgIHJldHVybiB7XG4gICAgICBub2RlcyxcbiAgICAgIGVkZ2VzOiBbLi4udGhpcy5lZGdlc10sXG4gICAgICBhY3RpdmVOb2RlSWQ6IHRoaXMuc3ViZmxvd1N0YWNrW3RoaXMuc3ViZmxvd1N0YWNrLmxlbmd0aCAtIDFdID8/IG51bGwsXG4gICAgICByb290SWQ6IHRoaXMubm9kZU9yZGVyWzBdID8/IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBEaXJlY3QgY2hpbGRyZW4gb2YgYSBub2RlIOKAlCBpbnNlcnRpb24tb3JkZXJlZC4gKi9cbiAgZ2V0Q2hpbGRyZW4obm9kZUlkOiBzdHJpbmcpOiBUb3BvbG9neU5vZGVbXSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZU9yZGVyLm1hcCgoaWQpID0+IHRoaXMubm9kZXNCeUlkLmdldChpZCkhKS5maWx0ZXIoKG4pID0+IG4ucGFyZW50SWQgPT09IG5vZGVJZCk7XG4gIH1cblxuICAvKiogQWxsIG5vZGVzIG9mIGEgZ2l2ZW4ga2luZC4gKi9cbiAgZ2V0QnlLaW5kKGtpbmQ6IFRvcG9sb2d5Tm9kZUtpbmQpOiBUb3BvbG9neU5vZGVbXSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZU9yZGVyLm1hcCgoaWQpID0+IHRoaXMubm9kZXNCeUlkLmdldChpZCkhKS5maWx0ZXIoKG4pID0+IG4ua2luZCA9PT0ga2luZCk7XG4gIH1cblxuICAvKiogQWxsIG1vdW50ZWQgc3ViZmxvdyBub2Rlcy4gQ29udmVuaWVuY2UgZm9yIGFnZW50LWNlbnRyaWMgdmlld3MuICovXG4gIGdldFN1YmZsb3dOb2RlcygpOiBUb3BvbG9neU5vZGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnlLaW5kKCdzdWJmbG93Jyk7XG4gIH1cblxuICAvKiogQWxsIGZvcmstYnJhbmNoIG5vZGVzIHNoYXJpbmcgdGhlIHNhbWUgcGFyZW50IGFzIGBub2RlSWRgIOKAlCBpLmUuLFxuICAgKiAgcGFyYWxsZWwgc2libGluZ3Mgb2YgYSBwYXJhbGxlbCBicmFuY2guIEVtcHR5IGlmIGBub2RlSWRgIGlzbid0IGFcbiAgICogIGZvcmstYnJhbmNoIG9yIGhhcyBubyBwYXJlbnQuICovXG4gIGdldFBhcmFsbGVsU2libGluZ3Mobm9kZUlkOiBzdHJpbmcpOiBUb3BvbG9neU5vZGVbXSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZXNCeUlkLmdldChub2RlSWQpO1xuICAgIGlmICghbm9kZSB8fCBub2RlLmtpbmQgIT09ICdmb3JrLWJyYW5jaCcgfHwgIW5vZGUucGFyZW50SWQpIHJldHVybiBbXTtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbihub2RlLnBhcmVudElkKS5maWx0ZXIoKG4pID0+IG4ua2luZCA9PT0gJ2ZvcmstYnJhbmNoJyk7XG4gIH1cblxuICAvKiogRW1pdCBhIHNuYXBzaG90IGJ1bmRsZSBmb3IgaW5jbHVzaW9uIGluIGBleGVjdXRvci5nZXRTbmFwc2hvdCgpYC4gKi9cbiAgdG9TbmFwc2hvdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ1RvcG9sb2d5JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ29tcG9zaXRpb24gZ3JhcGg6IHN1YmZsb3cgYm91bmRhcmllcywgZm9yayBicmFuY2hlcywgZGVjaXNpb24gYnJhbmNoZXMnLFxuICAgICAgcHJlZmVycmVkT3BlcmF0aW9uOiAndHJhbnNsYXRlJyBhcyBjb25zdCxcbiAgICAgIGRhdGE6IHRoaXMuZ2V0VG9wb2xvZ3koKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wb2xvZ3lSZWNvcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVjb3JkZXIvVG9wb2xvZ3lSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpREc7OztBQTJFSCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakI7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUFtQyxFQUFFO0lBQ3BFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRkQsNENBRUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDbEIsRUFBRSxDQUFTO0lBRUgsU0FBUyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQzVDLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDekIsS0FBSyxHQUFtQixFQUFFLENBQUM7SUFDNUMsK0VBQStFO0lBQzlELFlBQVksR0FBYSxFQUFFLENBQUM7SUFFN0M7OENBQzBDO0lBQ3pCLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQ3JFLDRFQUE0RTtJQUNwRSxlQUFlLENBQW1DO0lBQzFEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNjLHNCQUFzQixHQUFHLElBQUksR0FBRyxFQUFnRCxDQUFDO0lBRWxHLFlBQVksVUFBbUMsRUFBRTtRQUMvQyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCx5RUFBeUU7SUFFekUsY0FBYyxDQUFDLEtBQXVCO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsNkJBQTZCO1FBRXJELE1BQU0sU0FBUyxH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QUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCx3RUFBd0U7SUFDeEUsVUFBVTtRQUNSLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVTtZQUNoQixXQUFXLEVBQUUseUVBQXlFO1lBQ3RGLGtCQUFrQixFQUFFLFdBQW9CO1lBQ3hDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3pCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4UkQsNENBd1JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUb3BvbG9neVJlY29yZGVyIOKAlCBjb21wb3NpdGlvbiBncmFwaCBidWlsdCBkdXJpbmcgdHJhdmVyc2FsLlxuICpcbiAqIFRoZSBnYXAgdGhpcyBmaWxsczpcbiAqICAgZm9vdHByaW50anMgZmlyZXMgYXRvbWljIGZsb3cgZXZlbnRzIChvblN1YmZsb3dFbnRyeSwgb25Gb3JrLCBvbkRlY2lzaW9uLFxuICogICBvbkxvb3ApIGJ1dCB0aGUgYWNjdW11bGF0ZWQgKnNoYXBlKiBvZiBhIHJ1biDigJQgd2hvIG5lc3RzIGluc2lkZSB3aG9tLFxuICogICB3aGljaCBub2RlcyBhcmUgcGFyYWxsZWwgc2libGluZ3MgdnMgYnJhbmNoZXMgb2YgYSBkZWNpc2lvbiDigJQgaXMgb25seVxuICogICB2aXNpYmxlIHBvc3QtcnVuIHZpYSBgZXhlY3V0b3IuZ2V0U25hcHNob3QoKWAgdHJlZS13YWxraW5nLlxuICpcbiAqICAgU3RyZWFtaW5nIGNvbnN1bWVycyAobGl2ZSBVSXMsIGluLWZsaWdodCBkZWJ1Z2dlcnMpIHNlZSBvbmx5IHRoZSBldmVudFxuICogICBzdHJlYW0uIEV2ZXJ5IHN1Y2ggY29uc3VtZXIgaGFzIHRvIHJlYnVpbGQgc3ViZmxvdy1zdGFjayArIGZvcmstbWFwICtcbiAqICAgZGVjaXNpb24tdHJhY2tlciBmcm9tIHNjcmF0Y2gsIHVzdWFsbHkgc2xpZ2h0bHkgd3JvbmcgaW4gZGlmZmVyZW50IHdheXMuXG4gKlxuICogICBUb3BvbG9neVJlY29yZGVyIGlzIHRoZSBzdGFuZGFyZCBhY2N1bXVsYXRvcjogb25lIHN1YnNjcmlwdGlvbiB0byB0aGVcbiAqICAgdGhyZWUgcHJpbWl0aXZlIGNoYW5uZWxzLCBvbmUgbGl2ZSBncmFwaCwgcXVlcnlhYmxlIGF0IGFueSBtb21lbnQgZHVyaW5nXG4gKiAgIG9yIGFmdGVyIGEgcnVuLlxuICpcbiAqIFdoYXQgaXQgcmVjb3JkcyDigJQgVEhSRUUgbm9kZSBraW5kcyBmb3IgY29tcGxldGUgY29tcG9zaXRpb24gY292ZXJhZ2U6XG4gKiAgIDEuICdzdWJmbG93JyAgICAgICAgICDigJQgdmlhIG9uU3ViZmxvd0VudHJ5IChhIG1vdW50ZWQgc3ViZmxvdyBib3VuZGFyeSlcbiAqICAgMi4gJ2ZvcmstYnJhbmNoJyAgICAgIOKAlCB2aWEgb25Gb3JrIChvbmUgbm9kZSBwZXIgY2hpbGQsIHN5bnRoZXNpemVkKVxuICogICAzLiAnZGVjaXNpb24tYnJhbmNoJyAg4oCUIHZpYSBvbkRlY2lzaW9uICh0aGUgY2hvc2VuIGJyYW5jaCwgc3ludGhlc2l6ZWQpXG4gKlxuICogICBXaGVuIGEgZm9yay1icmFuY2ggb3IgZGVjaXNpb24tYnJhbmNoIHRhcmdldCBJUyBBTFNPIGEgc3ViZmxvdywgdGhlXG4gKiAgIHN1YnNlcXVlbnQgb25TdWJmbG93RW50cnkgY3JlYXRlcyBhIHN1YmZsb3cgQ0hJTEQgb2YgdGhlIHN5bnRoZXRpYyBub2RlLlxuICogICBUaGUgbGF5ZXJlZCBzaGFwZSBwcmVzZXJ2ZXMgYm90aCBcIndobyBicmFuY2hlZFwiIGFuZCBcIndoYXQgdGhlIGJyYW5jaCByYW4uXCJcbiAqXG4gKiAgIFBsYWluIHNlcXVlbnRpYWwgc3RhZ2VzIGFyZSBOT1Qgbm9kZXMg4oCUIHRoYXQncyBTdGFnZUNvbnRleHQncyBqb2IuXG4gKiAgIFRvcG9sb2d5IGlzIGEgZ3JhcGggb2YgY29udHJvbC1mbG93IGJyYW5jaGluZywgbm90IGEgZnVsbCBleGVjdXRpb24gdHJlZS5cbiAqXG4gKiBFZGdlczpcbiAqICAgT25lIGVkZ2UgcGVyIHRyYXZlcnNhbCB0cmFuc2l0aW9uIOKAlCBga2luZGAgbWF0Y2hlcyB0aGUgY2hpbGQnc1xuICogICBgaW5jb21pbmdLaW5kYC4gQSBjb25zdW1lciByZW5kZXJpbmcgXCJwYXJhbGxlbCBjb2x1bW5zXCIgZmlsdGVycyBlZGdlc1xuICogICB3aGVyZSBga2luZCA9PT0gJ2ZvcmstYnJhbmNoJ2Agc2hhcmluZyB0aGUgc2FtZSBgZnJvbWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IHRvcG9sb2d5UmVjb3JkZXIgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogY29uc3QgdG9wbyA9IHRvcG9sb2d5UmVjb3JkZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaENvbWJpbmVkUmVjb3JkZXIodG9wbyk7ICAvLyBhdXRvLXJvdXRlcyB0byBGbG93UmVjb3JkZXIgY2hhbm5lbFxuICpcbiAqIGF3YWl0IGV4ZWN1dG9yLnJ1bigpO1xuICpcbiAqIGNvbnN0IHsgbm9kZXMsIGVkZ2VzLCBhY3RpdmVOb2RlSWQsIHJvb3RJZCB9ID0gdG9wby5nZXRUb3BvbG9neSgpO1xuICogLy8gQ29uc3VtZXIgcXVlcmllczpcbiAqIHRvcG8uZ2V0Q2hpbGRyZW4oJ3NmLXBhcmVudCcpOyAgICAgICAgICAgICAgLy8gZGlyZWN0IGNoaWxkcmVuIChhbnkga2luZClcbiAqIHRvcG8uZ2V0QnlLaW5kKCdmb3JrLWJyYW5jaCcpOyAgICAgICAgICAgICAgLy8gYWxsIHBhcmFsbGVsIGJyYW5jaGVzXG4gKiB0b3BvLmdldFN1YmZsb3dOb2RlcygpOyAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgbW91bnRlZCBzdWJmbG93c1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBGbG93RGVjaXNpb25FdmVudCxcbiAgRmxvd0ZvcmtFdmVudCxcbiAgRmxvd0xvb3BFdmVudCxcbiAgRmxvd1JlY29yZGVyLFxuICBGbG93U3ViZmxvd0V2ZW50LFxufSBmcm9tICcuLi9lbmdpbmUvbmFycmF0aXZlL3R5cGVzLmpzJztcblxuLyoqIFRoZSBraW5kIG9mIGNvbXBvc2l0aW9uIHVuaXQgYSBub2RlIHJlcHJlc2VudHMuICovXG5leHBvcnQgdHlwZSBUb3BvbG9neU5vZGVLaW5kID0gJ3N1YmZsb3cnIHwgJ2ZvcmstYnJhbmNoJyB8ICdkZWNpc2lvbi1icmFuY2gnO1xuXG4vKiogSG93IHRoZSB0cmF2ZXJzYWwgcmVhY2hlZCB0aGlzIG5vZGUg4oCUIGRyaXZlcyBjb25zdW1lciBsYXlvdXQgZGVjaXNpb25zLiAqL1xuZXhwb3J0IHR5cGUgVG9wb2xvZ3lJbmNvbWluZ0tpbmQgPSAncm9vdCcgfCAnbmV4dCcgfCAnZm9yay1icmFuY2gnIHwgJ2RlY2lzaW9uLWJyYW5jaCcgfCAnbG9vcC1pdGVyYXRpb24nO1xuXG4vKiogQSBjb21wb3NpdGlvbi1zaWduaWZpY2FudCBwb2ludCBpbiB0aGUgZ3JhcGguICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcG9sb2d5Tm9kZSB7XG4gIC8qKiBVbmlxdWUgaWQuIFN1YmZsb3dzIHVzZSB0aGVpciBzdWJmbG93SWQgKHdpdGggYCNuYCBzdWZmaXggb24gcmUtZW50cnkpLlxuICAgKiAgU3ludGhldGljIG5vZGVzIChmb3JrLWJyYW5jaCAvIGRlY2lzaW9uLWJyYW5jaCkgdXNlXG4gICAqICBgZm9yay0ke3J1bnRpbWVTdGFnZUlkfS0ke2l9YCAvIGBkZWNpc2lvbi0ke3J1bnRpbWVTdGFnZUlkfWAgZm9ybS4gKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgLyoqIFdoYXQgdGhpcyBub2RlIHJlcHJlc2VudHMuICovXG4gIHJlYWRvbmx5IGtpbmQ6IFRvcG9sb2d5Tm9kZUtpbmQ7XG4gIC8qKiBEaXNwbGF5IG5hbWUuIEZvciBzdWJmbG93czogYEZsb3dTdWJmbG93RXZlbnQubmFtZWAuIEZvciBmb3JrLWJyYW5jaGVzOlxuICAgKiAgdGhlIGNoaWxkIG5hbWUgZnJvbSBgRmxvd0ZvcmtFdmVudC5jaGlsZHJlbmAuIEZvciBkZWNpc2lvbi1icmFuY2hlczpcbiAgICogIHRoZSBjaG9zZW4gbmFtZSBmcm9tIGBGbG93RGVjaXNpb25FdmVudC5jaG9zZW5gLiAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKiBQYXJlbnQgbm9kZSBpZC4gVW5kZWZpbmVkIHdoZW4gdGhpcyBub2RlIHNpdHMgYXQgdGhlIHJ1bidzIHRvcCBsZXZlbC4gKi9cbiAgcmVhZG9ubHkgcGFyZW50SWQ/OiBzdHJpbmc7XG4gIC8qKiBEZXB0aCBpbiB0aGUgdG9wb2xvZ3kgdHJlZSAoMCA9IHRvcC1sZXZlbCkuICovXG4gIHJlYWRvbmx5IGRlcHRoOiBudW1iZXI7XG4gIC8qKiBIb3cgdGhlIHRyYXZlcnNhbCByZWFjaGVkIHRoaXMgbm9kZS4gKi9cbiAgcmVhZG9ubHkgaW5jb21pbmdLaW5kOiBUb3BvbG9neUluY29taW5nS2luZDtcbiAgLyoqIHJ1bnRpbWVTdGFnZUlkIGF0IHRoZSBtb21lbnQgdGhlIG5vZGUgd2FzIGNyZWF0ZWQuICovXG4gIHJlYWRvbmx5IGVudGVyZWRBdDogc3RyaW5nO1xuICAvKiogcnVudGltZVN0YWdlSWQgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBzdWJmbG93IGV4aXRlZC4gT25seSBtZWFuaW5nZnVsXG4gICAqICBmb3Iga2luZD0nc3ViZmxvdyc7IGZvcmsvZGVjaXNpb24tYnJhbmNoIG5vZGVzIGFyZSBpbnN0YW50YW5lb3VzLiAqL1xuICBleGl0ZWRBdD86IHN0cmluZztcbiAgLyoqIEtpbmQtc3BlY2lmaWMgZXh0cmFzOiBmb3JrUGFyZW50LCBkZWNpZGVyLCByYXRpb25hbGUsIGRlc2NyaXB0aW9uLiAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pjtcbn1cblxuLyoqIEEgdHJhdmVyc2FsIHRyYW5zaXRpb24gYmV0d2VlbiB0d28gbm9kZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcG9sb2d5RWRnZSB7XG4gIHJlYWRvbmx5IGZyb206IHN0cmluZztcbiAgcmVhZG9ubHkgdG86IHN0cmluZztcbiAgcmVhZG9ubHkga2luZDogRXhjbHVkZTxUb3BvbG9neUluY29taW5nS2luZCwgJ3Jvb3QnPjtcbiAgcmVhZG9ubHkgYXQ6IHN0cmluZztcbn1cblxuLyoqIFNuYXBzaG90IG9mIHRoZSBjb21wb3NpdGlvbiBncmFwaC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9wb2xvZ3kge1xuICByZWFkb25seSBub2RlczogUmVhZG9ubHlBcnJheTxUb3BvbG9neU5vZGU+O1xuICByZWFkb25seSBlZGdlczogUmVhZG9ubHlBcnJheTxUb3BvbG9neUVkZ2U+O1xuICAvKiogQ3VycmVudGx5LWFjdGl2ZSBzdWJmbG93ICh0b3Agb2YgdGhlIHN1YmZsb3cgc3RhY2spLiBGb3JrLWJyYW5jaCBhbmRcbiAgICogIGRlY2lzaW9uLWJyYW5jaCBub2RlcyBhcmUgaW5zdGFudGFuZW91cyDigJQgdGhleSBkb24ndCBhZmZlY3QgYWN0aXZlTm9kZUlkLiAqL1xuICByZWFkb25seSBhY3RpdmVOb2RlSWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBGaXJzdCBub2RlIGluc2VydGVkLiBudWxsIGJlZm9yZSBhbnkgY29tcG9zaXRpb24gZXZlbnQgZmlyZXMuICovXG4gIHJlYWRvbmx5IHJvb3RJZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb3BvbG9neVJlY29yZGVyT3B0aW9ucyB7XG4gIC8qKiBTY29wZVJlY29yZGVyIGlkLiBEZWZhdWx0cyB0byBgdG9wb2xvZ3ktTmAgKGF1dG8taW5jcmVtZW50ZWQpLiAqL1xuICBpZD86IHN0cmluZztcbn1cblxuLy8gQ29ycmVsYXRpb24gc3RhdGU6IG1hcHMgYSBwZW5kaW5nIGZvcmsvZGVjaXNpb24gY2hpbGQgbmFtZSB0byBpdHMgc3ludGhldGljXG4vLyBub2RlIGlkLCBzbyBhIHN1YnNlcXVlbnQgb25TdWJmbG93RW50cnkgbWF0Y2hpbmcgdGhhdCBuYW1lIGNhbiBiZSBuZXN0ZWRcbi8vIHVuZGVyIHRoZSBzeW50aGV0aWMgbm9kZSAocmF0aGVyIHRoYW4gY3JlYXRpbmcgYSBwZWVyKS5cbmludGVyZmFjZSBQZW5kaW5nQ2hpbGQge1xuICBub2RlSWQ6IHN0cmluZztcbiAgYXQ6IHN0cmluZztcbn1cblxubGV0IF9jb3VudGVyID0gMDtcblxuLyoqXG4gKiBGYWN0b3J5IOKAlCBtYXRjaGVzIHRoZSBgbmFycmF0aXZlKClgIC8gYG1ldHJpY3MoKWAgc3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b3BvbG9neVJlY29yZGVyKG9wdGlvbnM6IFRvcG9sb2d5UmVjb3JkZXJPcHRpb25zID0ge30pOiBUb3BvbG9neVJlY29yZGVyIHtcbiAgcmV0dXJuIG5ldyBUb3BvbG9neVJlY29yZGVyKG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFN0YXRlZnVsIGFjY3VtdWxhdG9yIHRoYXQgd2F0Y2hlcyBGbG93UmVjb3JkZXIgZXZlbnRzIGFuZCBtYWludGFpbnMgYSBsaXZlXG4gKiBjb21wb3NpdGlvbiBncmFwaC4gQXR0YWNoIHZpYSBgZXhlY3V0b3IuYXR0YWNoQ29tYmluZWRSZWNvcmRlcihyZWNvcmRlcilgIOKAlFxuICogZm9vdHByaW50anMgZGV0ZWN0cyB0aGUgYEZsb3dSZWNvcmRlcmAgbWV0aG9kIHNoYXBlIGFuZCByb3V0ZXMgZXZlbnRzLlxuICovXG5leHBvcnQgY2xhc3MgVG9wb2xvZ3lSZWNvcmRlciBpbXBsZW1lbnRzIEZsb3dSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBub2Rlc0J5SWQgPSBuZXcgTWFwPHN0cmluZywgVG9wb2xvZ3lOb2RlPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVPcmRlcjogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBlZGdlczogVG9wb2xvZ3lFZGdlW10gPSBbXTtcbiAgLyoqIFN0YWNrIG9mIGFjdGl2ZSBTVUJGTE9XIG5vZGUgaWRzLiBGb3JrL2RlY2lzaW9uLWJyYW5jaCBub2RlcyBuZXZlciBwdXNoLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YmZsb3dTdGFjazogc3RyaW5nW10gPSBbXTtcblxuICAvKiogTWFwIG9mIGNoaWxkTmFtZSDihpIgcGVuZGluZyBmb3JrLWJyYW5jaCBzeW50aGV0aWMgbm9kZSwgY29uc3VtZWQgYnlcbiAgICogIHRoZSBuZXh0IG1hdGNoaW5nIGBvblN1YmZsb3dFbnRyeWAuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGVuZGluZ0ZvcmtCeU5hbWUgPSBuZXcgTWFwPHN0cmluZywgUGVuZGluZ0NoaWxkPigpO1xuICAvKiogUGVuZGluZyBkZWNpc2lvbi1icmFuY2ggc3ludGhldGljIG5vZGUsIGNvbnN1bWVkIGJ5IGEgbWF0Y2hpbmcgZW50cnkuICovXG4gIHByaXZhdGUgcGVuZGluZ0RlY2lzaW9uPzogeyBuYW1lOiBzdHJpbmcgfSAmIFBlbmRpbmdDaGlsZDtcbiAgLyoqXG4gICAqIFRoZSBwcmV2aW91cyBzdWJmbG93IHRoYXQganVzdCBmaW5pc2hlZCwga2V5ZWQgYnkgc2NvcGUgKHBhcmVudElkLFxuICAgKiBvciAnJyBmb3Igcm9vdCkuIFdoZW4gYSBuZXcgc3ViZmxvdyBlbnRlcnMgaW4gdGhlIHNhbWUgc2NvcGUgdmlhXG4gICAqIHRoZSBub3JtYWwgbmV4dC1jaGFpbmVkIHBhdGggKG5vdCBmb3JrL2RlY2lzaW9uKSwgd2UgZW1pdCBhIGBuZXh0YFxuICAgKiBlZGdlIGZyb20gdGhlIHByZXZpb3VzIHN1YmZsb3cgdG8gdGhlIG5ldyBvbmUg4oCUIG1hdGNoaW5nIGhvdyB0aGVcbiAgICogYnVpbGRlciBhY3R1YWxseSB3aXJlZCB0aGVtOiBgLmFkZFN1YkZsb3dDaGFydE5leHQoQSkuYWRkU3ViRmxvd0NoYXJ0TmV4dChCKWBcbiAgICogbWVhbnMgQSDihpIgQiwgb25lIGFmdGVyIHRoZSBvdGhlci5cbiAgICpcbiAgICogV2l0aG91dCB0aGlzLCBjb25zdW1lcnMgb25seSBzZWUgcGFyZW504oaSY2hpbGQgZWRnZXMgKEEsIEIsIEMgYWxsXG4gICAqIGNoaWxkcmVuIG9mIHRoZWlyIGNvbW1vbiBhbmNlc3Rvcikgd2l0aCBubyByZWNvcmQgb2YgdGhlIGFjdHVhbFxuICAgKiBBIOKGkiBCIOKGkiBDIHNlcXVlbnRpYWwgY2hhaW4gdGhhdCByYW4g4oCUIHdoaWNoIGlzIGV4YWN0bHkgd2hhdFxuICAgKiBUb3BvbG9neVJlY29yZGVyIGlzIHN1cHBvc2VkIHRvIGV4cG9zZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJldmlvdXNTdWJmbG93SW5TY29wZSA9IG5ldyBNYXA8c3RyaW5nLCB7IG5vZGVJZDogc3RyaW5nOyBleGl0ZWRBdDogc3RyaW5nIH0+KCk7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVG9wb2xvZ3lSZWNvcmRlck9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkID8/IGB0b3BvbG9neS0keysrX2NvdW50ZXJ9YDtcbiAgfVxuXG4gIC8vIOKUgOKUgCBGbG93UmVjb3JkZXIgaG9va3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgb25TdWJmbG93RW50cnkoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdWJmbG93SWQgPSBldmVudC5zdWJmbG93SWQ7XG4gICAgaWYgKCFzdWJmbG93SWQpIHJldHVybjsgLy8gTmVlZCBhIHN0YWJsZSBpZCB0byB0cmFjay5cblxuICAgIGNvbnN0IGVudGVyZWRBdCA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnJ1bnRpbWVTdGFnZUlkID8/ICcnO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBwYXJlbnQ6IHByZWZlciBhIHBlbmRpbmcgZm9yay9kZWNpc2lvbiBtYXRjaCBieSBuYW1lLFxuICAgIC8vIG90aGVyd2lzZSB0aGUgY3VycmVudCB0b3Atb2Ytc3ViZmxvdy1zdGFjay5cbiAgICBsZXQgcGFyZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgaW5jb21pbmdLaW5kOiBUb3BvbG9neUluY29taW5nS2luZDtcblxuICAgIGNvbnN0IHBlbmRpbmdGb3JrID0gdGhpcy5wZW5kaW5nRm9ya0J5TmFtZS5nZXQoZXZlbnQubmFtZSk7XG4gICAgaWYgKHBlbmRpbmdGb3JrKSB7XG4gICAgICBwYXJlbnRJZCA9IHBlbmRpbmdGb3JrLm5vZGVJZDtcbiAgICAgIGluY29taW5nS2luZCA9ICduZXh0JzsgLy8gQ2hpbGQgT0YgYSBmb3JrLWJyYW5jaCBub2RlOyB0aGUgZm9yayBzZW1hbnRpY1xuICAgICAgLy8gaXMgY2FwdHVyZWQgYnkgdGhlIGZvcmstYnJhbmNoJ3Mgb3duIGluY29taW5nS2luZC5cbiAgICAgIHRoaXMucGVuZGluZ0ZvcmtCeU5hbWUuZGVsZXRlKGV2ZW50Lm5hbWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nRGVjaXNpb24gJiYgdGhpcy5wZW5kaW5nRGVjaXNpb24ubmFtZSA9PT0gZXZlbnQubmFtZSkge1xuICAgICAgcGFyZW50SWQgPSB0aGlzLnBlbmRpbmdEZWNpc2lvbi5ub2RlSWQ7XG4gICAgICBpbmNvbWluZ0tpbmQgPSAnbmV4dCc7XG4gICAgICB0aGlzLnBlbmRpbmdEZWNpc2lvbiA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50SWQgPSB0aGlzLnN1YmZsb3dTdGFja1t0aGlzLnN1YmZsb3dTdGFjay5sZW5ndGggLSAxXTtcbiAgICAgIGluY29taW5nS2luZCA9IHBhcmVudElkID8gJ25leHQnIDogJ3Jvb3QnO1xuICAgIH1cblxuICAgIC8vIERpc2FtYmlndWF0ZSByZS1lbnRyeSAoZS5nLiwgbG9vcCBib2R5IHJlLWVudGVycyB0aGUgc2FtZSBzdWJmbG93KS5cbiAgICBsZXQgbm9kZUlkID0gc3ViZmxvd0lkO1xuICAgIGlmICh0aGlzLm5vZGVzQnlJZC5oYXMobm9kZUlkKSkge1xuICAgICAgbGV0IG4gPSAxO1xuICAgICAgd2hpbGUgKHRoaXMubm9kZXNCeUlkLmhhcyhgJHtzdWJmbG93SWR9IyR7bn1gKSkgbisrO1xuICAgICAgbm9kZUlkID0gYCR7c3ViZmxvd0lkfSMke259YDtcbiAgICB9XG5cbiAgICBjb25zdCBkZXB0aCA9IHBhcmVudElkID8gdGhpcy5ub2Rlc0J5SWQuZ2V0KHBhcmVudElkKSEuZGVwdGggKyAxIDogMDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IGV2ZW50LmRlc2NyaXB0aW9uID8geyBkZXNjcmlwdGlvbjogZXZlbnQuZGVzY3JpcHRpb24gfSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IG5vZGU6IFRvcG9sb2d5Tm9kZSA9IHtcbiAgICAgIGlkOiBub2RlSWQsXG4gICAgICBraW5kOiAnc3ViZmxvdycsXG4gICAgICBuYW1lOiBldmVudC5uYW1lLFxuICAgICAgcGFyZW50SWQsXG4gICAgICBkZXB0aCxcbiAgICAgIGluY29taW5nS2luZCxcbiAgICAgIGVudGVyZWRBdCxcbiAgICAgIG1ldGFkYXRhLFxuICAgIH07XG4gICAgdGhpcy5ub2Rlc0J5SWQuc2V0KG5vZGVJZCwgbm9kZSk7XG4gICAgdGhpcy5ub2RlT3JkZXIucHVzaChub2RlSWQpO1xuXG4gICAgaWYgKHBhcmVudElkICYmIGluY29taW5nS2luZCAhPT0gJ3Jvb3QnKSB7XG4gICAgICB0aGlzLmVkZ2VzLnB1c2goe1xuICAgICAgICBmcm9tOiBwYXJlbnRJZCxcbiAgICAgICAgdG86IG5vZGVJZCxcbiAgICAgICAga2luZDogaW5jb21pbmdLaW5kLFxuICAgICAgICBhdDogZW50ZXJlZEF0LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gTmV4dC1jaGFpbmVkIGVkZ2UgZnJvbSB0aGUgUFJFVklPVVMgc3ViZmxvdyBpbiB0aGlzIHNjb3BlLlxuICAgIC8vXG4gICAgLy8gYC5hZGRTdWJGbG93Q2hhcnROZXh0KEEpLmFkZFN1YkZsb3dDaGFydE5leHQoQikuYWRkU3ViRmxvd0NoYXJ0TmV4dChDKWBcbiAgICAvLyBydW5zIGFzOiBBIGVudGVycyDihpIgQSBleGl0cyDihpIgQiBlbnRlcnMg4oaSIEIgZXhpdHMg4oaSIEMgZW50ZXJzLiBBdFxuICAgIC8vIEIncyBlbnRyeSB0aGUgc3RhY2sgaGFzIHJldHVybmVkIHRvIHRoZSBzY29wZSBpdCB3YXMgaW4gYmVmb3JlIEFcbiAgICAvLyBlbnRlcmVkIChyb290LCBvciB0aGUgc2hhcmVkIGFuY2VzdG9yKS4gV2l0aG91dCB0aGlzIGVkZ2Ugd2UnZFxuICAgIC8vIHNlZSBub2RlcyB7QSwgQiwgQ30gYnV0IG5vIHJlY29yZCB0aGF0IEEgcmFuIEJFRk9SRSBCIHdoaWNoIHJhblxuICAgIC8vIEJFRk9SRSBDIOKAlCBhbmQgZG93bnN0cmVhbSBjb25zdW1lcnMgd291bGQgaGF2ZSB0byByZWNvbnN0cnVjdFxuICAgIC8vIHNlcXVlbnRpYWwgb3JkZXJpbmcgdGhlbXNlbHZlcy5cbiAgICAvL1xuICAgIC8vIE9ubHkgZW1pdCBvbiB0aGUgcmVndWxhci1lbnRyeSBwYXRoLiBGb3JrL2RlY2lzaW9uIGVudHJpZXMgaGF2ZVxuICAgIC8vIHRoZWlyIG93biBlZGdlIG1lY2hhbmljcyAocGFyZW504oaSZm9yay1icmFuY2gsIHBhcmVudOKGkmRlY2lzaW9uLVxuICAgIC8vIGJyYW5jaCkgdGhhdCBjYXJyeSB0aGUgYnJhbmNoaW5nIHNlbWFudGljcy5cbiAgICBpZiAoaW5jb21pbmdLaW5kID09PSAnbmV4dCcgfHwgaW5jb21pbmdLaW5kID09PSAncm9vdCcpIHtcbiAgICAgIGNvbnN0IHNjb3BlS2V5ID0gcGFyZW50SWQgPz8gJyc7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMucHJldmlvdXNTdWJmbG93SW5TY29wZS5nZXQoc2NvcGVLZXkpO1xuICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgIHRoaXMuZWRnZXMucHVzaCh7XG4gICAgICAgICAgZnJvbTogcHJldmlvdXMubm9kZUlkLFxuICAgICAgICAgIHRvOiBub2RlSWQsXG4gICAgICAgICAga2luZDogJ25leHQnLFxuICAgICAgICAgIGF0OiBlbnRlcmVkQXQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByZXZpb3VzU3ViZmxvd0luU2NvcGUuZGVsZXRlKHNjb3BlS2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnN1YmZsb3dTdGFjay5wdXNoKG5vZGVJZCk7XG4gIH1cblxuICBvblN1YmZsb3dFeGl0KGV2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZUlkID0gdGhpcy5zdWJmbG93U3RhY2sucG9wKCk7XG4gICAgaWYgKCFub2RlSWQpIHJldHVybjtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2Rlc0J5SWQuZ2V0KG5vZGVJZCk7XG4gICAgY29uc3QgZXhpdGVkQXQgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5ydW50aW1lU3RhZ2VJZCA/PyAnJztcbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5leGl0ZWRBdCA9IGV4aXRlZEF0O1xuICAgICAgLy8gUmVtZW1iZXIgdGhpcyBub2RlIGFzIHRoZSBcInByZXZpb3VzIHN1YmZsb3dcIiBpbiBpdHMgc2NvcGUuXG4gICAgICAvLyBXaGF0ZXZlciBzdWJmbG93IGVudGVycyBORVhUIGluIHRoZSBzYW1lIHNjb3BlIChub3JtYWwtZW50cnlcbiAgICAgIC8vIHBhdGgsIG5vdCBmb3JrL2RlY2lzaW9uKSBnZXRzIGEgYG5leHRgIGVkZ2UgZHJhd24gZnJvbSBoZXJlXG4gICAgICAvLyDigJQgdGhpcyBpcyB0aGUgcmVhbCBzZXF1ZW50aWFsIEEg4oaSIEIgdHJhbnNpdGlvbiB0aGF0IHRoZVxuICAgICAgLy8gYC5hZGRTdWJGbG93Q2hhcnROZXh0KClgIGJ1aWxkZXIgcHJvZHVjZWQuXG4gICAgICBjb25zdCBzY29wZUtleSA9IG5vZGUucGFyZW50SWQgPz8gJyc7XG4gICAgICB0aGlzLnByZXZpb3VzU3ViZmxvd0luU2NvcGUuc2V0KHNjb3BlS2V5LCB7IG5vZGVJZCwgZXhpdGVkQXQgfSk7XG4gICAgfVxuICAgIC8vIENsZWFyIHBlbmRpbmdEZWNpc2lvbiBvbiBleGl0IOKAlCBhIGRlY2lzaW9uIGlkZW50aWZpZXMgZXhhY3RseSBPTkVcbiAgICAvLyB0YXJnZXQuIElmIHRoZSBjaG9zZW4gZ29lcyB0byBhIHBsYWluIHN0YWdlIChub3QgYSBzdWJmbG93KSwgdGhlXG4gICAgLy8gcGVuZGluZyBlbnRyeSB3b3VsZCBvdGhlcndpc2UgbGluZ2VyIGFuZCBmYWxzZWx5IG1hdGNoIGFuXG4gICAgLy8gdW5yZWxhdGVkIHN1YmZsb3cgbGF0ZXIgaW4gYSBkaWZmZXJlbnQgc2NvcGUuXG4gICAgdGhpcy5wZW5kaW5nRGVjaXNpb24gPSB1bmRlZmluZWQ7XG4gICAgLy8gRGVsaWJlcmF0ZWx5IE5PVCBjbGVhcmluZyBwZW5kaW5nRm9ya0J5TmFtZSDigJQgZm9yayBzaWJsaW5ncyBuZWVkXG4gICAgLy8gdGhlaXIgcGVuZGluZyBlbnRyaWVzIHRvIHN1cnZpdmUgc2NvcGUgZXhpdHMgb2YgZWFybGllciBzaWJsaW5nc1xuICAgIC8vIChlLmcuIEFscGhhJ3MgaW5uZXIgc2YtbWVzc2FnZXMgZXhpdHMgYmVmb3JlIEJldGEgZW50ZXJzKS4gRm9ya1xuICAgIC8vIHBlbmRpbmcgZW50cmllcyBhcmUgY2xlYXJlZCBvbiBuZXcgYG9uRm9ya2Agb3IgY29uc3VtZWQgb24gbWF0Y2guXG4gIH1cblxuICBvbkZvcmsoZXZlbnQ6IEZsb3dGb3JrRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuc3ViZmxvd1N0YWNrW3RoaXMuc3ViZmxvd1N0YWNrLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGF0ID0gZXZlbnQudHJhdmVyc2FsQ29udGV4dD8ucnVudGltZVN0YWdlSWQgPz8gJyc7XG4gICAgY29uc3QgZGVwdGggPSBhY3RpdmVJZCA/IHRoaXMubm9kZXNCeUlkLmdldChhY3RpdmVJZCkhLmRlcHRoICsgMSA6IDA7XG5cbiAgICAvLyBSZXNldCBhbnkgcHJpb3IgcGVuZGluZyBmb3JrIHN0YXRlIOKAlCBhIG5ldyBmb3JrIHN0YXJ0cyBmcmVzaC5cbiAgICB0aGlzLnBlbmRpbmdGb3JrQnlOYW1lLmNsZWFyKCk7XG5cbiAgICBldmVudC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZE5hbWUsIGkpID0+IHtcbiAgICAgIGNvbnN0IG5vZGVJZCA9IGBmb3JrLSR7YXQgfHwgZXZlbnQucGFyZW50fS0ke2l9LSR7Y2hpbGROYW1lfWA7XG4gICAgICBjb25zdCBub2RlOiBUb3BvbG9neU5vZGUgPSB7XG4gICAgICAgIGlkOiBub2RlSWQsXG4gICAgICAgIGtpbmQ6ICdmb3JrLWJyYW5jaCcsXG4gICAgICAgIG5hbWU6IGNoaWxkTmFtZSxcbiAgICAgICAgcGFyZW50SWQ6IGFjdGl2ZUlkLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgaW5jb21pbmdLaW5kOiAnZm9yay1icmFuY2gnLFxuICAgICAgICBlbnRlcmVkQXQ6IGF0LFxuICAgICAgICBtZXRhZGF0YTogeyBmb3JrUGFyZW50OiBldmVudC5wYXJlbnQgfSxcbiAgICAgIH07XG4gICAgICB0aGlzLm5vZGVzQnlJZC5zZXQobm9kZUlkLCBub2RlKTtcbiAgICAgIHRoaXMubm9kZU9yZGVyLnB1c2gobm9kZUlkKTtcbiAgICAgIGlmIChhY3RpdmVJZCkge1xuICAgICAgICB0aGlzLmVkZ2VzLnB1c2goeyBmcm9tOiBhY3RpdmVJZCwgdG86IG5vZGVJZCwga2luZDogJ2ZvcmstYnJhbmNoJywgYXQgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnBlbmRpbmdGb3JrQnlOYW1lLnNldChjaGlsZE5hbWUsIHsgbm9kZUlkLCBhdCB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRGVjaXNpb24oZXZlbnQ6IEZsb3dEZWNpc2lvbkV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLnN1YmZsb3dTdGFja1t0aGlzLnN1YmZsb3dTdGFjay5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhdCA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnJ1bnRpbWVTdGFnZUlkID8/ICcnO1xuICAgIGNvbnN0IGRlcHRoID0gYWN0aXZlSWQgPyB0aGlzLm5vZGVzQnlJZC5nZXQoYWN0aXZlSWQpIS5kZXB0aCArIDEgOiAwO1xuXG4gICAgLy8gQSBuZXcgZGVjaXNpb24gc3VwZXJzZWRlcyBhbnkgcHJpb3IgdW5yZXNvbHZlZCBwZW5kaW5nIG9uZS5cbiAgICB0aGlzLnBlbmRpbmdEZWNpc2lvbiA9IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IG5vZGVJZCA9IGBkZWNpc2lvbi0ke2F0IHx8IGV2ZW50LmRlY2lkZXJ9LSR7ZXZlbnQuY2hvc2VufWA7XG4gICAgY29uc3QgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyBkZWNpZGVyOiBldmVudC5kZWNpZGVyIH07XG4gICAgaWYgKGV2ZW50LnJhdGlvbmFsZSkgbWV0YWRhdGEucmF0aW9uYWxlID0gZXZlbnQucmF0aW9uYWxlO1xuICAgIGlmIChldmVudC5kZXNjcmlwdGlvbikgbWV0YWRhdGEuZGVzY3JpcHRpb24gPSBldmVudC5kZXNjcmlwdGlvbjtcblxuICAgIGNvbnN0IG5vZGU6IFRvcG9sb2d5Tm9kZSA9IHtcbiAgICAgIGlkOiBub2RlSWQsXG4gICAgICBraW5kOiAnZGVjaXNpb24tYnJhbmNoJyxcbiAgICAgIG5hbWU6IGV2ZW50LmNob3NlbixcbiAgICAgIHBhcmVudElkOiBhY3RpdmVJZCxcbiAgICAgIGRlcHRoLFxuICAgICAgaW5jb21pbmdLaW5kOiAnZGVjaXNpb24tYnJhbmNoJyxcbiAgICAgIGVudGVyZWRBdDogYXQsXG4gICAgICBtZXRhZGF0YSxcbiAgICB9O1xuICAgIHRoaXMubm9kZXNCeUlkLnNldChub2RlSWQsIG5vZGUpO1xuICAgIHRoaXMubm9kZU9yZGVyLnB1c2gobm9kZUlkKTtcbiAgICBpZiAoYWN0aXZlSWQpIHtcbiAgICAgIHRoaXMuZWRnZXMucHVzaCh7IGZyb206IGFjdGl2ZUlkLCB0bzogbm9kZUlkLCBraW5kOiAnZGVjaXNpb24tYnJhbmNoJywgYXQgfSk7XG4gICAgfVxuICAgIHRoaXMucGVuZGluZ0RlY2lzaW9uID0geyBuYW1lOiBldmVudC5jaG9zZW4sIG5vZGVJZCwgYXQgfTtcbiAgfVxuXG4gIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIC8vIGxvb3BUbyBqdW1wcyBiYWNrIGluc2lkZSB0aGUgQ1VSUkVOVCBzdWJmbG93LiBSZWNvcmQgYSBzZWxmLWVkZ2Ugb24gdGhlXG4gICAgLy8gYWN0aXZlIHN1YmZsb3cg4oCUIHN5bnRoZXRpYyBmb3JrL2RlY2lzaW9uIG5vZGVzIGRvbid0IHBhcnRpY2lwYXRlIGluIGxvb3BzLlxuICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5zdWJmbG93U3RhY2tbdGhpcy5zdWJmbG93U3RhY2subGVuZ3RoIC0gMV07XG4gICAgaWYgKCFhY3RpdmVJZCkgcmV0dXJuO1xuICAgIHRoaXMuZWRnZXMucHVzaCh7XG4gICAgICBmcm9tOiBhY3RpdmVJZCxcbiAgICAgIHRvOiBhY3RpdmVJZCxcbiAgICAgIGtpbmQ6ICdsb29wLWl0ZXJhdGlvbicsXG4gICAgICBhdDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8ucnVudGltZVN0YWdlSWQgPz8gJycsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQ2FsbGVkIGJ5IHRoZSBleGVjdXRvciBiZWZvcmUgZWFjaCBgcnVuKClgIOKAlCByZXNldHMgYWxsIHN0YXRlLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLm5vZGVzQnlJZC5jbGVhcigpO1xuICAgIHRoaXMubm9kZU9yZGVyLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5lZGdlcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuc3ViZmxvd1N0YWNrLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5wZW5kaW5nRm9ya0J5TmFtZS5jbGVhcigpO1xuICAgIHRoaXMucHJldmlvdXNTdWJmbG93SW5TY29wZS5jbGVhcigpO1xuICAgIHRoaXMucGVuZGluZ0RlY2lzaW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8g4pSA4pSAIFF1ZXJ5IEFQSSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogTGl2ZSBzbmFwc2hvdCBvZiB0aGUgY29tcG9zaXRpb24gZ3JhcGguIFNhZmUgZHVyaW5nIG9yIGFmdGVyIGEgcnVuLiAqL1xuICBnZXRUb3BvbG9neSgpOiBUb3BvbG9neSB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLm5vZGVPcmRlci5tYXAoKGlkKSA9PiB0aGlzLm5vZGVzQnlJZC5nZXQoaWQpISk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5vZGVzLFxuICAgICAgZWRnZXM6IFsuLi50aGlzLmVkZ2VzXSxcbiAgICAgIGFjdGl2ZU5vZGVJZDogdGhpcy5zdWJmbG93U3RhY2tbdGhpcy5zdWJmbG93U3RhY2subGVuZ3RoIC0gMV0gPz8gbnVsbCxcbiAgICAgIHJvb3RJZDogdGhpcy5ub2RlT3JkZXJbMF0gPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIERpcmVjdCBjaGlsZHJlbiBvZiBhIG5vZGUg4oCUIGluc2VydGlvbi1vcmRlcmVkLiAqL1xuICBnZXRDaGlsZHJlbihub2RlSWQ6IHN0cmluZyk6IFRvcG9sb2d5Tm9kZVtdIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlT3JkZXIubWFwKChpZCkgPT4gdGhpcy5ub2Rlc0J5SWQuZ2V0KGlkKSEpLmZpbHRlcigobikgPT4gbi5wYXJlbnRJZCA9PT0gbm9kZUlkKTtcbiAgfVxuXG4gIC8qKiBBbGwgbm9kZXMgb2YgYSBnaXZlbiBraW5kLiAqL1xuICBnZXRCeUtpbmQoa2luZDogVG9wb2xvZ3lOb2RlS2luZCk6IFRvcG9sb2d5Tm9kZVtdIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlT3JkZXIubWFwKChpZCkgPT4gdGhpcy5ub2Rlc0J5SWQuZ2V0KGlkKSEpLmZpbHRlcigobikgPT4gbi5raW5kID09PSBraW5kKTtcbiAgfVxuXG4gIC8qKiBBbGwgbW91bnRlZCBzdWJmbG93IG5vZGVzLiBDb252ZW5pZW5jZSBmb3IgYWdlbnQtY2VudHJpYyB2aWV3cy4gKi9cbiAgZ2V0U3ViZmxvd05vZGVzKCk6IFRvcG9sb2d5Tm9kZVtdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeUtpbmQoJ3N1YmZsb3cnKTtcbiAgfVxuXG4gIC8qKiBBbGwgZm9yay1icmFuY2ggbm9kZXMgc2hhcmluZyB0aGUgc2FtZSBwYXJlbnQgYXMgYG5vZGVJZGAg4oCUIGkuZS4sXG4gICAqICBwYXJhbGxlbCBzaWJsaW5ncyBvZiBhIHBhcmFsbGVsIGJyYW5jaC4gRW1wdHkgaWYgYG5vZGVJZGAgaXNuJ3QgYVxuICAgKiAgZm9yay1icmFuY2ggb3IgaGFzIG5vIHBhcmVudC4gKi9cbiAgZ2V0UGFyYWxsZWxTaWJsaW5ncyhub2RlSWQ6IHN0cmluZyk6IFRvcG9sb2d5Tm9kZVtdIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2Rlc0J5SWQuZ2V0KG5vZGVJZCk7XG4gICAgaWYgKCFub2RlIHx8IG5vZGUua2luZCAhPT0gJ2ZvcmstYnJhbmNoJyB8fCAhbm9kZS5wYXJlbnRJZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLmdldENoaWxkcmVuKG5vZGUucGFyZW50SWQpLmZpbHRlcigobikgPT4gbi5raW5kID09PSAnZm9yay1icmFuY2gnKTtcbiAgfVxuXG4gIC8qKiBFbWl0IGEgc25hcHNob3QgYnVuZGxlIGZvciBpbmNsdXNpb24gaW4gYGV4ZWN1dG9yLmdldFNuYXBzaG90KClgLiAqL1xuICB0b1NuYXBzaG90KCkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnVG9wb2xvZ3knLFxuICAgICAgZGVzY3JpcHRpb246ICdDb21wb3NpdGlvbiBncmFwaDogc3ViZmxvdyBib3VuZGFyaWVzLCBmb3JrIGJyYW5jaGVzLCBkZWNpc2lvbiBicmFuY2hlcycsXG4gICAgICBwcmVmZXJyZWRPcGVyYXRpb246ICd0cmFuc2xhdGUnIGFzIGNvbnN0LFxuICAgICAgZGF0YTogdGhpcy5nZXRUb3BvbG9neSgpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.RecorderOperation = exports.CompositeRecorder = exports.isFlowEvent = exports.hasRecorderMethods = exports.hasFlowRecorderMethods = exports.hasEmitRecorderMethods = exports.SequenceRecorder = exports.KeyedRecorder = exports.BoundaryStateTracker = exports.SequenceStore = exports.KeyedStore = exports.BoundaryStateStore = void 0;
|
|
4
|
+
// ── Stores (concrete, composable — v5 primary API) ────────────────────
|
|
5
|
+
// Compose these via `new Store<T>()` as a field on your recorder class.
|
|
6
|
+
// One purpose per recorder: stores are storage; recorders are event hooks.
|
|
7
|
+
var BoundaryStateStore_js_1 = require("./BoundaryStateStore.js");
|
|
8
|
+
Object.defineProperty(exports, "BoundaryStateStore", { enumerable: true, get: function () { return BoundaryStateStore_js_1.BoundaryStateStore; } });
|
|
9
|
+
var KeyedStore_js_1 = require("./KeyedStore.js");
|
|
10
|
+
Object.defineProperty(exports, "KeyedStore", { enumerable: true, get: function () { return KeyedStore_js_1.KeyedStore; } });
|
|
11
|
+
var SequenceStore_js_1 = require("./SequenceStore.js");
|
|
12
|
+
Object.defineProperty(exports, "SequenceStore", { enumerable: true, get: function () { return SequenceStore_js_1.SequenceStore; } });
|
|
13
|
+
// ── Abstract bases (DEPRECATED — slated for removal in 5.0 final) ─────
|
|
14
|
+
// Kept during the v5 migration window for downstream consumers (agentfootprint,
|
|
15
|
+
// agentfootprint-lens) that still extend them. New code should compose Stores
|
|
16
|
+
// instead. See `docs/design/v5-recorder-redesign.md`.
|
|
4
17
|
var BoundaryStateTracker_js_1 = require("./BoundaryStateTracker.js");
|
|
5
18
|
Object.defineProperty(exports, "BoundaryStateTracker", { enumerable: true, get: function () { return BoundaryStateTracker_js_1.BoundaryStateTracker; } });
|
|
19
|
+
var KeyedRecorder_js_1 = require("./KeyedRecorder.js");
|
|
20
|
+
Object.defineProperty(exports, "KeyedRecorder", { enumerable: true, get: function () { return KeyedRecorder_js_1.KeyedRecorder; } });
|
|
21
|
+
var SequenceRecorder_js_1 = require("./SequenceRecorder.js");
|
|
22
|
+
Object.defineProperty(exports, "SequenceRecorder", { enumerable: true, get: function () { return SequenceRecorder_js_1.SequenceRecorder; } });
|
|
6
23
|
var CombinedRecorder_js_1 = require("./CombinedRecorder.js");
|
|
7
24
|
Object.defineProperty(exports, "hasEmitRecorderMethods", { enumerable: true, get: function () { return CombinedRecorder_js_1.hasEmitRecorderMethods; } });
|
|
8
25
|
Object.defineProperty(exports, "hasFlowRecorderMethods", { enumerable: true, get: function () { return CombinedRecorder_js_1.hasFlowRecorderMethods; } });
|
|
@@ -10,10 +27,6 @@ Object.defineProperty(exports, "hasRecorderMethods", { enumerable: true, get: fu
|
|
|
10
27
|
Object.defineProperty(exports, "isFlowEvent", { enumerable: true, get: function () { return CombinedRecorder_js_1.isFlowEvent; } });
|
|
11
28
|
var CompositeRecorder_js_1 = require("./CompositeRecorder.js");
|
|
12
29
|
Object.defineProperty(exports, "CompositeRecorder", { enumerable: true, get: function () { return CompositeRecorder_js_1.CompositeRecorder; } });
|
|
13
|
-
var KeyedRecorder_js_1 = require("./KeyedRecorder.js");
|
|
14
|
-
Object.defineProperty(exports, "KeyedRecorder", { enumerable: true, get: function () { return KeyedRecorder_js_1.KeyedRecorder; } });
|
|
15
30
|
var RecorderOperation_js_1 = require("./RecorderOperation.js");
|
|
16
31
|
Object.defineProperty(exports, "RecorderOperation", { enumerable: true, get: function () { return RecorderOperation_js_1.RecorderOperation; } });
|
|
17
|
-
|
|
18
|
-
Object.defineProperty(exports, "SequenceRecorder", { enumerable: true, get: function () { return SequenceRecorder_js_1.SequenceRecorder; } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlY29yZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFpRTtBQUF4RCwrSEFBQSxvQkFBb0IsT0FBQTtBQUU3Qiw2REFBd0g7QUFBL0csNkhBQUEsc0JBQXNCLE9BQUE7QUFBRSw2SEFBQSxzQkFBc0IsT0FBQTtBQUFFLHlIQUFBLGtCQUFrQixPQUFBO0FBQUUsa0hBQUEsV0FBVyxPQUFBO0FBRXhGLCtEQUEyRDtBQUFsRCx5SEFBQSxpQkFBaUIsT0FBQTtBQUUxQix1REFBbUQ7QUFBMUMsaUhBQUEsYUFBYSxPQUFBO0FBQ3RCLCtEQUEyRDtBQUFsRCx5SEFBQSxpQkFBaUIsT0FBQTtBQUMxQiw2REFBeUQ7QUFBaEQsdUhBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCb3VuZGFyeVN0YXRlVHJhY2tlciB9IGZyb20gJy4vQm91bmRhcnlTdGF0ZVRyYWNrZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBDb21iaW5lZFJlY29yZGVyIH0gZnJvbSAnLi9Db21iaW5lZFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IGhhc0VtaXRSZWNvcmRlck1ldGhvZHMsIGhhc0Zsb3dSZWNvcmRlck1ldGhvZHMsIGhhc1JlY29yZGVyTWV0aG9kcywgaXNGbG93RXZlbnQgfSBmcm9tICcuL0NvbWJpbmVkUmVjb3JkZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBDb21wb3NpdGVTbmFwc2hvdCB9IGZyb20gJy4vQ29tcG9zaXRlUmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgQ29tcG9zaXRlUmVjb3JkZXIgfSBmcm9tICcuL0NvbXBvc2l0ZVJlY29yZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgRW1pdEV2ZW50LCBFbWl0UmVjb3JkZXIgfSBmcm9tICcuL0VtaXRSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi9LZXllZFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFJlY29yZGVyT3BlcmF0aW9uIH0gZnJvbSAnLi9SZWNvcmRlck9wZXJhdGlvbi5qcyc7XG5leHBvcnQgeyBTZXF1ZW5jZVJlY29yZGVyIH0gZnJvbSAnLi9TZXF1ZW5jZVJlY29yZGVyLmpzJztcbiJdfQ==
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlY29yZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUF5RTtBQUN6RSx3RUFBd0U7QUFDeEUsMkVBQTJFO0FBQzNFLGlFQUE2RDtBQUFwRCwySEFBQSxrQkFBa0IsT0FBQTtBQUMzQixpREFBNkM7QUFBcEMsMkdBQUEsVUFBVSxPQUFBO0FBQ25CLHVEQUFtRDtBQUExQyxpSEFBQSxhQUFhLE9BQUE7QUFFdEIseUVBQXlFO0FBQ3pFLGdGQUFnRjtBQUNoRiw4RUFBOEU7QUFDOUUsc0RBQXNEO0FBQ3RELHFFQUFpRTtBQUF4RCwrSEFBQSxvQkFBb0IsT0FBQTtBQUM3Qix1REFBbUQ7QUFBMUMsaUhBQUEsYUFBYSxPQUFBO0FBQ3RCLDZEQUF5RDtBQUFoRCx1SEFBQSxnQkFBZ0IsT0FBQTtBQUl6Qiw2REFBd0g7QUFBL0csNkhBQUEsc0JBQXNCLE9BQUE7QUFBRSw2SEFBQSxzQkFBc0IsT0FBQTtBQUFFLHlIQUFBLGtCQUFrQixPQUFBO0FBQUUsa0hBQUEsV0FBVyxPQUFBO0FBRXhGLCtEQUEyRDtBQUFsRCx5SEFBQSxpQkFBaUIsT0FBQTtBQUUxQiwrREFBMkQ7QUFBbEQseUhBQUEsaUJBQWlCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDilIDilIAgU3RvcmVzIChjb25jcmV0ZSwgY29tcG9zYWJsZSDigJQgdjUgcHJpbWFyeSBBUEkpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQ29tcG9zZSB0aGVzZSB2aWEgYG5ldyBTdG9yZTxUPigpYCBhcyBhIGZpZWxkIG9uIHlvdXIgcmVjb3JkZXIgY2xhc3MuXG4vLyBPbmUgcHVycG9zZSBwZXIgcmVjb3JkZXI6IHN0b3JlcyBhcmUgc3RvcmFnZTsgcmVjb3JkZXJzIGFyZSBldmVudCBob29rcy5cbmV4cG9ydCB7IEJvdW5kYXJ5U3RhdGVTdG9yZSB9IGZyb20gJy4vQm91bmRhcnlTdGF0ZVN0b3JlLmpzJztcbmV4cG9ydCB7IEtleWVkU3RvcmUgfSBmcm9tICcuL0tleWVkU3RvcmUuanMnO1xuZXhwb3J0IHsgU2VxdWVuY2VTdG9yZSB9IGZyb20gJy4vU2VxdWVuY2VTdG9yZS5qcyc7XG5cbi8vIOKUgOKUgCBBYnN0cmFjdCBiYXNlcyAoREVQUkVDQVRFRCDigJQgc2xhdGVkIGZvciByZW1vdmFsIGluIDUuMCBmaW5hbCkg4pSA4pSA4pSA4pSA4pSAXG4vLyBLZXB0IGR1cmluZyB0aGUgdjUgbWlncmF0aW9uIHdpbmRvdyBmb3IgZG93bnN0cmVhbSBjb25zdW1lcnMgKGFnZW50Zm9vdHByaW50LFxuLy8gYWdlbnRmb290cHJpbnQtbGVucykgdGhhdCBzdGlsbCBleHRlbmQgdGhlbS4gTmV3IGNvZGUgc2hvdWxkIGNvbXBvc2UgU3RvcmVzXG4vLyBpbnN0ZWFkLiBTZWUgYGRvY3MvZGVzaWduL3Y1LXJlY29yZGVyLXJlZGVzaWduLm1kYC5cbmV4cG9ydCB7IEJvdW5kYXJ5U3RhdGVUcmFja2VyIH0gZnJvbSAnLi9Cb3VuZGFyeVN0YXRlVHJhY2tlci5qcyc7XG5leHBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi9LZXllZFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFNlcXVlbmNlUmVjb3JkZXIgfSBmcm9tICcuL1NlcXVlbmNlUmVjb3JkZXIuanMnO1xuXG4vLyDilIDilIAgSW50ZXJmYWNlcyAoZXZlbnQgaG9va3MpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuZXhwb3J0IHR5cGUgeyBDb21iaW5lZFJlY29yZGVyIH0gZnJvbSAnLi9Db21iaW5lZFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IGhhc0VtaXRSZWNvcmRlck1ldGhvZHMsIGhhc0Zsb3dSZWNvcmRlck1ldGhvZHMsIGhhc1JlY29yZGVyTWV0aG9kcywgaXNGbG93RXZlbnQgfSBmcm9tICcuL0NvbWJpbmVkUmVjb3JkZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBDb21wb3NpdGVTbmFwc2hvdCB9IGZyb20gJy4vQ29tcG9zaXRlUmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgQ29tcG9zaXRlUmVjb3JkZXIgfSBmcm9tICcuL0NvbXBvc2l0ZVJlY29yZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgRW1pdEV2ZW50LCBFbWl0UmVjb3JkZXIgfSBmcm9tICcuL0VtaXRSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBSZWNvcmRlck9wZXJhdGlvbiB9IGZyb20gJy4vUmVjb3JkZXJPcGVyYXRpb24uanMnO1xuIl19
|
|
@@ -102,4 +102,4 @@ class ExecutionRuntime {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
exports.ExecutionRuntime = ExecutionRuntime;
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0aW9uUnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcnVubmVyL0V4ZWN1dGlvblJ1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQUVILHVEQUFpRDtBQUNqRCwrREFBeUQ7QUFDekQsK0RBQXlEO0FBd0J6RCxNQUFhLGdCQUFnQjtJQUNwQixXQUFXLENBQWU7SUFDakM7Ozs7Ozs7O09BUUc7SUFDSSxhQUFhLENBQWdCO0lBQzdCLGdCQUFnQixDQUFlO0lBQy9CLGdCQUFnQixDQUFXO0lBQ2xDLG9GQUFvRjtJQUM1RSxhQUFhLENBQWdCO0lBQzdCLGFBQWEsQ0FBVTtJQUN2QixjQUFjLENBQVU7SUFFaEMsWUFBWSxRQUFnQixFQUFFLE1BQWMsRUFBRSxhQUF1QixFQUFFLFlBQXNCO1FBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHNCQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDhCQUFZLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLDhCQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSw4QkFBWSxDQUNuQyxJQUFJLENBQUMsY0FBYztRQUNuQixrRUFBa0U7UUFDbEUsb0VBQW9FO1FBQ3BFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQseUZBQXlGO0lBQ3pGLG9CQUFvQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWMsRUFBRSxHQUFXLEVBQUUsS0FBYztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsV0FBVyxDQUFDLE9BQThCO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDO1FBQ2pGLE9BQU87WUFDTCxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN2RixhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtTQUN4QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNUZELDRDQTRGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhlY3V0aW9uUnVudGltZSDigJQgVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIG9uZSBmbG93Y2hhcnQgZXhlY3V0aW9uLlxuICpcbiAqIFdpcmVzIHVwIHRoZSB0aHJlZSBtZW1vcnkgcHJpbWl0aXZlcyBpbnRvIGEgc2luZ2xlIGNvbnRhaW5lcjpcbiAqICAgLSBTaGFyZWRNZW1vcnkgKHRoZSBoZWFwIOKAlCBzaGFyZWQgc3RhdGUgYWNyb3NzIGFsbCBzdGFnZXMpXG4gKiAgIC0gU3RhZ2VDb250ZXh0ICAodGhlIGNhbGwgc3RhY2sg4oCUIHBlci1zdGFnZSBleGVjdXRpb24gdHJlZSlcbiAqICAgLSBFdmVudExvZyAgICAgICh0aGUgdHJhbnNhY3Rpb24gbG9nIOKAlCBjb21taXQgaGlzdG9yeSBmb3IgcmVwbGF5KVxuICpcbiAqIFRoZSBlbmdpbmUgKEZsb3djaGFydFRyYXZlcnNlcikgcmVjZWl2ZXMgdGhpcyBhcyBpdHMgcnVudGltZSBwYXJhbWV0ZXIuXG4gKiBBZnRlciBleGVjdXRpb24sIGNvbnN1bWVycyBxdWVyeSBpdCBmb3IgdGhlIGZ1bGwgZXhlY3V0aW9uIHN0YXRlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50TG9nIH0gZnJvbSAnLi4vbWVtb3J5L0V2ZW50TG9nLmpzJztcbmltcG9ydCB7IFNoYXJlZE1lbW9yeSB9IGZyb20gJy4uL21lbW9yeS9TaGFyZWRNZW1vcnkuanMnO1xuaW1wb3J0IHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbW1pdEJ1bmRsZSwgU3RhZ2VTbmFwc2hvdCB9IGZyb20gJy4uL21lbW9yeS90eXBlcy5qcyc7XG5cbi8qKiBTbmFwc2hvdCBvZiBhIHNpbmdsZSByZWNvcmRlcidzIGNvbGxlY3RlZCBkYXRhLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRlclNuYXBzaG90IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogUmVjb3JkZXIgdHlwZSBhbmQgcGF0dGVybiBkZXNjcmlwdGlvbiAoZS5nLiwgXCJUcmFuc2xhdG9yIChLZXllZFJlY29yZGVyKSDigJQgcGVyLXN0ZXAgdG9rZW4gdXNhZ2VcIikuICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogUHJlZmVycmVkIHJlYWQtdGltZSBvcGVyYXRpb24g4oCUIGhpbnRzIHRoZSBVSSBhYm91dCB3aGljaCB2aWV3IHRvIHNob3cgcHJvbWluZW50bHkuICovXG4gIHByZWZlcnJlZE9wZXJhdGlvbj86ICd0cmFuc2xhdGUnIHwgJ2FjY3VtdWxhdGUnIHwgJ2FnZ3JlZ2F0ZSc7XG4gIGRhdGE6IHVua25vd247XG59XG5cbmV4cG9ydCB0eXBlIFJ1bnRpbWVTbmFwc2hvdCA9IHtcbiAgc2hhcmVkU3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBleGVjdXRpb25UcmVlOiBTdGFnZVNuYXBzaG90O1xuICBjb21taXRMb2c6IENvbW1pdEJ1bmRsZVtdO1xuICAvKiogUGVyLXN1YmZsb3cgZXhlY3V0aW9uIHJlc3VsdHMgKGtleWVkIGJ5IHN1YmZsb3dJZCkuICovXG4gIHN1YmZsb3dSZXN1bHRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBTbmFwc2hvdCBkYXRhIGZyb20gcmVjb3JkZXJzIHRoYXQgaW1wbGVtZW50IHRvU25hcHNob3QoKS4gKi9cbiAgcmVjb3JkZXJzPzogUmVjb3JkZXJTbmFwc2hvdFtdO1xufTtcblxuZXhwb3J0IGNsYXNzIEV4ZWN1dGlvblJ1bnRpbWUge1xuICBwdWJsaWMgZ2xvYmFsU3RvcmU6IFNoYXJlZE1lbW9yeTtcbiAgLyoqXG4gICAqIFBhcmFsbGVsIHJlZGFjdGVkIG1pcnJvciBvZiBgZ2xvYmFsU3RvcmVgLiBQb3B1bGF0ZWQgZHVyaW5nIHRyYXZlcnNhbCB2aWFcbiAgICogYFN0YWdlQ29udGV4dC5jb21taXQoKWAgdXNpbmcgdGhlIGFscmVhZHktY29tcHV0ZWQgcmVkYWN0ZWQgcGF0Y2hlcy5cbiAgICogT25seSBleGlzdHMgd2hlbiBgZW5hYmxlUmVkYWN0ZWRNaXJyb3IoKWAgaGFzIGJlZW4gY2FsbGVkIOKAlCB0eXBpY2FsbHkgYnlcbiAgICogYEZsb3dDaGFydEV4ZWN1dG9yYCB3aGVuIGEgYFJlZGFjdGlvblBvbGljeWAgaXMgY29uZmlndXJlZC4gT3RoZXJ3aXNlXG4gICAqIHVuZGVmaW5lZCBhbmQgemVybyBjb3N0LlxuICAgKlxuICAgKiBSZWFkIHZpYSBgZ2V0U25hcHNob3QoeyByZWRhY3Q6IHRydWUgfSlgLlxuICAgKi9cbiAgcHVibGljIHJlZGFjdGVkU3RvcmU/OiBTaGFyZWRNZW1vcnk7XG4gIHB1YmxpYyByb290U3RhZ2VDb250ZXh0OiBTdGFnZUNvbnRleHQ7XG4gIHB1YmxpYyBleGVjdXRpb25IaXN0b3J5OiBFdmVudExvZztcbiAgLyoqIE9yaWdpbmFsIHJvb3QgZm9yIGdldFNuYXBzaG90KCkg4oCUIHNldCBiZWZvcmUgcmVzdW1lIGNoYW5nZXMgcm9vdFN0YWdlQ29udGV4dC4gKi9cbiAgcHJpdmF0ZSBfc25hcHNob3RSb290PzogU3RhZ2VDb250ZXh0O1xuICBwcml2YXRlIF9pbml0aWFsU3RhdGU6IHVua25vd247XG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZXM6IHVua25vd247XG5cbiAgY29uc3RydWN0b3Iocm9vdE5hbWU6IHN0cmluZywgcm9vdElkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZXM/OiB1bmtub3duLCBpbml0aWFsU3RhdGU/OiB1bmtub3duKSB7XG4gICAgdGhpcy5faW5pdGlhbFN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFsdWVzO1xuICAgIHRoaXMuZXhlY3V0aW9uSGlzdG9yeSA9IG5ldyBFdmVudExvZyhpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMuZ2xvYmFsU3RvcmUgPSBuZXcgU2hhcmVkTWVtb3J5KGRlZmF1bHRWYWx1ZXMsIGluaXRpYWxTdGF0ZSk7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0ID0gbmV3IFN0YWdlQ29udGV4dCgnJywgcm9vdE5hbWUsIHJvb3RJZCwgdGhpcy5nbG9iYWxTdG9yZSwgJycsIHRoaXMuZXhlY3V0aW9uSGlzdG9yeSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0IGluIHRvIG1haW50YWluaW5nIGEgcGFyYWxsZWwgcmVkYWN0ZWQgbWlycm9yIG9mIGBnbG9iYWxTdG9yZWAuIEFmdGVyXG4gICAqIHRoaXMgY2FsbCwgZXZlcnkgYFN0YWdlQ29udGV4dC5jb21taXQoKWAgaW4gdGhlIHJ1biB3cml0ZXMgdGhlIHJlZGFjdGVkXG4gICAqIHBhdGNoZXMgKHRoZSBzYW1lIG9uZXMgZmVkIHRvIHRoZSBldmVudCBsb2cpIGludG8gYHJlZGFjdGVkU3RvcmVgIGluXG4gICAqIGFkZGl0aW9uIHRvIHRoZSByYXcgb25lcyB3cml0dGVuIHRvIGBnbG9iYWxTdG9yZWAuXG4gICAqXG4gICAqIFRoZSBtaXJyb3IgaXMgY3JlYXRlZCBsYXppbHkgYW5kIHByb3BhZ2F0ZWQgaW50byBhbGwgY2hpbGQgLyBuZXh0XG4gICAqIGNvbnRleHRzLCBzbyBpdCBjb3JyZWN0bHkgcmVmbGVjdHMgc3ViZmxvdy1zY29wZSB3cml0ZXMuIFdoZW4gbm9cbiAgICogYFJlZGFjdGlvblBvbGljeWAgaXMgY29uZmlndXJlZCwgY2FsbGVycyBzaG91bGQgc2tpcCB0aGlzIOKAlCB1bnVzZWRcbiAgICogYWxsb2NhdGlvbiwgbm8gZnVuY3Rpb25hbCBkaWZmZXJlbmNlIGluIHRoZSBzbmFwc2hvdC5cbiAgICovXG4gIGVuYWJsZVJlZGFjdGVkTWlycm9yKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZGFjdGVkU3RvcmUpIHJldHVybjsgLy8gaWRlbXBvdGVudFxuICAgIHRoaXMucmVkYWN0ZWRTdG9yZSA9IG5ldyBTaGFyZWRNZW1vcnkoXG4gICAgICB0aGlzLl9kZWZhdWx0VmFsdWVzLFxuICAgICAgLy8gU2VlZCB3aXRoIHRoZSBzYW1lIGluaXRpYWwgc3RhdGUgYXMgdGhlIHJhdyBzdG9yZSBzbyB0aGUgbWlycm9yXG4gICAgICAvLyBzdGFydHMgZnJvbSBhIHNjcnViYmVkLW5vdGhpbmcgYmFzZWxpbmU7IHN1YnNlcXVlbnQgY29tbWl0cyBhcHBseVxuICAgICAgLy8gdGhlIHJlZGFjdGVkIHBhdGNoZXMgb24gdG9wLlxuICAgICAgdGhpcy5faW5pdGlhbFN0YXRlLFxuICAgICk7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnVzZVJlZGFjdGVkTWlycm9yKHRoaXMucmVkYWN0ZWRTdG9yZSk7XG4gIH1cblxuICAvKiogUHJlc2VydmUgdGhlIGN1cnJlbnQgcm9vdFN0YWdlQ29udGV4dCBmb3Igc25hcHNob3RzIGJlZm9yZSBjaGFuZ2luZyBpdCBmb3IgcmVzdW1lLiAqL1xuICBwcmVzZXJ2ZVNuYXBzaG90Um9vdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3NuYXBzaG90Um9vdCkge1xuICAgICAgdGhpcy5fc25hcHNob3RSb290ID0gdGhpcy5yb290U3RhZ2VDb250ZXh0O1xuICAgIH1cbiAgfVxuXG4gIGdldFBpcGVsaW5lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdsb2JhbFN0b3JlLmdldFN0YXRlKCk7XG4gICAgcmV0dXJuIHN0YXRlLnBpcGVsaW5lcyA/IE9iamVjdC5rZXlzKHN0YXRlLnBpcGVsaW5lcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgOiBbXTtcbiAgfVxuXG4gIHNldFJvb3RPYmplY3QocGF0aDogc3RyaW5nW10sIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMucm9vdFN0YWdlQ29udGV4dC5zZXRPYmplY3QocGF0aCwga2V5LCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBydW50aW1lIHNuYXBzaG90LlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucy5yZWRhY3QgIFdoZW4gYHRydWVgLCByZXR1cm5zIGBzaGFyZWRTdGF0ZWAgZnJvbSB0aGVcbiAgICogICBwYXJhbGxlbCByZWRhY3RlZCBtaXJyb3IgKGlmIG9uZSB3YXMgZW5hYmxlZCkuIFRoaXMgaXMgdGhlIHNhZmUgdmlld1xuICAgKiAgIGZvciBzaGFyaW5nIHRyYWNlcyBleHRlcm5hbGx5IOKAlCBwYXN0ZSBpbnRvIGEgdmlld2VyLCBzaGlwIHRvIHN1cHBvcnQsXG4gICAqICAgZXRjLiBXaGVuIHRoZSBtaXJyb3Igd2FzIG5ldmVyIGVuYWJsZWQsIGZhbGxzIGJhY2sgdG8gcmF3IGBnbG9iYWxTdG9yZWBcbiAgICogICBhbmQgYSBkZXYtbW9kZSB3YXJuaW5nIGlzIGVtaXR0ZWQgKHNpbGVudCBpbiBwcm9kdWN0aW9uKS5cbiAgICpcbiAgICogICBEZWZhdWx0IGBmYWxzZWAgcHJlc2VydmVzIHRoZSBydW50aW1lIHZpZXcg4oCUIG5lY2Vzc2FyeSBmb3IgcGF1c2UgL1xuICAgKiAgIHJlc3VtZSAocmVzdW1wdGlvbiBtdXN0IHJlcGxheSBhZ2FpbnN0IHRoZSByZWFsIHZhbHVlcywgbm90XG4gICAqICAgJ1tSRURBQ1RFRF0nKS5cbiAgICpcbiAgICogT3RoZXIgZmllbGRzIChgZXhlY3V0aW9uVHJlZWAsIGBjb21taXRMb2dgKSBhcmUgdGhlIHNhbWUgZWl0aGVyIHdheSDigJRcbiAgICogdGhlIGNvbW1pdCBsb2cgaXMgYWxyZWFkeSByZWRhY3RlZCBhdCB3cml0ZS10aW1lLCBhbmQgdGhlIGV4ZWN1dGlvblxuICAgKiB0cmVlIG9ubHkgY2FycmllcyBzdHJ1Y3R1cmFsIG1ldGFkYXRhLlxuICAgKi9cbiAgZ2V0U25hcHNob3Qob3B0aW9ucz86IHsgcmVkYWN0PzogYm9vbGVhbiB9KTogUnVudGltZVNuYXBzaG90IHtcbiAgICBjb25zdCBzbmFwc2hvdFJvb3QgPSB0aGlzLl9zbmFwc2hvdFJvb3QgPz8gdGhpcy5yb290U3RhZ2VDb250ZXh0O1xuICAgIGNvbnN0IHVzZVJlZGFjdGVkID0gb3B0aW9ucz8ucmVkYWN0ID09PSB0cnVlICYmIHRoaXMucmVkYWN0ZWRTdG9yZSAhPT0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBzaGFyZWRTdGF0ZTogdXNlUmVkYWN0ZWQgPyB0aGlzLnJlZGFjdGVkU3RvcmUhLmdldFN0YXRlKCkgOiB0aGlzLmdsb2JhbFN0b3JlLmdldFN0YXRlKCksXG4gICAgICBleGVjdXRpb25UcmVlOiBzbmFwc2hvdFJvb3QuZ2V0U25hcHNob3QoKSxcbiAgICAgIGNvbW1pdExvZzogdGhpcy5leGVjdXRpb25IaXN0b3J5Lmxpc3QoKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0aW9uUnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcnVubmVyL0V4ZWN1dGlvblJ1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQUVILHVEQUFpRDtBQUNqRCwrREFBeUQ7QUFDekQsK0RBQXlEO0FBd0J6RCxNQUFhLGdCQUFnQjtJQUNwQixXQUFXLENBQWU7SUFDakM7Ozs7Ozs7O09BUUc7SUFDSSxhQUFhLENBQWdCO0lBQzdCLGdCQUFnQixDQUFlO0lBQy9CLGdCQUFnQixDQUFXO0lBQ2xDLG9GQUFvRjtJQUM1RSxhQUFhLENBQWdCO0lBQzdCLGFBQWEsQ0FBVTtJQUN2QixjQUFjLENBQVU7SUFFaEMsWUFBWSxRQUFnQixFQUFFLE1BQWMsRUFBRSxhQUF1QixFQUFFLFlBQXNCO1FBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHNCQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDhCQUFZLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLDhCQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSw4QkFBWSxDQUNuQyxJQUFJLENBQUMsY0FBYztRQUNuQixrRUFBa0U7UUFDbEUsb0VBQW9FO1FBQ3BFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQseUZBQXlGO0lBQ3pGLG9CQUFvQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWMsRUFBRSxHQUFXLEVBQUUsS0FBYztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsV0FBVyxDQUFDLE9BQThCO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDO1FBQ2pGLE9BQU87WUFDTCxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN2RixhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtTQUN4QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNUZELDRDQTRGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhlY3V0aW9uUnVudGltZSDigJQgVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIG9uZSBmbG93Y2hhcnQgZXhlY3V0aW9uLlxuICpcbiAqIFdpcmVzIHVwIHRoZSB0aHJlZSBtZW1vcnkgcHJpbWl0aXZlcyBpbnRvIGEgc2luZ2xlIGNvbnRhaW5lcjpcbiAqICAgLSBTaGFyZWRNZW1vcnkgKHRoZSBoZWFwIOKAlCBzaGFyZWQgc3RhdGUgYWNyb3NzIGFsbCBzdGFnZXMpXG4gKiAgIC0gU3RhZ2VDb250ZXh0ICAodGhlIGNhbGwgc3RhY2sg4oCUIHBlci1zdGFnZSBleGVjdXRpb24gdHJlZSlcbiAqICAgLSBFdmVudExvZyAgICAgICh0aGUgdHJhbnNhY3Rpb24gbG9nIOKAlCBjb21taXQgaGlzdG9yeSBmb3IgcmVwbGF5KVxuICpcbiAqIFRoZSBlbmdpbmUgKEZsb3djaGFydFRyYXZlcnNlcikgcmVjZWl2ZXMgdGhpcyBhcyBpdHMgcnVudGltZSBwYXJhbWV0ZXIuXG4gKiBBZnRlciBleGVjdXRpb24sIGNvbnN1bWVycyBxdWVyeSBpdCBmb3IgdGhlIGZ1bGwgZXhlY3V0aW9uIHN0YXRlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50TG9nIH0gZnJvbSAnLi4vbWVtb3J5L0V2ZW50TG9nLmpzJztcbmltcG9ydCB7IFNoYXJlZE1lbW9yeSB9IGZyb20gJy4uL21lbW9yeS9TaGFyZWRNZW1vcnkuanMnO1xuaW1wb3J0IHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbW1pdEJ1bmRsZSwgU3RhZ2VTbmFwc2hvdCB9IGZyb20gJy4uL21lbW9yeS90eXBlcy5qcyc7XG5cbi8qKiBTbmFwc2hvdCBvZiBhIHNpbmdsZSByZWNvcmRlcidzIGNvbGxlY3RlZCBkYXRhLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRlclNuYXBzaG90IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU2NvcGVSZWNvcmRlciB0eXBlIGFuZCBwYXR0ZXJuIGRlc2NyaXB0aW9uIChlLmcuLCBcIlRyYW5zbGF0b3IgKEtleWVkUmVjb3JkZXIpIOKAlCBwZXItc3RlcCB0b2tlbiB1c2FnZVwiKS4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBQcmVmZXJyZWQgcmVhZC10aW1lIG9wZXJhdGlvbiDigJQgaGludHMgdGhlIFVJIGFib3V0IHdoaWNoIHZpZXcgdG8gc2hvdyBwcm9taW5lbnRseS4gKi9cbiAgcHJlZmVycmVkT3BlcmF0aW9uPzogJ3RyYW5zbGF0ZScgfCAnYWNjdW11bGF0ZScgfCAnYWdncmVnYXRlJztcbiAgZGF0YTogdW5rbm93bjtcbn1cblxuZXhwb3J0IHR5cGUgUnVudGltZVNuYXBzaG90ID0ge1xuICBzaGFyZWRTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGV4ZWN1dGlvblRyZWU6IFN0YWdlU25hcHNob3Q7XG4gIGNvbW1pdExvZzogQ29tbWl0QnVuZGxlW107XG4gIC8qKiBQZXItc3ViZmxvdyBleGVjdXRpb24gcmVzdWx0cyAoa2V5ZWQgYnkgc3ViZmxvd0lkKS4gKi9cbiAgc3ViZmxvd1Jlc3VsdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIFNuYXBzaG90IGRhdGEgZnJvbSByZWNvcmRlcnMgdGhhdCBpbXBsZW1lbnQgdG9TbmFwc2hvdCgpLiAqL1xuICByZWNvcmRlcnM/OiBSZWNvcmRlclNuYXBzaG90W107XG59O1xuXG5leHBvcnQgY2xhc3MgRXhlY3V0aW9uUnVudGltZSB7XG4gIHB1YmxpYyBnbG9iYWxTdG9yZTogU2hhcmVkTWVtb3J5O1xuICAvKipcbiAgICogUGFyYWxsZWwgcmVkYWN0ZWQgbWlycm9yIG9mIGBnbG9iYWxTdG9yZWAuIFBvcHVsYXRlZCBkdXJpbmcgdHJhdmVyc2FsIHZpYVxuICAgKiBgU3RhZ2VDb250ZXh0LmNvbW1pdCgpYCB1c2luZyB0aGUgYWxyZWFkeS1jb21wdXRlZCByZWRhY3RlZCBwYXRjaGVzLlxuICAgKiBPbmx5IGV4aXN0cyB3aGVuIGBlbmFibGVSZWRhY3RlZE1pcnJvcigpYCBoYXMgYmVlbiBjYWxsZWQg4oCUIHR5cGljYWxseSBieVxuICAgKiBgRmxvd0NoYXJ0RXhlY3V0b3JgIHdoZW4gYSBgUmVkYWN0aW9uUG9saWN5YCBpcyBjb25maWd1cmVkLiBPdGhlcndpc2VcbiAgICogdW5kZWZpbmVkIGFuZCB6ZXJvIGNvc3QuXG4gICAqXG4gICAqIFJlYWQgdmlhIGBnZXRTbmFwc2hvdCh7IHJlZGFjdDogdHJ1ZSB9KWAuXG4gICAqL1xuICBwdWJsaWMgcmVkYWN0ZWRTdG9yZT86IFNoYXJlZE1lbW9yeTtcbiAgcHVibGljIHJvb3RTdGFnZUNvbnRleHQ6IFN0YWdlQ29udGV4dDtcbiAgcHVibGljIGV4ZWN1dGlvbkhpc3Rvcnk6IEV2ZW50TG9nO1xuICAvKiogT3JpZ2luYWwgcm9vdCBmb3IgZ2V0U25hcHNob3QoKSDigJQgc2V0IGJlZm9yZSByZXN1bWUgY2hhbmdlcyByb290U3RhZ2VDb250ZXh0LiAqL1xuICBwcml2YXRlIF9zbmFwc2hvdFJvb3Q/OiBTdGFnZUNvbnRleHQ7XG4gIHByaXZhdGUgX2luaXRpYWxTdGF0ZTogdW5rbm93bjtcbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlczogdW5rbm93bjtcblxuICBjb25zdHJ1Y3Rvcihyb290TmFtZTogc3RyaW5nLCByb290SWQ6IHN0cmluZywgZGVmYXVsdFZhbHVlcz86IHVua25vd24sIGluaXRpYWxTdGF0ZT86IHVua25vd24pIHtcbiAgICB0aGlzLl9pbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGU7XG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7XG4gICAgdGhpcy5leGVjdXRpb25IaXN0b3J5ID0gbmV3IEV2ZW50TG9nKGluaXRpYWxTdGF0ZSk7XG4gICAgdGhpcy5nbG9iYWxTdG9yZSA9IG5ldyBTaGFyZWRNZW1vcnkoZGVmYXVsdFZhbHVlcywgaW5pdGlhbFN0YXRlKTtcbiAgICB0aGlzLnJvb3RTdGFnZUNvbnRleHQgPSBuZXcgU3RhZ2VDb250ZXh0KCcnLCByb290TmFtZSwgcm9vdElkLCB0aGlzLmdsb2JhbFN0b3JlLCAnJywgdGhpcy5leGVjdXRpb25IaXN0b3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHQgaW4gdG8gbWFpbnRhaW5pbmcgYSBwYXJhbGxlbCByZWRhY3RlZCBtaXJyb3Igb2YgYGdsb2JhbFN0b3JlYC4gQWZ0ZXJcbiAgICogdGhpcyBjYWxsLCBldmVyeSBgU3RhZ2VDb250ZXh0LmNvbW1pdCgpYCBpbiB0aGUgcnVuIHdyaXRlcyB0aGUgcmVkYWN0ZWRcbiAgICogcGF0Y2hlcyAodGhlIHNhbWUgb25lcyBmZWQgdG8gdGhlIGV2ZW50IGxvZykgaW50byBgcmVkYWN0ZWRTdG9yZWAgaW5cbiAgICogYWRkaXRpb24gdG8gdGhlIHJhdyBvbmVzIHdyaXR0ZW4gdG8gYGdsb2JhbFN0b3JlYC5cbiAgICpcbiAgICogVGhlIG1pcnJvciBpcyBjcmVhdGVkIGxhemlseSBhbmQgcHJvcGFnYXRlZCBpbnRvIGFsbCBjaGlsZCAvIG5leHRcbiAgICogY29udGV4dHMsIHNvIGl0IGNvcnJlY3RseSByZWZsZWN0cyBzdWJmbG93LXNjb3BlIHdyaXRlcy4gV2hlbiBub1xuICAgKiBgUmVkYWN0aW9uUG9saWN5YCBpcyBjb25maWd1cmVkLCBjYWxsZXJzIHNob3VsZCBza2lwIHRoaXMg4oCUIHVudXNlZFxuICAgKiBhbGxvY2F0aW9uLCBubyBmdW5jdGlvbmFsIGRpZmZlcmVuY2UgaW4gdGhlIHNuYXBzaG90LlxuICAgKi9cbiAgZW5hYmxlUmVkYWN0ZWRNaXJyb3IoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVkYWN0ZWRTdG9yZSkgcmV0dXJuOyAvLyBpZGVtcG90ZW50XG4gICAgdGhpcy5yZWRhY3RlZFN0b3JlID0gbmV3IFNoYXJlZE1lbW9yeShcbiAgICAgIHRoaXMuX2RlZmF1bHRWYWx1ZXMsXG4gICAgICAvLyBTZWVkIHdpdGggdGhlIHNhbWUgaW5pdGlhbCBzdGF0ZSBhcyB0aGUgcmF3IHN0b3JlIHNvIHRoZSBtaXJyb3JcbiAgICAgIC8vIHN0YXJ0cyBmcm9tIGEgc2NydWJiZWQtbm90aGluZyBiYXNlbGluZTsgc3Vic2VxdWVudCBjb21taXRzIGFwcGx5XG4gICAgICAvLyB0aGUgcmVkYWN0ZWQgcGF0Y2hlcyBvbiB0b3AuXG4gICAgICB0aGlzLl9pbml0aWFsU3RhdGUsXG4gICAgKTtcbiAgICB0aGlzLnJvb3RTdGFnZUNvbnRleHQudXNlUmVkYWN0ZWRNaXJyb3IodGhpcy5yZWRhY3RlZFN0b3JlKTtcbiAgfVxuXG4gIC8qKiBQcmVzZXJ2ZSB0aGUgY3VycmVudCByb290U3RhZ2VDb250ZXh0IGZvciBzbmFwc2hvdHMgYmVmb3JlIGNoYW5naW5nIGl0IGZvciByZXN1bWUuICovXG4gIHByZXNlcnZlU25hcHNob3RSb290KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc25hcHNob3RSb290KSB7XG4gICAgICB0aGlzLl9zbmFwc2hvdFJvb3QgPSB0aGlzLnJvb3RTdGFnZUNvbnRleHQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0UGlwZWxpbmVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2xvYmFsU3RvcmUuZ2V0U3RhdGUoKTtcbiAgICByZXR1cm4gc3RhdGUucGlwZWxpbmVzID8gT2JqZWN0LmtleXMoc3RhdGUucGlwZWxpbmVzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA6IFtdO1xuICB9XG5cbiAgc2V0Um9vdE9iamVjdChwYXRoOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnNldE9iamVjdChwYXRoLCBrZXksIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHJ1bnRpbWUgc25hcHNob3QuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zLnJlZGFjdCAgV2hlbiBgdHJ1ZWAsIHJldHVybnMgYHNoYXJlZFN0YXRlYCBmcm9tIHRoZVxuICAgKiAgIHBhcmFsbGVsIHJlZGFjdGVkIG1pcnJvciAoaWYgb25lIHdhcyBlbmFibGVkKS4gVGhpcyBpcyB0aGUgc2FmZSB2aWV3XG4gICAqICAgZm9yIHNoYXJpbmcgdHJhY2VzIGV4dGVybmFsbHkg4oCUIHBhc3RlIGludG8gYSB2aWV3ZXIsIHNoaXAgdG8gc3VwcG9ydCxcbiAgICogICBldGMuIFdoZW4gdGhlIG1pcnJvciB3YXMgbmV2ZXIgZW5hYmxlZCwgZmFsbHMgYmFjayB0byByYXcgYGdsb2JhbFN0b3JlYFxuICAgKiAgIGFuZCBhIGRldi1tb2RlIHdhcm5pbmcgaXMgZW1pdHRlZCAoc2lsZW50IGluIHByb2R1Y3Rpb24pLlxuICAgKlxuICAgKiAgIERlZmF1bHQgYGZhbHNlYCBwcmVzZXJ2ZXMgdGhlIHJ1bnRpbWUgdmlldyDigJQgbmVjZXNzYXJ5IGZvciBwYXVzZSAvXG4gICAqICAgcmVzdW1lIChyZXN1bXB0aW9uIG11c3QgcmVwbGF5IGFnYWluc3QgdGhlIHJlYWwgdmFsdWVzLCBub3RcbiAgICogICAnW1JFREFDVEVEXScpLlxuICAgKlxuICAgKiBPdGhlciBmaWVsZHMgKGBleGVjdXRpb25UcmVlYCwgYGNvbW1pdExvZ2ApIGFyZSB0aGUgc2FtZSBlaXRoZXIgd2F5IOKAlFxuICAgKiB0aGUgY29tbWl0IGxvZyBpcyBhbHJlYWR5IHJlZGFjdGVkIGF0IHdyaXRlLXRpbWUsIGFuZCB0aGUgZXhlY3V0aW9uXG4gICAqIHRyZWUgb25seSBjYXJyaWVzIHN0cnVjdHVyYWwgbWV0YWRhdGEuXG4gICAqL1xuICBnZXRTbmFwc2hvdChvcHRpb25zPzogeyByZWRhY3Q/OiBib29sZWFuIH0pOiBSdW50aW1lU25hcHNob3Qge1xuICAgIGNvbnN0IHNuYXBzaG90Um9vdCA9IHRoaXMuX3NuYXBzaG90Um9vdCA/PyB0aGlzLnJvb3RTdGFnZUNvbnRleHQ7XG4gICAgY29uc3QgdXNlUmVkYWN0ZWQgPSBvcHRpb25zPy5yZWRhY3QgPT09IHRydWUgJiYgdGhpcy5yZWRhY3RlZFN0b3JlICE9PSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNoYXJlZFN0YXRlOiB1c2VSZWRhY3RlZCA/IHRoaXMucmVkYWN0ZWRTdG9yZSEuZ2V0U3RhdGUoKSA6IHRoaXMuZ2xvYmFsU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICAgIGV4ZWN1dGlvblRyZWU6IHNuYXBzaG90Um9vdC5nZXRTbmFwc2hvdCgpLFxuICAgICAgY29tbWl0TG9nOiB0aGlzLmV4ZWN1dGlvbkhpc3RvcnkubGlzdCgpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|