@effect-app/vue 4.0.0-beta.22 → 4.0.0-beta.220
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/CHANGELOG.md +1605 -0
- package/dist/commander.d.ts +628 -0
- package/dist/commander.d.ts.map +1 -0
- package/dist/commander.js +1060 -0
- package/dist/confirm.d.ts +19 -0
- package/dist/confirm.d.ts.map +1 -0
- package/dist/confirm.js +24 -0
- package/dist/errorReporter.d.ts +4 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -18
- package/dist/form.d.ts +14 -5
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +41 -12
- package/dist/index.d.ts +1 -1
- package/dist/intl.d.ts +15 -0
- package/dist/intl.d.ts.map +1 -0
- package/dist/intl.js +9 -0
- package/dist/lib.d.ts +6 -9
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +35 -10
- package/dist/makeClient.d.ts +152 -339
- package/dist/makeClient.d.ts.map +1 -1
- package/dist/makeClient.js +221 -376
- package/dist/makeContext.d.ts +1 -1
- package/dist/makeContext.d.ts.map +1 -1
- package/dist/makeIntl.d.ts +1 -1
- package/dist/makeIntl.d.ts.map +1 -1
- package/dist/makeUseCommand.d.ts +8 -0
- package/dist/makeUseCommand.d.ts.map +1 -0
- package/dist/makeUseCommand.js +13 -0
- package/dist/mutate.d.ts +52 -34
- package/dist/mutate.d.ts.map +1 -1
- package/dist/mutate.js +137 -46
- package/dist/query.d.ts +19 -39
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +128 -72
- package/dist/routeParams.d.ts +1 -1
- package/dist/runtime.d.ts +7 -4
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +27 -17
- package/dist/toast.d.ts +50 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +32 -0
- package/dist/withToast.d.ts +27 -0
- package/dist/withToast.d.ts.map +1 -0
- package/dist/withToast.js +59 -0
- package/examples/streamMutation.ts +70 -0
- package/package.json +48 -50
- package/src/commander.ts +3393 -0
- package/src/{experimental/confirm.ts → confirm.ts} +10 -14
- package/src/errorReporter.ts +62 -74
- package/src/form.ts +56 -17
- package/src/intl.ts +12 -0
- package/src/lib.ts +47 -20
- package/src/makeClient.ts +568 -1134
- package/src/{experimental/makeUseCommand.ts → makeUseCommand.ts} +6 -4
- package/src/mutate.ts +265 -127
- package/src/query.ts +197 -183
- package/src/runtime.ts +41 -20
- package/src/{experimental/toast.ts → toast.ts} +13 -27
- package/src/{experimental/withToast.ts → withToast.ts} +40 -12
- package/test/Mutation.test.ts +176 -23
- package/test/dist/form.test.d.ts.map +1 -1
- package/test/dist/lib.test.d.ts.map +1 -0
- package/test/dist/streamFinal.test.d.ts.map +1 -0
- package/test/dist/streamFn.test.d.ts.map +1 -0
- package/test/dist/stubs.d.ts +3529 -122
- package/test/dist/stubs.d.ts.map +1 -1
- package/test/dist/stubs.js +182 -31
- package/test/form-validation-errors.test.ts +23 -19
- package/test/form.test.ts +20 -2
- package/test/lib.test.ts +240 -0
- package/test/makeClient.test.ts +292 -38
- package/test/streamFinal.test.ts +63 -0
- package/test/streamFn.test.ts +455 -0
- package/test/stubs.ts +218 -42
- package/tsconfig.examples.json +20 -0
- package/tsconfig.json +0 -1
- package/tsconfig.json.bak +5 -2
- package/tsconfig.src.json +34 -34
- package/tsconfig.test.json +2 -2
- package/vitest.config.ts +5 -5
- package/dist/experimental/commander.d.ts +0 -359
- package/dist/experimental/commander.d.ts.map +0 -1
- package/dist/experimental/commander.js +0 -557
- package/dist/experimental/confirm.d.ts +0 -19
- package/dist/experimental/confirm.d.ts.map +0 -1
- package/dist/experimental/confirm.js +0 -28
- package/dist/experimental/intl.d.ts +0 -16
- package/dist/experimental/intl.d.ts.map +0 -1
- package/dist/experimental/intl.js +0 -5
- package/dist/experimental/makeUseCommand.d.ts +0 -8
- package/dist/experimental/makeUseCommand.d.ts.map +0 -1
- package/dist/experimental/makeUseCommand.js +0 -13
- package/dist/experimental/toast.d.ts +0 -47
- package/dist/experimental/toast.d.ts.map +0 -1
- package/dist/experimental/toast.js +0 -41
- package/dist/experimental/withToast.d.ts +0 -25
- package/dist/experimental/withToast.d.ts.map +0 -1
- package/dist/experimental/withToast.js +0 -45
- package/eslint.config.mjs +0 -24
- package/src/experimental/commander.ts +0 -1835
- package/src/experimental/intl.ts +0 -9
|
@@ -0,0 +1,628 @@
|
|
|
1
|
+
import { type MissingDependencies } from "@effect-app/vue";
|
|
2
|
+
import { Context, Effect, type Exit, type Fiber, Layer, Option, Predicate } from "effect-app";
|
|
3
|
+
import { type Refinement } from "effect/Predicate";
|
|
4
|
+
import * as Stream from "effect/Stream";
|
|
5
|
+
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
6
|
+
import { type FormatXMLElementFn, type PrimitiveType } from "intl-messageformat";
|
|
7
|
+
import { type ComputedRef } from "vue";
|
|
8
|
+
import { Confirm } from "./confirm.js";
|
|
9
|
+
import { I18n } from "./intl.js";
|
|
10
|
+
import { Toast } from "./toast.js";
|
|
11
|
+
import { WithToast } from "./withToast.js";
|
|
12
|
+
type IntlRecord = Record<string, PrimitiveType | FormatXMLElementFn<string, string>>;
|
|
13
|
+
/**
|
|
14
|
+
* Progress information surfaced by a stream command. Either a plain text label
|
|
15
|
+
* or a `{ text, percentage }` pair when concrete progress is known.
|
|
16
|
+
*/
|
|
17
|
+
export type Progress = string | {
|
|
18
|
+
readonly text: string;
|
|
19
|
+
readonly percentage: number;
|
|
20
|
+
};
|
|
21
|
+
type FnOptions<Id extends string, I18nCustomKey extends string, State extends IntlRecord | undefined> = {
|
|
22
|
+
i18nCustomKey?: I18nCustomKey;
|
|
23
|
+
/**
|
|
24
|
+
* passed to the i18n formatMessage calls so you can use it in translation messagee
|
|
25
|
+
* including the Command `action` string.
|
|
26
|
+
* Automatically wrapped with Computed if just a thunk.
|
|
27
|
+
* provided as Command.state tag, so you can access it in the function.
|
|
28
|
+
*/
|
|
29
|
+
state?: ComputedRef<State> | (() => State);
|
|
30
|
+
blockKey?: (id: Id) => string | undefined;
|
|
31
|
+
waitKey?: (id: Id) => string | undefined;
|
|
32
|
+
allowed?: (id: Id, state: ComputedRef<State>) => boolean;
|
|
33
|
+
};
|
|
34
|
+
type FnOptionsInternal<I18nCustomKey extends string> = {
|
|
35
|
+
i18nCustomKey?: I18nCustomKey | undefined;
|
|
36
|
+
state?: IntlRecord | undefined;
|
|
37
|
+
};
|
|
38
|
+
export declare const DefaultIntl: {
|
|
39
|
+
de: {
|
|
40
|
+
"handle.confirmation": string;
|
|
41
|
+
"handle.waiting": string;
|
|
42
|
+
"handle.success": string;
|
|
43
|
+
"handle.with_errors": string;
|
|
44
|
+
"handle.with_warnings": string;
|
|
45
|
+
"handle.error_response": string;
|
|
46
|
+
"handle.response_error": string;
|
|
47
|
+
"handle.request_error": string;
|
|
48
|
+
"handle.unexpected_error2": string;
|
|
49
|
+
"handle.unexpected_error": string;
|
|
50
|
+
"handle.not_found": string;
|
|
51
|
+
};
|
|
52
|
+
en: {
|
|
53
|
+
"handle.confirmation": string;
|
|
54
|
+
"handle.waiting": string;
|
|
55
|
+
"handle.success": string;
|
|
56
|
+
"handle.with_errors": string;
|
|
57
|
+
"handle.with_warnings": string;
|
|
58
|
+
"handle.error_response": string;
|
|
59
|
+
"handle.request_error": string;
|
|
60
|
+
"handle.response_error": string;
|
|
61
|
+
"handle.unexpected_error2": string;
|
|
62
|
+
"handle.unexpected_error": string;
|
|
63
|
+
"handle.not_found": string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
declare const CommandContext_base: Context.ServiceClass<CommandContext, "CommandContext", {
|
|
67
|
+
id: string;
|
|
68
|
+
i18nKey: string;
|
|
69
|
+
action: string;
|
|
70
|
+
label: string;
|
|
71
|
+
namespace: string;
|
|
72
|
+
namespaced: (key: string) => string;
|
|
73
|
+
state?: IntlRecord | undefined;
|
|
74
|
+
}>;
|
|
75
|
+
export declare class CommandContext extends CommandContext_base {
|
|
76
|
+
}
|
|
77
|
+
declare const CommandProgress_base: Context.Reference<{
|
|
78
|
+
readonly update: (progress: Progress | undefined) => Effect.Effect<void>;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Service available inside `streamFn` stream handlers that lets you imperatively push
|
|
82
|
+
* progress updates to the command's reactive `progress` ref.
|
|
83
|
+
*
|
|
84
|
+
* Use `Command.mapProgress(fn)` or `Command.updateProgress(progress)` to interact with this service.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* // Using mapProgress (recommended) — applied as a stream pipe operator:
|
|
89
|
+
* const exportCmd = Command.streamFn("exportData")(
|
|
90
|
+
* function*(arg, ctx) {
|
|
91
|
+
* return makeExportStream(arg.id).pipe(
|
|
92
|
+
* Command.mapProgress((r) =>
|
|
93
|
+
* AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
|
|
94
|
+
* ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
|
|
95
|
+
* : undefined
|
|
96
|
+
* )
|
|
97
|
+
* )
|
|
98
|
+
* }
|
|
99
|
+
* )
|
|
100
|
+
* // exportCmd.progress is updated for every OperationProgress event
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare class CommandProgress extends CommandProgress_base {
|
|
104
|
+
}
|
|
105
|
+
export type EmitWithCallback<A, Event extends string> = (event: Event, value: A, onDone: () => void) => void;
|
|
106
|
+
/**
|
|
107
|
+
* Use to wrap emit calls with a callback to signal completion.
|
|
108
|
+
* Useful when the publisher wants to wait for the subscriber to finish processing.
|
|
109
|
+
*/
|
|
110
|
+
export declare const wrapEmit: <A, Event extends string>(emit: EmitWithCallback<A, NoInfer<Event>>, event: Event) => (value: A) => Promise<void>;
|
|
111
|
+
export declare namespace Commander {
|
|
112
|
+
type IntlRecord = Record<string, PrimitiveType | FormatXMLElementFn<string, string>>;
|
|
113
|
+
type FnOptions<Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = {
|
|
114
|
+
i18nCustomKey?: I18nKey;
|
|
115
|
+
state?: ComputedRef<State> | (() => State);
|
|
116
|
+
blockKey?: (id: Id) => string | undefined;
|
|
117
|
+
waitKey?: (id: Id) => string | undefined;
|
|
118
|
+
allowed?: (id: Id, state: ComputedRef<State>) => boolean;
|
|
119
|
+
};
|
|
120
|
+
type CommanderBase<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = Gen<RT, Id, I18nKey, State> & NonGen<RT, Id, I18nKey, State> & CommandContextLocal<Id, I18nKey> & {
|
|
121
|
+
state: Context.Service<`Commander.Command.${Id}.state`, State>;
|
|
122
|
+
};
|
|
123
|
+
type CommanderFn<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = CommanderBase<RT, Id, I18nKey, State>;
|
|
124
|
+
type CommanderWrap<RT, Id extends string, I18nCustomKey extends string, State extends IntlRecord | undefined, I, A, E, R> = CommandContextLocal<Id, I18nCustomKey> & GenWrap<RT, Id, I18nCustomKey, I, A, E, R, State> & NonGenWrap<RT, Id, I18nCustomKey, I, A, E, R, State> & {
|
|
125
|
+
state: Context.Service<`Commander.Command.${Id}.state`, State>;
|
|
126
|
+
};
|
|
127
|
+
interface CommandContextLocal<Id extends string, I18nKey extends string> {
|
|
128
|
+
id: Id;
|
|
129
|
+
i18nKey: I18nKey;
|
|
130
|
+
namespace: `action.${I18nKey}`;
|
|
131
|
+
namespaced: <K extends string>(k: K) => `action.${I18nKey}.${K}`;
|
|
132
|
+
}
|
|
133
|
+
interface CommandProps<A, E, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> extends CommandContextLocal<Id, I18nKey> {
|
|
134
|
+
/** reactive */
|
|
135
|
+
action: string;
|
|
136
|
+
/** reactive */
|
|
137
|
+
label: string;
|
|
138
|
+
/** reactive */
|
|
139
|
+
result: AsyncResult.AsyncResult<A, E>;
|
|
140
|
+
/**
|
|
141
|
+
* reactive – formatted progress info driven by `Command.mapProgress` or `Command.updateProgress`
|
|
142
|
+
* inside a `streamFn` handler. Undefined for non-stream commands.
|
|
143
|
+
*/
|
|
144
|
+
progress: Progress | undefined;
|
|
145
|
+
/** reactive */
|
|
146
|
+
waiting: boolean;
|
|
147
|
+
/** reactive */
|
|
148
|
+
blocked: boolean;
|
|
149
|
+
/** reactive */
|
|
150
|
+
allowed: boolean;
|
|
151
|
+
/** reactive */
|
|
152
|
+
state: State;
|
|
153
|
+
}
|
|
154
|
+
interface CommandOut<Arg, A, E, R, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> extends CommandProps<A, E, Id, I18nKey, State> {
|
|
155
|
+
new (): {};
|
|
156
|
+
/** click handlers */
|
|
157
|
+
handle: ((arg: Arg) => Fiber.Fiber<Exit.Exit<A, E>>) & {
|
|
158
|
+
/** @deprecated don't exist */
|
|
159
|
+
effect: (arg: Arg) => Effect.Effect<A, E, R>;
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
interface CommandContextLocal2<Id extends string, I18nKey extends string, State extends IntlRecord | undefined> extends CommandContextLocal<Id, I18nKey> {
|
|
163
|
+
state: State;
|
|
164
|
+
}
|
|
165
|
+
type ArgForCombinator<Arg> = [Arg] extends [void] ? undefined : NoInfer<Arg>;
|
|
166
|
+
type CommandOutHelper<Arg, Eff extends Effect.Effect<any, any, any>, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = CommandOut<Arg, Effect.Success<Eff>, Effect.Error<Eff>, Effect.Services<Eff>, Id, I18nKey, State>;
|
|
167
|
+
type Gen<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = {
|
|
168
|
+
<Eff extends Effect.Yieldable<any, any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, AEff, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>): CommandOut<Arg, AEff, [
|
|
169
|
+
Eff
|
|
170
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
171
|
+
Eff
|
|
172
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never, Id, I18nKey, State>;
|
|
173
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
174
|
+
Eff
|
|
175
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
176
|
+
Eff
|
|
177
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOutHelper<Arg, A, Id, I18nKey, State>;
|
|
178
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
179
|
+
Eff
|
|
180
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
181
|
+
Eff
|
|
182
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B): CommandOutHelper<Arg, B, Id, I18nKey, State>;
|
|
183
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
184
|
+
Eff
|
|
185
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
186
|
+
Eff
|
|
187
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C): CommandOutHelper<Arg, C, Id, I18nKey, State>;
|
|
188
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C, D extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
189
|
+
Eff
|
|
190
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
191
|
+
Eff
|
|
192
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D): CommandOutHelper<Arg, D, Id, I18nKey, State>;
|
|
193
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C, D, E extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
194
|
+
Eff
|
|
195
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
196
|
+
Eff
|
|
197
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E): CommandOutHelper<Arg, E, Id, I18nKey, State>;
|
|
198
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C, D, E, F extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
199
|
+
Eff
|
|
200
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
201
|
+
Eff
|
|
202
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F): CommandOutHelper<Arg, F, Id, I18nKey, State>;
|
|
203
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C, D, E, F, G extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
204
|
+
Eff
|
|
205
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
206
|
+
Eff
|
|
207
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, g: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G): CommandOutHelper<Arg, G, Id, I18nKey, State>;
|
|
208
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C, D, E, F, G, H extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
209
|
+
Eff
|
|
210
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
211
|
+
Eff
|
|
212
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, g: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, h: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H): CommandOutHelper<Arg, H, Id, I18nKey, State>;
|
|
213
|
+
<Eff extends Effect.Yieldable<any, any, any, any>, AEff, A, B, C, D, E, F, G, H, I extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, AEff, never>, a: (_: Effect.Effect<AEff, [
|
|
214
|
+
Eff
|
|
215
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never, [
|
|
216
|
+
Eff
|
|
217
|
+
] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, g: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, h: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H, i: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => I): CommandOutHelper<Arg, I, Id, I18nKey, State>;
|
|
218
|
+
};
|
|
219
|
+
type NonGen<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = {
|
|
220
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
221
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
222
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
223
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
224
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, D, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
225
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, D, E, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
226
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, D, E, F, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
227
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, D, E, F, G, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, g: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
228
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, D, E, F, G, H, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, g: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H, h: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
229
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, A, B, C, D, E, F, G, H, I, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => A, a: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, g: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H, h: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => I, i: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
230
|
+
};
|
|
231
|
+
type GenWrap<RT, Id extends string, I18nKey extends string, Arg, AEff, EEff, REff, State extends IntlRecord | undefined> = {
|
|
232
|
+
(): Exclude<REff, RT> extends never ? CommandOut<Arg, AEff, EEff, REff, Id, I18nKey, State> : MissingDependencies<RT, REff> & {};
|
|
233
|
+
<A extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOutHelper<Arg, A, Id, I18nKey, State>;
|
|
234
|
+
<A, B extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B): CommandOutHelper<Arg, B, Id, I18nKey, State>;
|
|
235
|
+
<A, B, C extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C): CommandOutHelper<Arg, C, Id, I18nKey, State>;
|
|
236
|
+
<A, B, C, D extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D): CommandOutHelper<Arg, D, Id, I18nKey, State>;
|
|
237
|
+
<A, B, C, D, E extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E): CommandOutHelper<Arg, E, Id, I18nKey, State>;
|
|
238
|
+
<A, B, C, D, E, F extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F): CommandOutHelper<Arg, F, Id, I18nKey, State>;
|
|
239
|
+
<A, B, C, D, E, F, G extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, g: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G): CommandOutHelper<Arg, G, Id, I18nKey, State>;
|
|
240
|
+
<A, B, C, D, E, F, G, H extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, g: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, h: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H): CommandOutHelper<Arg, H, Id, I18nKey, State>;
|
|
241
|
+
<A, B, C, D, E, F, G, H, I extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A, b: (_: A, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, c: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, d: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, e: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, f: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, g: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, h: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H, i: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => I): CommandOutHelper<Arg, I, Id, I18nKey, State>;
|
|
242
|
+
};
|
|
243
|
+
type NonGenWrap<RT, Id extends string, I18nKey extends string, Arg, AEff, EEff, REff, State extends IntlRecord | undefined> = {
|
|
244
|
+
(): Exclude<REff, RT> extends never ? CommandOutHelper<Arg, Effect.Effect<AEff, EEff, REff>, Id, I18nKey, State> : MissingDependencies<RT, REff> & {};
|
|
245
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
246
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
247
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
248
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, D, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
249
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, D, E, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
250
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, D, E, F, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
251
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, D, E, F, G, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, g: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
252
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, D, E, F, G, H, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, g: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H, h: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
253
|
+
<Eff extends Effect.Effect<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, B, C, D, E, F, G, H, I, Arg>(a: (_: Effect.Effect<AEff, EEff, REff>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => E, e: (_: E, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => F, f: (_: F, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => G, g: (_: G, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => H, h: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => I, i: (_: H, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => Eff): CommandOutHelper<Arg, Eff, Id, I18nKey, State>;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Type for `streamFn` — generator overload where the body yields Effects and returns a `Stream`.
|
|
257
|
+
* `waiting` stays `true` while the stream is running, and updates the `result` ref per emitted value.
|
|
258
|
+
*/
|
|
259
|
+
type StreamGen<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = {
|
|
260
|
+
<Eff extends Effect.Yieldable<any, any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, SA, SE, SR, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, Stream.Stream<SA, SE, SR>, never>): CommandOut<Arg, SA, SE | ([Eff] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never), SR | ([Eff] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never), Id, I18nKey, State>;
|
|
261
|
+
<Eff extends Effect.Yieldable<any, any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, SA, SE, SR, B, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Generator<Eff, Stream.Stream<SA, SE, SR>, never>, a: (_: Effect.Effect<Stream.Stream<SA, SE, SR>, ([Eff] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer E, infer _R>] ? E : never), ([Eff] extends [never] ? never : [Eff] extends [Effect.Yieldable<any, infer _A, infer _E, infer R>] ? R : never)>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B): B extends Stream.Stream<infer SA2, infer SE2, infer SR2> ? CommandOut<Arg, SA2, SE2, SR2, Id, I18nKey, State> : B extends Effect.Effect<Stream.Stream<infer SA2, infer SE2, infer SR2>, infer EE2, infer ER2> ? CommandOut<Arg, SA2, SE2 | EE2, SR2 | ER2, Id, I18nKey, State> : never;
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* Type for `streamFn` — non-generator overload accepting a function that returns a `Stream` directly,
|
|
265
|
+
* or an `Effect` that resolves to a `Stream`.
|
|
266
|
+
*/
|
|
267
|
+
type NonGenStream<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined> = {
|
|
268
|
+
<SA, SE, SR extends RT | CommandContext | `Commander.Command.${Id}.state`, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Stream.Stream<SA, SE, SR>): CommandOut<Arg, SA, SE, SR, Id, I18nKey, State>;
|
|
269
|
+
<SA, SE, SR, A extends Stream.Stream<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Stream.Stream<SA, SE, SR>, a: (_: Stream.Stream<SA, SE, SR>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOut<Arg, Stream.Success<A>, Stream.Error<A>, Stream.Services<A>, Id, I18nKey, State>;
|
|
270
|
+
<SA, SE, SR, EE, ER extends RT | CommandContext | `Commander.Command.${Id}.state`, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Effect.Effect<Stream.Stream<SA, SE, SR>, EE, ER>): CommandOut<Arg, SA, SE | EE, SR | ER, Id, I18nKey, State>;
|
|
271
|
+
<SA, SE, SR, EE, ER, B, Arg = void>(body: (arg: Arg, ctx: CommandContextLocal2<Id, I18nKey, State>) => Effect.Effect<Stream.Stream<SA, SE, SR>, EE, ER>, a: (_: Effect.Effect<Stream.Stream<SA, SE, SR>, EE, ER>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B): B extends Stream.Stream<infer SA2, infer SE2, infer SR2> ? CommandOut<Arg, SA2, SE2, SR2, Id, I18nKey, State> : B extends Effect.Effect<Stream.Stream<infer SA2, infer SE2, infer SR2>, infer EE2, infer ER2> ? CommandOut<Arg, SA2, SE2 | EE2, SR2 | ER2, Id, I18nKey, State> : never;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Type returned by `mutate.wrap` on a stream handler — analogous to `CommanderWrap` but for streams.
|
|
275
|
+
* The handler is pre-baked (from the stream mutation), so this is called with only optional combinators.
|
|
276
|
+
*/
|
|
277
|
+
type StreamerWrap<RT, Id extends string, I18nKey extends string, State extends IntlRecord | undefined, Arg, SA, SE, SR> = CommandContextLocal<Id, I18nKey> & {
|
|
278
|
+
readonly state: Context.Service<`Commander.Command.${Id}.state`, State>;
|
|
279
|
+
} & {
|
|
280
|
+
(): Exclude<SR, RT> extends never ? CommandOut<Arg, SA, SE, SR, Id, I18nKey, State> : MissingDependencies<RT, SR> & {};
|
|
281
|
+
<A extends Stream.Stream<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Stream.Stream<SA, SE, SR>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOut<Arg, Stream.Success<A>, Stream.Error<A>, Stream.Services<A>, Id, I18nKey, State>;
|
|
282
|
+
<B, A extends Stream.Stream<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Stream.Stream<SA, SE, SR>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOut<Arg, Stream.Success<A>, Stream.Error<A>, Stream.Services<A>, Id, I18nKey, State>;
|
|
283
|
+
<B, C, A extends Stream.Stream<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Stream.Stream<SA, SE, SR>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOut<Arg, Stream.Success<A>, Stream.Error<A>, Stream.Services<A>, Id, I18nKey, State>;
|
|
284
|
+
<B, C, D, A extends Stream.Stream<any, any, RT | CommandContext | `Commander.Command.${Id}.state`>>(a: (_: Stream.Stream<SA, SE, SR>, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => B, b: (_: B, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => C, c: (_: C, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => D, d: (_: D, arg: ArgForCombinator<Arg>, ctx: CommandContextLocal2<NoInfer<Id>, NoInfer<I18nKey>, NoInfer<State>>) => A): CommandOut<Arg, Stream.Success<A>, Stream.Error<A>, Stream.Services<A>, Id, I18nKey, State>;
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
type ErrorRenderer<E, Args extends readonly any[]> = (e: E, action: string, ...args: Args) => string | undefined;
|
|
288
|
+
type RegisteredErrorRenderer<A> = {
|
|
289
|
+
guard: Refinement<unknown, A>;
|
|
290
|
+
render: (guarded: A) => string | undefined;
|
|
291
|
+
};
|
|
292
|
+
declare const CommanderErrorRenderers_base: Context.Reference<RegisteredErrorRenderer<any>[]>;
|
|
293
|
+
export declare class CommanderErrorRenderers extends CommanderErrorRenderers_base {
|
|
294
|
+
}
|
|
295
|
+
export declare const makeRegisteredErrorRenderer: <A>(guard: Predicate.Refinement<unknown, A>, render: (guarded: A) => string | undefined) => RegisteredErrorRenderer<A>;
|
|
296
|
+
export declare const CommanderStatic: {
|
|
297
|
+
accessArgs: <In, Out, Arg2, Arg = void>(cb: (a: NoInfer<Arg>, b: NoInfer<Arg2>) => (self: NoInfer<In>) => Out) => (self: In, arg: Arg, arg2: Arg2) => Out;
|
|
298
|
+
/**
|
|
299
|
+
* Stream pipe operator that maps each emitted value to a `Progress` entry and updates the
|
|
300
|
+
* command's reactive `progress` ref via the `CommandProgress` service.
|
|
301
|
+
*
|
|
302
|
+
* The mapper receives an `AsyncResult<A, E>` (each emitted value wrapped as
|
|
303
|
+
* `AsyncResult.success(value, { waiting: true })`), matching the same shape used by
|
|
304
|
+
* `CommandButton`'s `:progress-map` prop.
|
|
305
|
+
*
|
|
306
|
+
* Designed to be used inside a `streamFn` handler (either directly with `.pipe()`, or as
|
|
307
|
+
* a combinator argument):
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```ts
|
|
311
|
+
* // Inside the handler body:
|
|
312
|
+
* Command.streamFn("exportData")(function*(arg, ctx) {
|
|
313
|
+
* return makeExportStream(arg.id).pipe(
|
|
314
|
+
* Command.mapProgress((r) =>
|
|
315
|
+
* AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
|
|
316
|
+
* ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
|
|
317
|
+
* : undefined
|
|
318
|
+
* )
|
|
319
|
+
* )
|
|
320
|
+
* })
|
|
321
|
+
*
|
|
322
|
+
* // Or as a stream combinator argument:
|
|
323
|
+
* Command.streamFn("exportData")(
|
|
324
|
+
* function*(arg, ctx) { return makeExportStream(arg.id) },
|
|
325
|
+
* (s) => s.pipe(Command.mapProgress((r) => AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress" ? { text: `${r.value.completed}/${r.value.total}` } : undefined))
|
|
326
|
+
* )
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
mapProgress: <A, E>(fn: (result: AsyncResult.AsyncResult<A, E>) => Progress | undefined) => <R>(stream: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>;
|
|
330
|
+
/**
|
|
331
|
+
* Imperatively push a progress update from inside a `streamFn` handler.
|
|
332
|
+
* Requires `CommandProgress` to be in context — provided automatically for all `streamFn` streams.
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```ts
|
|
336
|
+
* // In a streamFn handler:
|
|
337
|
+
* stream.pipe(
|
|
338
|
+
* Stream.tap((event) =>
|
|
339
|
+
* event._tag === "OperationProgress"
|
|
340
|
+
* ? Command.updateProgress({ text: `${event.completed}/${event.total}`, percentage: event.completed / event.total * 100 })
|
|
341
|
+
* : Effect.void
|
|
342
|
+
* )
|
|
343
|
+
* )
|
|
344
|
+
* ```
|
|
345
|
+
*/
|
|
346
|
+
updateProgress: (progress: Progress | undefined) => Effect.Effect<void>;
|
|
347
|
+
/** Version of @see confirmOrInterrupt that automatically includes the action name in the default messages */
|
|
348
|
+
confirmOrInterrupt: (message?: string | undefined) => Effect.Effect<void, never, CommandContext | Confirm | I18n>;
|
|
349
|
+
/** Version of @see confirm that automatically includes the action name in the default messages */
|
|
350
|
+
confirm: (message?: string | undefined) => Effect.Effect<boolean, never, CommandContext | Confirm | I18n>;
|
|
351
|
+
updateAction: <Args extends Array<unknown>>(update: (currentActionId: string, ...args: Args) => string) => <A, E, R>(_: Effect.Effect<A, E, R>, ...input: Args) => Effect.Effect<A, E, R | CommandContext>;
|
|
352
|
+
registerErrorRenderer: <A>(guard: Predicate.Refinement<unknown, A>, render: (guarded: A) => string | undefined) => Layer.Layer<never, never, never>;
|
|
353
|
+
defaultFailureMessageHandler: <E, Args extends Array<unknown>, AME, AMR>(actionMaker: string | ((o: Option.Option<E>, ...args: Args) => string) | ((o: Option.Option<E>, ...args: Args) => Effect.Effect<string, AME, AMR>), errorRenderer?: ErrorRenderer<E, Args>) => (o: Option.Option<E>, ...args: Args) => Effect.Effect<string | {
|
|
354
|
+
level: "warn";
|
|
355
|
+
message: string;
|
|
356
|
+
}, AME, AMR | I18n>;
|
|
357
|
+
renderError: Effect.Effect<<E, Args extends readonly any[]>(action: string, errorRenderer?: ErrorRenderer<E, Args>) => (e: E, ...args: Args) => string, never, I18n>;
|
|
358
|
+
/**
|
|
359
|
+
* Version of withDefaultToast that automatically includes the action name in the default messages and uses intl.
|
|
360
|
+
* uses the Command id as i18n namespace. `action.{id}` is the main action name,
|
|
361
|
+
* and `action.{id}.waiting`, `action.{id}.success`, `action.{id}.failure` can be used to override the default messages for the respective states.
|
|
362
|
+
*
|
|
363
|
+
* the computed `state` provided to the Command can be used for interpolation in the i18n messages. (the state is captured at the start of each command execution and remains stable throughout)
|
|
364
|
+
*
|
|
365
|
+
* Note: if you provide `onWaiting` or `onSuccess` as `null`, no toast will be shown for that state.
|
|
366
|
+
* If you provide a string or function, it will be used instead of the i18n message.
|
|
367
|
+
* If you provide an `errorRenderer`, it will be used to render errors in the failure message.
|
|
368
|
+
*/
|
|
369
|
+
withDefaultToast: <A, E, R, Args extends Array<unknown>>(options?: {
|
|
370
|
+
/**
|
|
371
|
+
* if true, previous toasts with this key will be replaced
|
|
372
|
+
*/
|
|
373
|
+
stableToastId?: undefined | true | string | ((id: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => true | string | undefined);
|
|
374
|
+
errorRenderer?: (e: E, action: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | undefined;
|
|
375
|
+
showSpanInfo?: false;
|
|
376
|
+
onWaiting?: null | undefined | string | ((id: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | null | undefined);
|
|
377
|
+
onSuccess?: null | undefined | string | ((a: A, action: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | null | undefined);
|
|
378
|
+
}) => (self: Effect.Effect<A, E, R>, ...args: Args) => Effect.Effect<A, E, R | CommandContext | I18n | WithToast>;
|
|
379
|
+
/**
|
|
380
|
+
* Stream-aware version of `withDefaultToast`. Use this as a combinator inside `streamFn`
|
|
381
|
+
* (or anywhere a `Stream` needs toast lifecycle handling) instead of `withDefaultToast`.
|
|
382
|
+
*
|
|
383
|
+
* Unlike `withDefaultToast` (which only wraps the initial `Effect`), this combinator:
|
|
384
|
+
* - Shows the "waiting" toast **before** the stream starts
|
|
385
|
+
* - Updates the waiting toast with progress text when `progress` is set and a new element arrives
|
|
386
|
+
* - Shows the "success" toast only **after** the stream drains fully without error
|
|
387
|
+
* - Shows the "failure" toast if the stream errors or fails
|
|
388
|
+
*
|
|
389
|
+
* Accepts either a `Stream<A, E, R>` or an `Effect<Stream<A, E, R>, EE, ER>` as input,
|
|
390
|
+
* so it works in both the `NonGenStream` and `StreamGen` overloads of `streamFn`.
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* ```ts
|
|
394
|
+
* Command.streamFn("exportData")(
|
|
395
|
+
* function*(arg, ctx) { return makeExportStream(arg.id) },
|
|
396
|
+
* Command.withDefaultToastStream({
|
|
397
|
+
* progress: (r) =>
|
|
398
|
+
* AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
|
|
399
|
+
* ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
|
|
400
|
+
* : undefined
|
|
401
|
+
* })
|
|
402
|
+
* )
|
|
403
|
+
* ```
|
|
404
|
+
*/
|
|
405
|
+
withDefaultToastStream: <A, E, R, Args extends Array<unknown>>(options?: {
|
|
406
|
+
stableToastId?: undefined | true | string | ((id: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => true | string | undefined);
|
|
407
|
+
errorRenderer?: (e: E, action: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | undefined;
|
|
408
|
+
showSpanInfo?: false;
|
|
409
|
+
onWaiting?: null | undefined | string | ((id: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | null | undefined);
|
|
410
|
+
onSuccess?: null | undefined | string | ((a: A, action: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | null | undefined);
|
|
411
|
+
/** Map each stream element to a progress label. When non-`undefined`, updates both the active waiting toast and the `CommandProgress` service (for CommandButton progress display). */
|
|
412
|
+
progress?: (result: AsyncResult.AsyncResult<A, E>) => Progress | undefined;
|
|
413
|
+
}) => (self: Stream.Stream<A, E, R> | Effect.Effect<Stream.Stream<A, E, R>, any, any>, ...args: Args) => Stream.Stream<A, E, R | I18n | Toast | CommandContext>;
|
|
414
|
+
/** borrowing the idea from Families in Effect Atom */
|
|
415
|
+
family: <T extends object, Arg, ArgIn = Arg>(maker: (arg: Arg) => T, keyMaker?: (arg: ArgIn) => Arg) => (arg: ArgIn) => T;
|
|
416
|
+
};
|
|
417
|
+
export declare class CommanderImpl<RT, RTHooks> {
|
|
418
|
+
private readonly rt;
|
|
419
|
+
private readonly intl;
|
|
420
|
+
private readonly hooks;
|
|
421
|
+
constructor(rt: Context.Context<RT>, intl: I18n, hooks: Layer.Layer<RTHooks, never, RT>);
|
|
422
|
+
readonly makeContext: <const Id extends string, const I18nKey extends string = Id>(id: Id, options?: FnOptionsInternal<I18nKey>) => {
|
|
423
|
+
id: string;
|
|
424
|
+
i18nKey: string;
|
|
425
|
+
action: string;
|
|
426
|
+
label: string;
|
|
427
|
+
namespace: string;
|
|
428
|
+
namespaced: (key: string) => string;
|
|
429
|
+
state?: IntlRecord | undefined;
|
|
430
|
+
};
|
|
431
|
+
readonly makeCommand: <const Id extends string, const State extends IntlRecord | undefined, const I18nKey extends string = Id>(id_: Id | {
|
|
432
|
+
id: Id;
|
|
433
|
+
}, options?: FnOptions<Id, I18nKey, State>, errorDef?: Error) => (<Arg, A, E, R extends RT | RTHooks | CommandContext | `Commander.Command.${Id}.state`>(handler: (arg: Arg, ctx: Commander.CommandContextLocal2<Id, I18nKey, State>) => Effect.Effect<A, E, R>) => {
|
|
434
|
+
id: import("vue").UnwrapRef<Id>;
|
|
435
|
+
i18nKey: string;
|
|
436
|
+
namespace: string;
|
|
437
|
+
namespaced: (key: string) => string;
|
|
438
|
+
result: AsyncResult.AsyncResult<A, E>;
|
|
439
|
+
progress: undefined;
|
|
440
|
+
waiting: boolean;
|
|
441
|
+
blocked: boolean;
|
|
442
|
+
allowed: boolean;
|
|
443
|
+
action: string;
|
|
444
|
+
label: string;
|
|
445
|
+
state: State;
|
|
446
|
+
handle: ((arg: Arg) => Fiber.Fiber<Exit.Exit<A, E>, never>) & {
|
|
447
|
+
action: ComputedRef<string>;
|
|
448
|
+
label: ComputedRef<string>;
|
|
449
|
+
};
|
|
450
|
+
}) & {
|
|
451
|
+
id: Id;
|
|
452
|
+
};
|
|
453
|
+
/**
|
|
454
|
+
* Define a Command for handling user actions with built-in error reporting and state management.
|
|
455
|
+
*
|
|
456
|
+
* @param id The internal identifier for the action. Used as a tracing span and to lookup
|
|
457
|
+
* the user-facing name via internationalization (`action.${id}`).
|
|
458
|
+
* @param options Optional configuration for internationalization and state.
|
|
459
|
+
* @param options.i18nCustomKey Custom i18n key to use instead of `id` (e.g., for grouping similar actions)
|
|
460
|
+
* @param options.state Optional reactive state object (or function returning one) that is
|
|
461
|
+
* made available to the command effects and can be used for i18n interpolation.
|
|
462
|
+
* The state is captured at the start of each command execution and remains stable throughout.
|
|
463
|
+
* @returns A function that executes the command when called (e.g., directly in `@click` handlers).
|
|
464
|
+
* Built-in error reporting handles failures automatically.
|
|
465
|
+
*
|
|
466
|
+
* **Effect Context**: Effects have access to the `CommandContext` service, which provides
|
|
467
|
+
* the user-facing action name.
|
|
468
|
+
*
|
|
469
|
+
* **Returned Properties**:
|
|
470
|
+
* - `action`: User-facing action name from intl messages (useful for button labels)
|
|
471
|
+
* - `result`: The command result state
|
|
472
|
+
* - `waiting`: Boolean indicating if the command is in progress (shorthand for `result.waiting`)
|
|
473
|
+
* - `handle`: Function to execute the command
|
|
474
|
+
* - `exec`: The raw Effect that will be executed when calling `handle` (for advanced use cases)
|
|
475
|
+
* - `i18nKey`, `namespace`, `namespaced`: Helpers for internationalization keys
|
|
476
|
+
*
|
|
477
|
+
* **User Feedback**: Use the `withDefaultToast` helper for status notifications, or render
|
|
478
|
+
* the `result` inline for custom UI feedback.
|
|
479
|
+
*/
|
|
480
|
+
fn: <const Id extends string, const State extends IntlRecord = IntlRecord, const I18nKey extends string = Id>(id: Id | {
|
|
481
|
+
id: Id;
|
|
482
|
+
}, options?: FnOptions<Id, I18nKey, State>) => Commander.Gen<RT | RTHooks, Id, I18nKey, State> & Commander.NonGen<RT | RTHooks, Id, I18nKey, State> & {
|
|
483
|
+
state: Context.Service<`Commander.Command.${Id}.state`, State>;
|
|
484
|
+
};
|
|
485
|
+
/**
|
|
486
|
+
* Internal factory for stream-backed commands. Accepts a handler that returns a `Stream` directly.
|
|
487
|
+
* Services (`CommandContext`, `stateTag`) are provided to the stream via `Stream.provideServiceEffect`.
|
|
488
|
+
*/
|
|
489
|
+
readonly makeStreamCommand: <const Id extends string, const State extends IntlRecord | undefined, const I18nKey extends string = Id>(id_: Id | {
|
|
490
|
+
id: Id;
|
|
491
|
+
}, options?: FnOptions<Id, I18nKey, State>, errorDef?: Error) => (<Arg, SA, SE, SR>(handler: (arg: Arg, ctx: Commander.CommandContextLocal2<Id, I18nKey, State>) => Stream.Stream<SA, SE, SR>) => {
|
|
492
|
+
id: import("vue").UnwrapRef<Id>;
|
|
493
|
+
i18nKey: string;
|
|
494
|
+
namespace: string;
|
|
495
|
+
namespaced: (key: string) => string;
|
|
496
|
+
result: AsyncResult.AsyncResult<SA, SE>;
|
|
497
|
+
progress: string | {
|
|
498
|
+
readonly text: string;
|
|
499
|
+
readonly percentage: number;
|
|
500
|
+
} | undefined;
|
|
501
|
+
waiting: boolean;
|
|
502
|
+
blocked: boolean;
|
|
503
|
+
allowed: boolean;
|
|
504
|
+
action: string;
|
|
505
|
+
label: string;
|
|
506
|
+
state: State;
|
|
507
|
+
handle: ((arg: Arg) => Fiber.Fiber<unknown, unknown>) & {
|
|
508
|
+
action: ComputedRef<string>;
|
|
509
|
+
label: ComputedRef<string>;
|
|
510
|
+
};
|
|
511
|
+
}) & {
|
|
512
|
+
id: Id;
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* Define a stream-backed Command for handling user actions.
|
|
516
|
+
*
|
|
517
|
+
* Like `fn`, but the body generator (or function) must **return** a `Stream` rather than
|
|
518
|
+
* an `Effect`. The command's `waiting` state stays `true` while the stream is running and
|
|
519
|
+
* is set to `false` once it terminates. The reactive `result` ref is updated for every
|
|
520
|
+
* value emitted by the stream.
|
|
521
|
+
*
|
|
522
|
+
* Three handler shapes are accepted:
|
|
523
|
+
* 1. **Generator returning a Stream** (primary) — may yield Effects freely before returning the stream:
|
|
524
|
+
* ```ts
|
|
525
|
+
* Command.streamFn("exportData")(
|
|
526
|
+
* function*(arg, ctx) {
|
|
527
|
+
* const token = yield* getAuthToken
|
|
528
|
+
* return Stream.fromEffect(startExport(token, arg.id)).pipe(
|
|
529
|
+
* Stream.flatMap((job) => pollProgress(job.id))
|
|
530
|
+
* )
|
|
531
|
+
* }
|
|
532
|
+
* )
|
|
533
|
+
* ```
|
|
534
|
+
* 2. **Function returning a Stream directly**: `(arg, ctx) => Stream.make(1, 2, 3)`
|
|
535
|
+
* 3. **Function returning `Effect<Stream>`**: `(arg, ctx) => Effect.map(setup, (s) => s.stream)`
|
|
536
|
+
*
|
|
537
|
+
* @param id The internal identifier for the action (used for tracing and i18n lookup).
|
|
538
|
+
* @param options Same options as `fn` (`state`, `blockKey`, `waitKey`, `allowed`, `i18nCustomKey`).
|
|
539
|
+
*
|
|
540
|
+
* **Progress** — use `Command.mapProgress(fn)` as a stream pipe operator; the mapper receives
|
|
541
|
+
* `AsyncResult<A, E>` (each value wrapped as `AsyncResult.success(v, { waiting: true })`),
|
|
542
|
+
* matching the same shape as CommandButton’s `:progress-map` prop. Or call
|
|
543
|
+
* `Command.updateProgress(p)` for imperative control:
|
|
544
|
+
*
|
|
545
|
+
* ```ts
|
|
546
|
+
* // mapProgress as a combinator arg (outside the handler):
|
|
547
|
+
* Command.streamFn("exportData")(
|
|
548
|
+
* function*(arg, ctx) { return makeExportStream(arg.id) },
|
|
549
|
+
* (s) => s.pipe(Command.mapProgress((r) => AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress" ? { text: `${r.value.completed}/${r.value.total}` } : undefined))
|
|
550
|
+
* )
|
|
551
|
+
*
|
|
552
|
+
* // Or inline inside the handler body:
|
|
553
|
+
* Command.streamFn("exportData")(function*(arg, ctx) {
|
|
554
|
+
* return makeExportStream(arg.id).pipe(Command.mapProgress((r) => AsyncResult.isSuccess(r) ? ... : undefined))
|
|
555
|
+
* })
|
|
556
|
+
* ```
|
|
557
|
+
*
|
|
558
|
+
* **Pipeable combinators** — the 2nd–Nth args follow the same pattern as `fn`: each combinator
|
|
559
|
+
* receives `(stream, arg, ctx)` and returns a transformed stream:
|
|
560
|
+
* ```ts
|
|
561
|
+
* Command.streamFn("exportData")(
|
|
562
|
+
* handler,
|
|
563
|
+
* (s, arg, ctx) => s.pipe(Command.mapProgress(fn), Stream.take(100))
|
|
564
|
+
* )
|
|
565
|
+
* ```
|
|
566
|
+
*
|
|
567
|
+
* **Returned Properties**: `action`, `label`, `result`, `progress`, `waiting`, `blocked`,
|
|
568
|
+
* `allowed`, `handle`, `i18nKey`, `namespace`, `namespaced`.
|
|
569
|
+
*/
|
|
570
|
+
streamFn: <const Id extends string, const State extends IntlRecord = IntlRecord, const I18nKey extends string = Id>(id: Id | {
|
|
571
|
+
id: Id;
|
|
572
|
+
}, options?: FnOptions<Id, I18nKey, State>) => Commander.StreamGen<RT | RTHooks, Id, I18nKey, State> & Commander.NonGenStream<RT | RTHooks, Id, I18nKey, State> & {
|
|
573
|
+
state: Context.Service<`Commander.Command.${Id}.state`, State>;
|
|
574
|
+
};
|
|
575
|
+
/** @deprecated */
|
|
576
|
+
alt2: <const Id extends string, MutArg, MutA, MutE, MutR, const I18nKey extends string = Id, State extends IntlRecord | undefined = undefined>(id: Id | {
|
|
577
|
+
id: Id;
|
|
578
|
+
mutate: (arg: MutArg) => Effect.Effect<MutA, MutE, MutR>;
|
|
579
|
+
} | (((arg: MutArg) => Effect.Effect<MutA, MutE, MutR>) & {
|
|
580
|
+
id: Id;
|
|
581
|
+
}), options?: FnOptions<Id, I18nKey, State>) => Commander.CommandContextLocal<Id, I18nKey> & (<A, E, R extends RT | RTHooks | CommandContext | `Commander.Command.${Id}.state`, Arg = void>(handler: (ctx: Effect.fn.Traced & Effect.fn.Untraced & Commander.CommandContextLocal<Id, I18nKey> & {
|
|
582
|
+
mutate: (arg: Arg) => Effect.Effect<MutA, MutE, MutR>;
|
|
583
|
+
}) => (arg: Arg, ctx: Commander.CommandContextLocal2<Id, I18nKey, State>) => Effect.Effect<A, E, R>) => Commander.CommandOut<Arg, A, E, R, Id, I18nKey, State>);
|
|
584
|
+
alt: <const Id extends string, const I18nKey extends string = Id, State extends IntlRecord | undefined = undefined>(id: Id, customI18nKey?: I18nKey) => Commander.CommandContextLocal<Id, I18nKey> & (<A, E, R extends RT | CommandContext | `Commander.Command.${Id}.state`, Arg = void>(handler: (arg: Arg, ctx: Commander.CommandContextLocal2<Id, I18nKey, State>) => Effect.Effect<A, E, R>) => Commander.CommandOut<Arg, A, E, R, Id, I18nKey, State>);
|
|
585
|
+
/**
|
|
586
|
+
* Define a Command for handling user actions with built-in error reporting and state management.
|
|
587
|
+
*
|
|
588
|
+
* @param mutation The mutation function to take the identifier and initial handler from. Used as a tracing span and to lookup
|
|
589
|
+
* the user-facing name via internationalization (`action.${id}`).
|
|
590
|
+
* @param options Optional configuration for internationalization and state.
|
|
591
|
+
* @param options.i18nCustomKey Custom i18n key to use instead of `id` (e.g., for grouping similar actions)
|
|
592
|
+
* @param options.state Optional reactive state object (or function returning one) that is
|
|
593
|
+
* made available to the command effects and can be used for i18n interpolation.
|
|
594
|
+
* The state is captured at the start of each command execution and remains stable throughout.
|
|
595
|
+
* @returns A function that executes the command when called (e.g., directly in `@click` handlers).
|
|
596
|
+
* Built-in error reporting handles failures automatically.
|
|
597
|
+
*
|
|
598
|
+
* **Effect Context**: Effects have access to the `CommandContext` service, which provides
|
|
599
|
+
* the user-facing action name.
|
|
600
|
+
*
|
|
601
|
+
* **Returned Properties**:
|
|
602
|
+
* - `action`: User-facing action name from intl messages (useful for button labels)
|
|
603
|
+
* - `result`: The command result state
|
|
604
|
+
* - `waiting`: Boolean indicating if the command is in progress (shorthand for `result.waiting`)
|
|
605
|
+
* - `handle`: Function to execute the command
|
|
606
|
+
* - `exec`: The raw Effect that will be executed when calling `handle` (for advanced use cases)
|
|
607
|
+
* - `i18nKey`, `namespace`, `namespaced`: Helpers for internationalization keys
|
|
608
|
+
*
|
|
609
|
+
* **User Feedback**: Use the `withDefaultToast` helper for status notifications, or render
|
|
610
|
+
* the `result` inline for custom UI feedback.
|
|
611
|
+
*/
|
|
612
|
+
streamWrap: <const Id extends string, Arg, SA, SE, SR, const State extends IntlRecord = IntlRecord, I18nKey extends string = Id>(handler: (arg: Arg, ctx: Commander.CommandContextLocal2<Id, I18nKey, State>) => Stream.Stream<SA, SE, SR>, id: Id, options?: FnOptions<Id, I18nKey, State>) => Commander.StreamerWrap<RT | RTHooks, Id, I18nKey, State, Arg, SA, SE, SR>;
|
|
613
|
+
wrap: <const Id extends string, Arg, A, E, R, const State extends IntlRecord = IntlRecord, I18nKey extends string = Id>(mutation: {
|
|
614
|
+
mutate: (arg: Arg) => Effect.Effect<A, E, R>;
|
|
615
|
+
id: Id;
|
|
616
|
+
} | (((arg: Arg) => Effect.Effect<A, E, R>) & {
|
|
617
|
+
id: Id;
|
|
618
|
+
}), options?: FnOptions<Id, I18nKey, State>) => Commander.CommanderWrap<RT | RTHooks, Id, I18nKey, State, Arg, A, E, R>;
|
|
619
|
+
}
|
|
620
|
+
declare const Commander_base: Context.ServiceClass<Commander, "Commander", <RT, RTHooks>(rt: Context.Context<RT>, rtHooks: Layer.Layer<RTHooks, never, RT>) => CommanderImpl<RT, RTHooks>> & {
|
|
621
|
+
readonly make: Effect.Effect<<RT, RTHooks>(rt: Context.Context<RT>, rtHooks: Layer.Layer<RTHooks, never, RT>) => CommanderImpl<RT, RTHooks>, never, I18n>;
|
|
622
|
+
};
|
|
623
|
+
export declare class Commander extends Commander_base {
|
|
624
|
+
static readonly DefaultWithoutDependencies: Layer.Layer<Commander, never, I18n>;
|
|
625
|
+
static readonly Default: Layer.Layer<Commander, never, I18n>;
|
|
626
|
+
}
|
|
627
|
+
export {};
|
|
628
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29tbWFuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBdUMsS0FBSyxtQkFBbUIsRUFBc0IsTUFBTSxpQkFBaUIsQ0FBQTtBQUVuSCxPQUFPLEVBQVMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxLQUFLLEtBQUssRUFBUSxLQUFLLEVBQXlCLE1BQU0sRUFBRSxTQUFTLEVBQUssTUFBTSxZQUFZLENBQUE7QUFHcEksT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLFdBQVcsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hGLE9BQU8sRUFBWSxLQUFLLFdBQVcsRUFBd0IsTUFBTSxLQUFLLENBQUE7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBa0IsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxLQUFLLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUVwRjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRztJQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFBO0FBRXRG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LENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUN0RSxLQUFLLENBQ1YsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEdBQ0wsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQy9DLENBQ0UsR0FBRyxTQUFTLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2hELElBQUksRUFDSixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxFQUN4RixHQUFHLEdBQUcsSUFBSSxFQUVWLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzlGLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUNkLElBQUksRUFDSjtZQUFDLEdBQUc7U0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUN6QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FDdEUsS0FBSyxFQUNUO1lBQUMsR0FBRztTQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQ3pCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUN0RSxLQUFLLENBQ1YsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEdBQ0wsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQy9DLENBQ0UsR0FBRyxTQUFTLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2hELElBQUksRUFDSixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsRUFDeEYsR0FBRyxHQUFHLElBQUksRUFFVixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM5RixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDZCxJQUFJLEVBQ0o7WUFBQyxHQUFHO1NBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FDekIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQ3RFLEtBQUssRUFDVDtZQUFDLEdBQUc7U0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUN6QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FDdEUsS0FBSyxDQUNWLEVBQ0QsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxHQUNMLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUMvQyxDQUNFLEdBQUcsU0FBUyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNoRCxJQUFJLEVBQ0osQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxFQUN4RixHQUFHLEdBQUcsSUFBSSxFQUVWLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzlGLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUNkLElBQUksRUFDSjtZQUFDLEdBQUc7U0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUN6QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FDdEUsS0FBSyxFQUNUO1lBQUMsR0FBRztTQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQ3pCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUN0RSxLQUFLLENBQ1YsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEdBQ0wsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQy9DLENBQ0UsR0FBRyxTQUFTLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2hELElBQUksRUFDSixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxFQUN4RixHQUFHLEdBQUcsSUFBSSxFQUVWLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzlGLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUNkLElBQUksRUFDSjtZQUFDLEdBQUc7U0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUN6QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FDdEUsS0FBSyxFQUNUO1lBQUMsR0FBRztTQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQ3pCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUN0RSxLQUFLLENBQ1YsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEdBQ0wsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQy9DLENBQ0UsR0FBRyxTQUFTLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2hELElBQUksRUFDSixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsRUFDeEYsR0FBRyxHQUFHLElBQUksRUFFVixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM5RixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDZCxJQUFJLEVBQ0o7WUFBQyxHQUFHO1NBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FDekIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQ3RFLEtBQUssRUFDVDtZQUFDLEdBQUc7U0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUN6QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FDdEUsS0FBSyxDQUNWLEVBQ0QsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxHQUNMLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVB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Q0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDcEUsQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxHQUFHLEdBQ1AsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2pELENBQ0UsR0FBRyxTQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxFQUMxRixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELEdBQUcsR0FBRyxJQUFJLEVBRVYsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ3BFLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsR0FBRyxHQUNQLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNqRCxDQUNFLEdBQUcsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsRUFDMUYsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsR0FBRyxHQUFHLElBQUksRUFFVixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDcEUsQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxHQUFHLEdBQ1AsZ0JBQWdCLENB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Y0FBYyxHQUFHLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxFQUMxRixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELEdBQUcsR0FBRyxJQUFJLEVBRVYsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ3BFLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsR0FBRyxHQUNQLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNqRCxDQUNFLEdBQUcsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsRUFDMUYsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsR0FBRyxHQUFHLElBQUksRUFFVixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDcEUsQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFD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SUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQ0wsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxL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QUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEdBQ0wsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsRUFDNUcsQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQ2QsSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQ0wsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEdBQ0wsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxjQUFjLEdBQUcscUJBQXFCLEVBQUUsUUFBUSxDQUFDLEVBQy9HLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUNkLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUNMLEVBQ0QsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FDckUsQ0FBQyxFQUNOLENBQUMsRUFBRSxDQUNELENBQUMsRUFBRSxDQUFDLEVBQ0osR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUMxQixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFD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QUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLEdBQUcsR0FDUCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDakQsQ0FDRSxHQUFHLFNBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxjQUFjLEdBQUcscUJBQXFCLEVBQUUsUUFBUSxDQUFDLEVBQzFGLENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELEdBQUcsRUFFSCxDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDZCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FDTCxFQUNELEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLEdBQUcsR0FDUCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDakQsQ0FDRSxHQUFHLFNBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxjQUFjLEdBQUcscUJBQXFCLEVBQUUsUUFBUSxDQUFDLEVBQzFGLENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxHQUFHLEVBRUgsQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQ2QsSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQ0wsRUFDRCxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxDQUFDLEVBQ04sQ0FBQyxFQUFFLENBQ0QsQ0FBQyxFQUFFLENBQUMsRUFDSixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUNyRSxHQUFHLEdBQ1AsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2pELENBQ0UsR0FBRyxTQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxFQUMxRixDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsRUFDRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELEdBQUcsRUFFSCxDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDZCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FDTCxFQUNELEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLENBQUMsRUFDTixDQUFDLEVBQUUsQ0FDRCxDQUFDLEVBQUUsQ0FBQyxFQUNKLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQ3JFLEdBQUcsR0FDUCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7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
|