__vite_ssr_exportName__("RuntimeEventRaw", () => { try { return RuntimeEventRaw } catch {} });
__vite_ssr_exportName__("ToolLifecycleItemType", () => { try { return ToolLifecycleItemType } catch {} });
__vite_ssr_exportName__("isToolLifecycleItemType", () => { try { return isToolLifecycleItemType } catch {} });
__vite_ssr_exportName__("CanonicalItemType", () => { try { return CanonicalItemType } catch {} });
__vite_ssr_exportName__("CanonicalRequestType", () => { try { return CanonicalRequestType } catch {} });
__vite_ssr_exportName__("ThreadTokenUsageSnapshot", () => { try { return ThreadTokenUsageSnapshot } catch {} });
__vite_ssr_exportName__("TurnTokenUsage", () => { try { return TurnTokenUsage } catch {} });
__vite_ssr_exportName__("ToolActivitySurface", () => { try { return ToolActivitySurface } catch {} });
__vite_ssr_exportName__("ToolActivityNativeAppReference", () => { try { return ToolActivityNativeAppReference } catch {} });
__vite_ssr_exportName__("ToolActivityIcon", () => { try { return ToolActivityIcon } catch {} });
__vite_ssr_exportName__("ToolActivitySource", () => { try { return ToolActivitySource } catch {} });
__vite_ssr_exportName__("ItemLifecyclePayload", () => { try { return ItemLifecyclePayload } catch {} });
__vite_ssr_exportName__("UserInputQuestion", () => { try { return UserInputQuestion } catch {} });
__vite_ssr_exportName__("UserInputRequestedPayload", () => { try { return UserInputRequestedPayload } catch {} });
__vite_ssr_exportName__("RuntimeTaskUsage", () => { try { return RuntimeTaskUsage } catch {} });
__vite_ssr_exportName__("TaskWorkflowPhase", () => { try { return TaskWorkflowPhase } catch {} });
__vite_ssr_exportName__("TaskRunHandles", () => { try { return TaskRunHandles } catch {} });
__vite_ssr_exportName__("TaskAgentLinkage", () => { try { return TaskAgentLinkage } catch {} });
__vite_ssr_exportName__("RuntimeTaskStatus", () => { try { return RuntimeTaskStatus } catch {} });
__vite_ssr_exportName__("ProviderRuntimeEventV2", () => { try { return ProviderRuntimeEventV2 } catch {} });
__vite_ssr_exportName__("ProviderRuntimeEvent", () => { try { return ProviderRuntimeEvent } catch {} });
__vite_ssr_exportName__("ProviderRuntimeTurnStatus", () => { try { return ProviderRuntimeTurnStatus } catch {} });
const __vite_ssr_import_0__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Effect.js");
const __vite_ssr_import_1__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Schema.js");
const __vite_ssr_import_2__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/baseSchemas.ts", {"importedNames":["EventId","IsoDateTime","NonNegativeInt","ProviderItemId","PositiveInt","RuntimeItemId","RuntimeRequestId","RuntimeTaskId","ThreadId","TrimmedNonEmptyString","TurnId"]});
const __vite_ssr_import_3__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/providerInstance.ts", {"importedNames":["ProviderInstanceId","ProviderDriverKind"]});
const __vite_ssr_import_4__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/providerUsageLimits.ts", {"importedNames":["ProviderUsageLimitsUpdate"]});
const __vite_ssr_import_5__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/providerPolicy.ts", {"importedNames":["ProviderApprovalOption"]});






const TrimmedNonEmptyStringSchema = __vite_ssr_import_2__.TrimmedNonEmptyString;
const UnknownRecordSchema = __vite_ssr_import_1__.Record(__vite_ssr_import_1__.String, __vite_ssr_import_1__.Unknown);
const RuntimeEventRawSource = __vite_ssr_import_1__.Union([
	__vite_ssr_import_1__.Literal("codex.app-server.notification"),
	__vite_ssr_import_1__.Literal("codex.app-server.request"),
	__vite_ssr_import_1__.Literal("codex.eventmsg"),
	__vite_ssr_import_1__.Literal("claude.sdk.message"),
	__vite_ssr_import_1__.Literal("claude.sdk.permission"),
	__vite_ssr_import_1__.Literal("codex.sdk.thread-event"),
	__vite_ssr_import_1__.Literal("opencode.sdk.event"),
	__vite_ssr_import_1__.Literal("acp.jsonrpc"),
	__vite_ssr_import_1__.TemplateLiteral([
		"acp.",
		__vite_ssr_import_1__.String,
		".extension"
	])
]);
const RuntimeEventRaw = __vite_ssr_import_1__.Struct({
	source: RuntimeEventRawSource,
	method: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	messageType: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	payload: __vite_ssr_import_1__.Unknown
});
const ProviderRequestId = TrimmedNonEmptyStringSchema;
const ProviderRefs = __vite_ssr_import_1__.Struct({
	providerTurnId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	providerItemId: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.ProviderItemId)),
	providerRequestId: __vite_ssr_import_1__.optional(ProviderRequestId)
});
const RuntimeSessionState = __vite_ssr_import_1__.Literals([
	"starting",
	"ready",
	"running",
	"waiting",
	"stopped",
	"error"
]);
const RuntimeThreadState = __vite_ssr_import_1__.Literals([
	"active",
	"idle",
	"archived",
	"closed",
	"compacted",
	"error"
]);
const RuntimeTurnState = __vite_ssr_import_1__.Literals([
	"completed",
	"failed",
	"interrupted",
	"cancelled"
]);
const RuntimePlanStepStatus = __vite_ssr_import_1__.Literals([
	"pending",
	"inProgress",
	"completed"
]);
const RuntimeItemStatus = __vite_ssr_import_1__.Literals([
	"inProgress",
	"completed",
	"failed",
	"declined"
]);
const RuntimeContentStreamKind = __vite_ssr_import_1__.Literals([
	"assistant_text",
	"reasoning_text",
	"reasoning_summary_text",
	"plan_text",
	"command_output",
	"file_change_output",
	"unknown"
]);
const RuntimeSessionExitKind = __vite_ssr_import_1__.Literals(["graceful", "error"]);
const RuntimeErrorClass = __vite_ssr_import_1__.Literals([
	"provider_error",
	"transport_error",
	"permission_error",
	"validation_error",
	"unknown"
]);
const TOOL_LIFECYCLE_ITEM_TYPES = [
	"command_execution",
	"file_change",
	"mcp_tool_call",
	"dynamic_tool_call",
	"collab_agent_tool_call",
	"web_search",
	"image_view"
];
const ToolLifecycleItemType = __vite_ssr_import_1__.Literals(TOOL_LIFECYCLE_ITEM_TYPES);
function isToolLifecycleItemType(value) {
	return TOOL_LIFECYCLE_ITEM_TYPES.includes(value);
};
const CanonicalItemType = __vite_ssr_import_1__.Literals([
	"user_message",
	"assistant_message",
	"reasoning",
	"plan",
	...TOOL_LIFECYCLE_ITEM_TYPES,
	"review_entered",
	"review_exited",
	"context_compaction",
	"error",
	"unknown"
]);
const CanonicalRequestType = __vite_ssr_import_1__.Literals([
	"command_execution_approval",
	"file_read_approval",
	"file_change_approval",
	"apply_patch_approval",
	"exec_command_approval",
	"mcp_elicitation_approval",
	"permission_approval",
	"tool_user_input",
	"dynamic_tool_call",
	"auth_tokens_refresh",
	"unknown"
]);
const SessionStartedType = __vite_ssr_import_1__.Literal("session.started");
const SessionConfiguredType = __vite_ssr_import_1__.Literal("session.configured");
const SessionStateChangedType = __vite_ssr_import_1__.Literal("session.state.changed");
const SessionExitedType = __vite_ssr_import_1__.Literal("session.exited");
const ThreadStartedType = __vite_ssr_import_1__.Literal("thread.started");
const ThreadStateChangedType = __vite_ssr_import_1__.Literal("thread.state.changed");
const ThreadMetadataUpdatedType = __vite_ssr_import_1__.Literal("thread.metadata.updated");
const ThreadTokenUsageUpdatedType = __vite_ssr_import_1__.Literal("thread.token-usage.updated");
const ThreadRealtimeStartedType = __vite_ssr_import_1__.Literal("thread.realtime.started");
const ThreadRealtimeItemAddedType = __vite_ssr_import_1__.Literal("thread.realtime.item-added");
const ThreadRealtimeAudioDeltaType = __vite_ssr_import_1__.Literal("thread.realtime.audio.delta");
const ThreadRealtimeErrorType = __vite_ssr_import_1__.Literal("thread.realtime.error");
const ThreadRealtimeClosedType = __vite_ssr_import_1__.Literal("thread.realtime.closed");
const TurnStartedType = __vite_ssr_import_1__.Literal("turn.started");
const TurnCompletedType = __vite_ssr_import_1__.Literal("turn.completed");
const TurnAbortedType = __vite_ssr_import_1__.Literal("turn.aborted");
const TurnPlanUpdatedType = __vite_ssr_import_1__.Literal("turn.plan.updated");
const TurnProposedDeltaType = __vite_ssr_import_1__.Literal("turn.proposed.delta");
const TurnProposedCompletedType = __vite_ssr_import_1__.Literal("turn.proposed.completed");
const TurnDiffUpdatedType = __vite_ssr_import_1__.Literal("turn.diff.updated");
const ItemStartedType = __vite_ssr_import_1__.Literal("item.started");
const ItemUpdatedType = __vite_ssr_import_1__.Literal("item.updated");
const ItemCompletedType = __vite_ssr_import_1__.Literal("item.completed");
const ContentDeltaType = __vite_ssr_import_1__.Literal("content.delta");
const RequestOpenedType = __vite_ssr_import_1__.Literal("request.opened");
const RequestResolvedType = __vite_ssr_import_1__.Literal("request.resolved");
const UserInputRequestedType = __vite_ssr_import_1__.Literal("user-input.requested");
const UserInputResolvedType = __vite_ssr_import_1__.Literal("user-input.resolved");
const TaskStartedType = __vite_ssr_import_1__.Literal("task.started");
const TaskProgressType = __vite_ssr_import_1__.Literal("task.progress");
const TaskUpdatedType = __vite_ssr_import_1__.Literal("task.updated");
const TaskCompletedType = __vite_ssr_import_1__.Literal("task.completed");
const HookStartedType = __vite_ssr_import_1__.Literal("hook.started");
const HookProgressType = __vite_ssr_import_1__.Literal("hook.progress");
const HookCompletedType = __vite_ssr_import_1__.Literal("hook.completed");
const ToolProgressType = __vite_ssr_import_1__.Literal("tool.progress");
const ToolSummaryType = __vite_ssr_import_1__.Literal("tool.summary");
const AuthStatusType = __vite_ssr_import_1__.Literal("auth.status");
const AccountUpdatedType = __vite_ssr_import_1__.Literal("account.updated");
const AccountRateLimitsUpdatedType = __vite_ssr_import_1__.Literal("account.rate-limits.updated");
const McpStatusUpdatedType = __vite_ssr_import_1__.Literal("mcp.status.updated");
const McpOauthCompletedType = __vite_ssr_import_1__.Literal("mcp.oauth.completed");
const ModelReroutedType = __vite_ssr_import_1__.Literal("model.rerouted");
const ConfigWarningType = __vite_ssr_import_1__.Literal("config.warning");
const DeprecationNoticeType = __vite_ssr_import_1__.Literal("deprecation.notice");
const FilesPersistedType = __vite_ssr_import_1__.Literal("files.persisted");
const ToolDeniedType = __vite_ssr_import_1__.Literal("tool.denied");
const RuntimeWarningType = __vite_ssr_import_1__.Literal("runtime.warning");
const RuntimeErrorType = __vite_ssr_import_1__.Literal("runtime.error");
const ProviderRuntimeEventBase = __vite_ssr_import_1__.Struct({
	eventId: __vite_ssr_import_2__.EventId,
	provider: __vite_ssr_import_3__.ProviderDriverKind,
	providerInstanceId: __vite_ssr_import_1__.optional((0,__vite_ssr_import_3__.ProviderInstanceId)),
	threadId: __vite_ssr_import_2__.ThreadId,
	createdAt: __vite_ssr_import_2__.IsoDateTime,
	turnId: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.TurnId)),
	itemId: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.RuntimeItemId)),
	requestId: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.RuntimeRequestId)),
	providerRefs: __vite_ssr_import_1__.optional(ProviderRefs),
	raw: __vite_ssr_import_1__.optional(RuntimeEventRaw)
});
const SessionStartedPayload = __vite_ssr_import_1__.Struct({
	message: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	resume: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const SessionConfiguredPayload = __vite_ssr_import_1__.Struct({ config: UnknownRecordSchema });
const SessionStateChangedPayload = __vite_ssr_import_1__.Struct({
	state: RuntimeSessionState,
	reason: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	detail: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const SessionExitedPayload = __vite_ssr_import_1__.Struct({
	reason: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	recoverable: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean),
	exitKind: __vite_ssr_import_1__.optional(RuntimeSessionExitKind)
});
const ThreadStartedPayload = __vite_ssr_import_1__.Struct({ providerThreadId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema) });
const ThreadStateChangedPayload = __vite_ssr_import_1__.Struct({
	state: RuntimeThreadState,
	beforeTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	afterTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	detail: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const ThreadMetadataUpdatedPayload = __vite_ssr_import_1__.Struct({
	name: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	metadata: __vite_ssr_import_1__.optional(UnknownRecordSchema)
});
const ThreadTokenUsageSnapshot = __vite_ssr_import_1__.Struct({
	usedTokens: __vite_ssr_import_2__.NonNegativeInt,
	totalProcessedTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	maxTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.PositiveInt)),
	inputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	cachedInputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	outputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	reasoningOutputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	lastUsedTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	lastInputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	lastCachedInputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	lastOutputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	lastReasoningOutputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	toolUses: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	durationMs: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	compactsAutomatically: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean),
	autoCompactThreshold: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.PositiveInt)),
	cost: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Struct({
		amount: __vite_ssr_import_1__.Number.check(__vite_ssr_import_1__.isFinite()),
		currency: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(32))
	}))
});
const ThreadTokenUsageUpdatedPayload = __vite_ssr_import_1__.Struct({ usage: ThreadTokenUsageSnapshot });
const ThreadRealtimeStartedPayload = __vite_ssr_import_1__.Struct({ realtimeSessionId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema) });
const ThreadRealtimeItemAddedPayload = __vite_ssr_import_1__.Struct({ item: __vite_ssr_import_1__.Unknown });
const ThreadRealtimeAudioDeltaPayload = __vite_ssr_import_1__.Struct({ audio: __vite_ssr_import_1__.Unknown });
const ThreadRealtimeErrorPayload = __vite_ssr_import_1__.Struct({ message: TrimmedNonEmptyStringSchema });
const ThreadRealtimeClosedPayload = __vite_ssr_import_1__.Struct({ reason: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema) });
const TurnStartedPayload = __vite_ssr_import_1__.Struct({
	model: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	effort: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
// Input includes cache reads/writes; output includes the optional reasoningTokens subset.
const TurnTokenUsageCommonFields = {
	usageScope: __vite_ssr_import_1__.Literal("main_agent"),
	cachedInputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	cacheCreationTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	reasoningTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	hasSubagents: __vite_ssr_import_1__.Boolean
};
const TurnTokenUsage = __vite_ssr_import_1__.Union([__vite_ssr_import_1__.Struct({
	...TurnTokenUsageCommonFields,
	usageStatus: __vite_ssr_import_1__.Literal("complete"),
	inputTokens: __vite_ssr_import_2__.NonNegativeInt,
	outputTokens: __vite_ssr_import_2__.NonNegativeInt
}), __vite_ssr_import_1__.Struct({
	...TurnTokenUsageCommonFields,
	usageStatus: __vite_ssr_import_1__.Literals(["partial", "unavailable"]),
	inputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	outputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt))
})]);
const TurnCompletedPayload = __vite_ssr_import_1__.Struct({
	state: RuntimeTurnState,
	stopReason: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.NullOr(TrimmedNonEmptyStringSchema)),
	usage: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown),
	modelUsage: __vite_ssr_import_1__.optional(UnknownRecordSchema),
	totalCostUsd: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Number),
	errorMessage: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	tokenUsage: __vite_ssr_import_1__.optional(TurnTokenUsage)
});
const TurnAbortedPayload = __vite_ssr_import_1__.Struct({
	reason: TrimmedNonEmptyStringSchema,
	tokenUsage: __vite_ssr_import_1__.optional(TurnTokenUsage)
});
const RuntimePlanStep = __vite_ssr_import_1__.Struct({
	step: TrimmedNonEmptyStringSchema,
	status: RuntimePlanStepStatus
});
const TurnPlanUpdatedPayload = __vite_ssr_import_1__.Struct({
	explanation: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.NullOr(TrimmedNonEmptyStringSchema)),
	plan: __vite_ssr_import_1__.Array(RuntimePlanStep)
});
const TurnProposedDeltaPayload = __vite_ssr_import_1__.Struct({ delta: __vite_ssr_import_1__.String });
const TurnProposedCompletedPayload = __vite_ssr_import_1__.Struct({ planMarkdown: TrimmedNonEmptyStringSchema });
const TurnDiffUpdatedPayload = __vite_ssr_import_1__.Struct({ unifiedDiff: __vite_ssr_import_1__.String });
const ToolActivitySurface = __vite_ssr_import_1__.Literals(["browser", "computer"]);
const ToolActivityNativeAppReference = __vite_ssr_import_1__.Union([__vite_ssr_import_1__.TaggedStruct("app-id", { appId: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(512), __vite_ssr_import_1__.isPattern(/^[A-Za-z0-9._-]+$/u)) }), __vite_ssr_import_1__.TaggedStruct("display-name", { displayName: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(160)) })]);
const ToolActivityIcon = __vite_ssr_import_1__.Union([
	__vite_ssr_import_1__.TaggedStruct("website", {
		pageUrl: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(4096)),
		faviconUrl: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(4096))),
		faviconUrlDark: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(4096)))
	}),
	__vite_ssr_import_1__.TaggedStruct("native-app", { app: ToolActivityNativeAppReference }),
	__vite_ssr_import_1__.TaggedStruct("themed-logo", {
		logoUrl: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(4096)),
		logoUrlDark: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(4096)))
	})
]);
const ToolActivitySource = __vite_ssr_import_1__.Struct({
	key: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(512)),
	name: TrimmedNonEmptyStringSchema.check(__vite_ssr_import_1__.isMaxLength(160)),
	kind: __vite_ssr_import_1__.Literals([
		"browser",
		"computer",
		"integration"
	]),
	icon: __vite_ssr_import_1__.optional(ToolActivityIcon)
});
const ItemLifecyclePayload = __vite_ssr_import_1__.Struct({
	itemType: CanonicalItemType,
	status: __vite_ssr_import_1__.optional(RuntimeItemStatus),
	title: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	detail: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	toolSurface: __vite_ssr_import_1__.optional(ToolActivitySurface),
	toolIcon: __vite_ssr_import_1__.optional(ToolActivityIcon),
	toolSource: __vite_ssr_import_1__.optional(ToolActivitySource),
	data: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown),
	agentId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	parentToolUseId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
const ContentDeltaPayload = __vite_ssr_import_1__.Struct({
	streamKind: RuntimeContentStreamKind,
	delta: __vite_ssr_import_1__.String,
	contentIndex: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Int),
	summaryIndex: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Int)
});
const RequestOpenedPayload = __vite_ssr_import_1__.Struct({
	requestType: CanonicalRequestType,
	detail: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	appName: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	options: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Array((0,__vite_ssr_import_5__.ProviderApprovalOption))),
	args: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const RequestResolvedPayload = __vite_ssr_import_1__.Struct({
	requestType: CanonicalRequestType,
	decision: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	resolution: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const UserInputQuestionOption = __vite_ssr_import_1__.Struct({
	label: TrimmedNonEmptyStringSchema,
	description: __vite_ssr_import_1__.String,
	value: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String)
});
const UserInputQuestion = __vite_ssr_import_1__.Struct({
	id: TrimmedNonEmptyStringSchema,
	header: TrimmedNonEmptyStringSchema,
	question: TrimmedNonEmptyStringSchema,
	options: __vite_ssr_import_1__.Array(UserInputQuestionOption),
	allowCustomAnswer: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean),
	initialAnswer: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String),
	multiSelect: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean).pipe(__vite_ssr_import_1__.withConstructorDefault(__vite_ssr_import_0__.succeed(false)))
});
const UserInputRequestedPayload = __vite_ssr_import_1__.Struct({
	questions: __vite_ssr_import_1__.Array(UserInputQuestion),
	responseMode: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Literal("message"))
});
const UserInputResolvedPayload = __vite_ssr_import_1__.Struct({ answers: UnknownRecordSchema });
/** Claude reports activation deltas; Codex reports cumulative totals. Merge per provider in client-runtime. */
const RuntimeTaskUsage = __vite_ssr_import_1__.Struct({
	totalTokens: __vite_ssr_import_2__.NonNegativeInt,
	inputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	cachedInputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	outputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	reasoningOutputTokens: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	toolUses: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	durationMs: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt))
});
const TaskWorkflowPhase = __vite_ssr_import_1__.Struct({
	index: __vite_ssr_import_2__.NonNegativeInt,
	title: TrimmedNonEmptyStringSchema
});
const TaskRunHandles = __vite_ssr_import_1__.Struct({
	runId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	scriptPath: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	transcriptDir: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	/** Only http/https URLs, sanitized by the adapter. */
	sessionUrl: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
// Repeat on progress and terminal rows so agents survive start-row eviction.
const taskAgentLinkageFields = {
	taskType: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	agentKind: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Literals(["agent", "background"])),
	agentId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	title: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	role: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	model: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	effort: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	toolUseId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	parentAgentId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	workflowName: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	agentIndex: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	phaseIndex: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	phaseTitle: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	phases: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Array(TaskWorkflowPhase)),
	attempt: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.NonNegativeInt)),
	runHandles: __vite_ssr_import_1__.optional(TaskRunHandles),
	outputFile: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	agentPath: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	/** Provider-synthesized child events belong in Agents, never the parent timeline. */
	timelineBypass: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean)
};
const TaskAgentLinkage = __vite_ssr_import_1__.Struct(taskAgentLinkageFields);
const TaskStartedPayload = __vite_ssr_import_1__.Struct({
	taskId: __vite_ssr_import_2__.RuntimeTaskId,
	description: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	...taskAgentLinkageFields
});
const RuntimeTaskStatus = __vite_ssr_import_1__.Literals([
	"pending",
	"running",
	"waiting",
	"idle",
	"completed",
	"failed",
	"cancelled",
	"interrupted"
]);
const TaskProgressPayload = __vite_ssr_import_1__.Struct({
	taskId: __vite_ssr_import_2__.RuntimeTaskId,
	description: TrimmedNonEmptyStringSchema,
	summary: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	usage: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown),
	typedUsage: __vite_ssr_import_1__.optional(RuntimeTaskUsage),
	lastToolName: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	status: __vite_ssr_import_1__.optional(RuntimeTaskStatus),
	error: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	...taskAgentLinkageFields
});
const TaskUpdatedPayload = __vite_ssr_import_1__.Struct({
	taskId: __vite_ssr_import_2__.RuntimeTaskId,
	status: __vite_ssr_import_1__.optional(RuntimeTaskStatus),
	description: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	error: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	endedAt: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.IsoDateTime)),
	isBackgrounded: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean),
	...taskAgentLinkageFields
});
const TaskCompletedPayload = __vite_ssr_import_1__.Struct({
	taskId: __vite_ssr_import_2__.RuntimeTaskId,
	status: __vite_ssr_import_1__.Literals([
		"completed",
		"failed",
		"stopped"
	]),
	summary: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	usage: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown),
	typedUsage: __vite_ssr_import_1__.optional(RuntimeTaskUsage),
	...taskAgentLinkageFields
});
const HookStartedPayload = __vite_ssr_import_1__.Struct({
	hookId: TrimmedNonEmptyStringSchema,
	hookName: TrimmedNonEmptyStringSchema,
	hookEvent: TrimmedNonEmptyStringSchema
});
const HookProgressPayload = __vite_ssr_import_1__.Struct({
	hookId: TrimmedNonEmptyStringSchema,
	output: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String),
	stdout: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String),
	stderr: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String)
});
const HookCompletedPayload = __vite_ssr_import_1__.Struct({
	hookId: TrimmedNonEmptyStringSchema,
	outcome: __vite_ssr_import_1__.Literals([
		"success",
		"error",
		"cancelled"
	]),
	output: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String),
	stdout: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String),
	stderr: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.String),
	exitCode: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Int)
});
const ToolProgressPayload = __vite_ssr_import_1__.Struct({
	toolUseId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	toolName: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	summary: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	elapsedSeconds: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Number),
	taskId: __vite_ssr_import_1__.optional((0,__vite_ssr_import_2__.RuntimeTaskId)),
	parentToolUseId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
const ToolSummaryPayload = __vite_ssr_import_1__.Struct({
	summary: TrimmedNonEmptyStringSchema,
	precedingToolUseIds: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Array(TrimmedNonEmptyStringSchema))
});
const AuthStatusPayload = __vite_ssr_import_1__.Struct({
	isAuthenticating: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Boolean),
	output: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Array(__vite_ssr_import_1__.String)),
	error: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
const AccountUpdatedPayload = __vite_ssr_import_1__.Struct({ account: __vite_ssr_import_1__.Unknown });
const AccountRateLimitsUpdatedPayload = __vite_ssr_import_1__.Struct({ limits: __vite_ssr_import_4__.ProviderUsageLimitsUpdate });
const McpStatusUpdatedPayload = __vite_ssr_import_1__.Struct({ status: __vite_ssr_import_1__.Unknown });
const McpOauthCompletedPayload = __vite_ssr_import_1__.Struct({
	success: __vite_ssr_import_1__.Boolean,
	name: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	error: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
const ModelReroutedPayload = __vite_ssr_import_1__.Struct({
	fromModel: TrimmedNonEmptyStringSchema,
	toModel: TrimmedNonEmptyStringSchema,
	reason: TrimmedNonEmptyStringSchema
});
const ConfigWarningPayload = __vite_ssr_import_1__.Struct({
	summary: TrimmedNonEmptyStringSchema,
	details: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	path: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	range: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const DeprecationNoticePayload = __vite_ssr_import_1__.Struct({
	summary: TrimmedNonEmptyStringSchema,
	details: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
const FilesPersistedPayload = __vite_ssr_import_1__.Struct({
	files: __vite_ssr_import_1__.Array(__vite_ssr_import_1__.Struct({
		filename: TrimmedNonEmptyStringSchema,
		fileId: TrimmedNonEmptyStringSchema
	})),
	failed: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Array(__vite_ssr_import_1__.Struct({
		filename: TrimmedNonEmptyStringSchema,
		error: TrimmedNonEmptyStringSchema
	})))
});
const ToolDeniedPayload = __vite_ssr_import_1__.Struct({
	toolName: TrimmedNonEmptyStringSchema,
	toolUseId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	reason: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	agentId: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema)
});
const RuntimeWarningPayload = __vite_ssr_import_1__.Struct({
	message: TrimmedNonEmptyStringSchema,
	detail: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const RuntimeErrorPayload = __vite_ssr_import_1__.Struct({
	message: TrimmedNonEmptyStringSchema,
	code: __vite_ssr_import_1__.optional(TrimmedNonEmptyStringSchema),
	class: __vite_ssr_import_1__.optional(RuntimeErrorClass),
	detail: __vite_ssr_import_1__.optional(__vite_ssr_import_1__.Unknown)
});
const ProviderRuntimeSessionStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: SessionStartedType,
	payload: SessionStartedPayload
});
const ProviderRuntimeSessionConfiguredEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: SessionConfiguredType,
	payload: SessionConfiguredPayload
});
const ProviderRuntimeSessionStateChangedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: SessionStateChangedType,
	payload: SessionStateChangedPayload
});
const ProviderRuntimeSessionExitedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: SessionExitedType,
	payload: SessionExitedPayload
});
const ProviderRuntimeThreadStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadStartedType,
	payload: ThreadStartedPayload
});
const ProviderRuntimeThreadStateChangedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadStateChangedType,
	payload: ThreadStateChangedPayload
});
const ProviderRuntimeThreadMetadataUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadMetadataUpdatedType,
	payload: ThreadMetadataUpdatedPayload
});
const ProviderRuntimeThreadTokenUsageUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadTokenUsageUpdatedType,
	payload: ThreadTokenUsageUpdatedPayload
});
const ProviderRuntimeThreadRealtimeStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadRealtimeStartedType,
	payload: ThreadRealtimeStartedPayload
});
const ProviderRuntimeThreadRealtimeItemAddedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadRealtimeItemAddedType,
	payload: ThreadRealtimeItemAddedPayload
});
const ProviderRuntimeThreadRealtimeAudioDeltaEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadRealtimeAudioDeltaType,
	payload: ThreadRealtimeAudioDeltaPayload
});
const ProviderRuntimeThreadRealtimeErrorEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadRealtimeErrorType,
	payload: ThreadRealtimeErrorPayload
});
const ProviderRuntimeThreadRealtimeClosedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ThreadRealtimeClosedType,
	payload: ThreadRealtimeClosedPayload
});
const ProviderRuntimeTurnStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnStartedType,
	payload: TurnStartedPayload
});
const ProviderRuntimeTurnCompletedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnCompletedType,
	payload: TurnCompletedPayload
});
const ProviderRuntimeTurnAbortedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnAbortedType,
	payload: TurnAbortedPayload
});
const ProviderRuntimeTurnPlanUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnPlanUpdatedType,
	payload: TurnPlanUpdatedPayload
});
const ProviderRuntimeTurnProposedDeltaEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnProposedDeltaType,
	payload: TurnProposedDeltaPayload
});
const ProviderRuntimeTurnProposedCompletedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnProposedCompletedType,
	payload: TurnProposedCompletedPayload
});
const ProviderRuntimeTurnDiffUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TurnDiffUpdatedType,
	payload: TurnDiffUpdatedPayload
});
const ProviderRuntimeItemStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ItemStartedType,
	payload: ItemLifecyclePayload
});
const ProviderRuntimeItemUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ItemUpdatedType,
	payload: ItemLifecyclePayload
});
const ProviderRuntimeItemCompletedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ItemCompletedType,
	payload: ItemLifecyclePayload
});
const ProviderRuntimeContentDeltaEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ContentDeltaType,
	payload: ContentDeltaPayload
});
const ProviderRuntimeRequestOpenedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: RequestOpenedType,
	payload: RequestOpenedPayload
});
const ProviderRuntimeRequestResolvedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: RequestResolvedType,
	payload: RequestResolvedPayload
});
const ProviderRuntimeUserInputRequestedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: UserInputRequestedType,
	payload: UserInputRequestedPayload
});
const ProviderRuntimeUserInputResolvedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: UserInputResolvedType,
	payload: UserInputResolvedPayload
});
const ProviderRuntimeTaskStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TaskStartedType,
	payload: TaskStartedPayload
});
const ProviderRuntimeTaskProgressEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TaskProgressType,
	payload: TaskProgressPayload
});
const ProviderRuntimeTaskUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TaskUpdatedType,
	payload: TaskUpdatedPayload
});
const ProviderRuntimeTaskCompletedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: TaskCompletedType,
	payload: TaskCompletedPayload
});
const ProviderRuntimeHookStartedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: HookStartedType,
	payload: HookStartedPayload
});
const ProviderRuntimeHookProgressEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: HookProgressType,
	payload: HookProgressPayload
});
const ProviderRuntimeHookCompletedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: HookCompletedType,
	payload: HookCompletedPayload
});
const ProviderRuntimeToolProgressEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ToolProgressType,
	payload: ToolProgressPayload
});
const ProviderRuntimeToolSummaryEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ToolSummaryType,
	payload: ToolSummaryPayload
});
const ProviderRuntimeAuthStatusEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: AuthStatusType,
	payload: AuthStatusPayload
});
const ProviderRuntimeAccountUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: AccountUpdatedType,
	payload: AccountUpdatedPayload
});
const ProviderRuntimeAccountRateLimitsUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: AccountRateLimitsUpdatedType,
	payload: AccountRateLimitsUpdatedPayload
});
const ProviderRuntimeMcpStatusUpdatedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: McpStatusUpdatedType,
	payload: McpStatusUpdatedPayload
});
const ProviderRuntimeMcpOauthCompletedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: McpOauthCompletedType,
	payload: McpOauthCompletedPayload
});
const ProviderRuntimeModelReroutedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ModelReroutedType,
	payload: ModelReroutedPayload
});
const ProviderRuntimeConfigWarningEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ConfigWarningType,
	payload: ConfigWarningPayload
});
const ProviderRuntimeDeprecationNoticeEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: DeprecationNoticeType,
	payload: DeprecationNoticePayload
});
const ProviderRuntimeFilesPersistedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: FilesPersistedType,
	payload: FilesPersistedPayload
});
const ProviderRuntimeToolDeniedEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: ToolDeniedType,
	payload: ToolDeniedPayload
});
const ProviderRuntimeWarningEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: RuntimeWarningType,
	payload: RuntimeWarningPayload
});
const ProviderRuntimeErrorEvent = __vite_ssr_import_1__.Struct({
	...ProviderRuntimeEventBase.fields,
	type: RuntimeErrorType,
	payload: RuntimeErrorPayload
});
const ProviderRuntimeEventV2 = __vite_ssr_import_1__.Union([
	ProviderRuntimeSessionStartedEvent,
	ProviderRuntimeSessionConfiguredEvent,
	ProviderRuntimeSessionStateChangedEvent,
	ProviderRuntimeSessionExitedEvent,
	ProviderRuntimeThreadStartedEvent,
	ProviderRuntimeThreadStateChangedEvent,
	ProviderRuntimeThreadMetadataUpdatedEvent,
	ProviderRuntimeThreadTokenUsageUpdatedEvent,
	ProviderRuntimeThreadRealtimeStartedEvent,
	ProviderRuntimeThreadRealtimeItemAddedEvent,
	ProviderRuntimeThreadRealtimeAudioDeltaEvent,
	ProviderRuntimeThreadRealtimeErrorEvent,
	ProviderRuntimeThreadRealtimeClosedEvent,
	ProviderRuntimeTurnStartedEvent,
	ProviderRuntimeTurnCompletedEvent,
	ProviderRuntimeTurnAbortedEvent,
	ProviderRuntimeTurnPlanUpdatedEvent,
	ProviderRuntimeTurnProposedDeltaEvent,
	ProviderRuntimeTurnProposedCompletedEvent,
	ProviderRuntimeTurnDiffUpdatedEvent,
	ProviderRuntimeItemStartedEvent,
	ProviderRuntimeItemUpdatedEvent,
	ProviderRuntimeItemCompletedEvent,
	ProviderRuntimeContentDeltaEvent,
	ProviderRuntimeRequestOpenedEvent,
	ProviderRuntimeRequestResolvedEvent,
	ProviderRuntimeUserInputRequestedEvent,
	ProviderRuntimeUserInputResolvedEvent,
	ProviderRuntimeTaskStartedEvent,
	ProviderRuntimeTaskProgressEvent,
	ProviderRuntimeTaskUpdatedEvent,
	ProviderRuntimeTaskCompletedEvent,
	ProviderRuntimeHookStartedEvent,
	ProviderRuntimeHookProgressEvent,
	ProviderRuntimeHookCompletedEvent,
	ProviderRuntimeToolProgressEvent,
	ProviderRuntimeToolSummaryEvent,
	ProviderRuntimeAuthStatusEvent,
	ProviderRuntimeAccountUpdatedEvent,
	ProviderRuntimeAccountRateLimitsUpdatedEvent,
	ProviderRuntimeMcpStatusUpdatedEvent,
	ProviderRuntimeMcpOauthCompletedEvent,
	ProviderRuntimeModelReroutedEvent,
	ProviderRuntimeConfigWarningEvent,
	ProviderRuntimeDeprecationNoticeEvent,
	ProviderRuntimeFilesPersistedEvent,
	ProviderRuntimeToolDeniedEvent,
	ProviderRuntimeWarningEvent,
	ProviderRuntimeErrorEvent
]);
const ProviderRuntimeEvent = ProviderRuntimeEventV2;
const ProviderRuntimeTurnStatus = RuntimeTurnState;
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,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TUFBTTtDQUNOLFNBQVM7QUFDWCxDQUFDO0FBR00sTUFBTSx5QkFBeUIsc0JBQU8sTUFBTTtDQUNqRDtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtBQUNGLENBQUM7QUFHTSxNQUFNLHVCQUF1QjtBQUc3QixNQUFNLDRCQUE0QiIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsicHJvdmlkZXJSdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgU2NoZW1hIGZyb20gXCJlZmZlY3QvU2NoZW1hXCI7XG5pbXBvcnQge1xuICBFdmVudElkLFxuICBJc29EYXRlVGltZSxcbiAgTm9uTmVnYXRpdmVJbnQsXG4gIFByb3ZpZGVySXRlbUlkLFxuICBQb3NpdGl2ZUludCxcbiAgUnVudGltZUl0ZW1JZCxcbiAgUnVudGltZVJlcXVlc3RJZCxcbiAgUnVudGltZVRhc2tJZCxcbiAgVGhyZWFkSWQsXG4gIFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgVHVybklkLFxufSBmcm9tIFwiLi9iYXNlU2NoZW1hcy50c1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJJbnN0YW5jZUlkLCBQcm92aWRlckRyaXZlcktpbmQgfSBmcm9tIFwiLi9wcm92aWRlckluc3RhbmNlLnRzXCI7XG5pbXBvcnQgeyBQcm92aWRlclVzYWdlTGltaXRzVXBkYXRlIH0gZnJvbSBcIi4vcHJvdmlkZXJVc2FnZUxpbWl0cy50c1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJBcHByb3ZhbE9wdGlvbiB9IGZyb20gXCIuL3Byb3ZpZGVyUG9saWN5LnRzXCI7XG5cbmNvbnN0IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSA9IFRyaW1tZWROb25FbXB0eVN0cmluZztcbmNvbnN0IFVua25vd25SZWNvcmRTY2hlbWEgPSBTY2hlbWEuUmVjb3JkKFNjaGVtYS5TdHJpbmcsIFNjaGVtYS5Vbmtub3duKTtcblxuY29uc3QgUnVudGltZUV2ZW50UmF3U291cmNlID0gU2NoZW1hLlVuaW9uKFtcbiAgU2NoZW1hLkxpdGVyYWwoXCJjb2RleC5hcHAtc2VydmVyLm5vdGlmaWNhdGlvblwiKSxcbiAgU2NoZW1hLkxpdGVyYWwoXCJjb2RleC5hcHAtc2VydmVyLnJlcXVlc3RcIiksXG4gIFNjaGVtYS5MaXRlcmFsKFwiY29kZXguZXZlbnRtc2dcIiksXG4gIFNjaGVtYS5MaXRlcmFsKFwiY2xhdWRlLnNkay5tZXNzYWdlXCIpLFxuICBTY2hlbWEuTGl0ZXJhbChcImNsYXVkZS5zZGsucGVybWlzc2lvblwiKSxcbiAgU2NoZW1hLkxpdGVyYWwoXCJjb2RleC5zZGsudGhyZWFkLWV2ZW50XCIpLFxuICBTY2hlbWEuTGl0ZXJhbChcIm9wZW5jb2RlLnNkay5ldmVudFwiKSxcbiAgU2NoZW1hLkxpdGVyYWwoXCJhY3AuanNvbnJwY1wiKSxcbiAgU2NoZW1hLlRlbXBsYXRlTGl0ZXJhbChbXCJhY3AuXCIsIFNjaGVtYS5TdHJpbmcsIFwiLmV4dGVuc2lvblwiXSksXG5dKTtcbmV4cG9ydCB0eXBlIFJ1bnRpbWVFdmVudFJhd1NvdXJjZSA9IHR5cGVvZiBSdW50aW1lRXZlbnRSYXdTb3VyY2UuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFJ1bnRpbWVFdmVudFJhdyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzb3VyY2U6IFJ1bnRpbWVFdmVudFJhd1NvdXJjZSxcbiAgbWV0aG9kOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgbWVzc2FnZVR5cGU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBwYXlsb2FkOiBTY2hlbWEuVW5rbm93bixcbn0pO1xuZXhwb3J0IHR5cGUgUnVudGltZUV2ZW50UmF3ID0gdHlwZW9mIFJ1bnRpbWVFdmVudFJhdy5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJlcXVlc3RJZCA9IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUmVxdWVzdElkID0gdHlwZW9mIFByb3ZpZGVyUmVxdWVzdElkLlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUmVmcyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBwcm92aWRlclR1cm5JZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHByb3ZpZGVySXRlbUlkOiBTY2hlbWEub3B0aW9uYWwoUHJvdmlkZXJJdGVtSWQpLFxuICBwcm92aWRlclJlcXVlc3RJZDogU2NoZW1hLm9wdGlvbmFsKFByb3ZpZGVyUmVxdWVzdElkKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSZWZzID0gdHlwZW9mIFByb3ZpZGVyUmVmcy5UeXBlO1xuXG5jb25zdCBSdW50aW1lU2Vzc2lvblN0YXRlID0gU2NoZW1hLkxpdGVyYWxzKFtcbiAgXCJzdGFydGluZ1wiLFxuICBcInJlYWR5XCIsXG4gIFwicnVubmluZ1wiLFxuICBcIndhaXRpbmdcIixcbiAgXCJzdG9wcGVkXCIsXG4gIFwiZXJyb3JcIixcbl0pO1xuZXhwb3J0IHR5cGUgUnVudGltZVNlc3Npb25TdGF0ZSA9IHR5cGVvZiBSdW50aW1lU2Vzc2lvblN0YXRlLlR5cGU7XG5cbmNvbnN0IFJ1bnRpbWVUaHJlYWRTdGF0ZSA9IFNjaGVtYS5MaXRlcmFscyhbXG4gIFwiYWN0aXZlXCIsXG4gIFwiaWRsZVwiLFxuICBcImFyY2hpdmVkXCIsXG4gIFwiY2xvc2VkXCIsXG4gIFwiY29tcGFjdGVkXCIsXG4gIFwiZXJyb3JcIixcbl0pO1xuZXhwb3J0IHR5cGUgUnVudGltZVRocmVhZFN0YXRlID0gdHlwZW9mIFJ1bnRpbWVUaHJlYWRTdGF0ZS5UeXBlO1xuXG5jb25zdCBSdW50aW1lVHVyblN0YXRlID0gU2NoZW1hLkxpdGVyYWxzKFtcImNvbXBsZXRlZFwiLCBcImZhaWxlZFwiLCBcImludGVycnVwdGVkXCIsIFwiY2FuY2VsbGVkXCJdKTtcbmV4cG9ydCB0eXBlIFJ1bnRpbWVUdXJuU3RhdGUgPSB0eXBlb2YgUnVudGltZVR1cm5TdGF0ZS5UeXBlO1xuXG5jb25zdCBSdW50aW1lUGxhblN0ZXBTdGF0dXMgPSBTY2hlbWEuTGl0ZXJhbHMoW1wicGVuZGluZ1wiLCBcImluUHJvZ3Jlc3NcIiwgXCJjb21wbGV0ZWRcIl0pO1xuZXhwb3J0IHR5cGUgUnVudGltZVBsYW5TdGVwU3RhdHVzID0gdHlwZW9mIFJ1bnRpbWVQbGFuU3RlcFN0YXR1cy5UeXBlO1xuXG5jb25zdCBSdW50aW1lSXRlbVN0YXR1cyA9IFNjaGVtYS5MaXRlcmFscyhbXCJpblByb2dyZXNzXCIsIFwiY29tcGxldGVkXCIsIFwiZmFpbGVkXCIsIFwiZGVjbGluZWRcIl0pO1xuZXhwb3J0IHR5cGUgUnVudGltZUl0ZW1TdGF0dXMgPSB0eXBlb2YgUnVudGltZUl0ZW1TdGF0dXMuVHlwZTtcblxuY29uc3QgUnVudGltZUNvbnRlbnRTdHJlYW1LaW5kID0gU2NoZW1hLkxpdGVyYWxzKFtcbiAgXCJhc3Npc3RhbnRfdGV4dFwiLFxuICBcInJlYXNvbmluZ190ZXh0XCIsXG4gIFwicmVhc29uaW5nX3N1bW1hcnlfdGV4dFwiLFxuICBcInBsYW5fdGV4dFwiLFxuICBcImNvbW1hbmRfb3V0cHV0XCIsXG4gIFwiZmlsZV9jaGFuZ2Vfb3V0cHV0XCIsXG4gIFwidW5rbm93blwiLFxuXSk7XG5leHBvcnQgdHlwZSBSdW50aW1lQ29udGVudFN0cmVhbUtpbmQgPSB0eXBlb2YgUnVudGltZUNvbnRlbnRTdHJlYW1LaW5kLlR5cGU7XG5cbmNvbnN0IFJ1bnRpbWVTZXNzaW9uRXhpdEtpbmQgPSBTY2hlbWEuTGl0ZXJhbHMoW1wiZ3JhY2VmdWxcIiwgXCJlcnJvclwiXSk7XG5leHBvcnQgdHlwZSBSdW50aW1lU2Vzc2lvbkV4aXRLaW5kID0gdHlwZW9mIFJ1bnRpbWVTZXNzaW9uRXhpdEtpbmQuVHlwZTtcblxuY29uc3QgUnVudGltZUVycm9yQ2xhc3MgPSBTY2hlbWEuTGl0ZXJhbHMoW1xuICBcInByb3ZpZGVyX2Vycm9yXCIsXG4gIFwidHJhbnNwb3J0X2Vycm9yXCIsXG4gIFwicGVybWlzc2lvbl9lcnJvclwiLFxuICBcInZhbGlkYXRpb25fZXJyb3JcIixcbiAgXCJ1bmtub3duXCIsXG5dKTtcbmV4cG9ydCB0eXBlIFJ1bnRpbWVFcnJvckNsYXNzID0gdHlwZW9mIFJ1bnRpbWVFcnJvckNsYXNzLlR5cGU7XG5cbmNvbnN0IFRPT0xfTElGRUNZQ0xFX0lURU1fVFlQRVMgPSBbXG4gIFwiY29tbWFuZF9leGVjdXRpb25cIixcbiAgXCJmaWxlX2NoYW5nZVwiLFxuICBcIm1jcF90b29sX2NhbGxcIixcbiAgXCJkeW5hbWljX3Rvb2xfY2FsbFwiLFxuICBcImNvbGxhYl9hZ2VudF90b29sX2NhbGxcIixcbiAgXCJ3ZWJfc2VhcmNoXCIsXG4gIFwiaW1hZ2Vfdmlld1wiLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFRvb2xMaWZlY3ljbGVJdGVtVHlwZSA9IFNjaGVtYS5MaXRlcmFscyhUT09MX0xJRkVDWUNMRV9JVEVNX1RZUEVTKTtcbmV4cG9ydCB0eXBlIFRvb2xMaWZlY3ljbGVJdGVtVHlwZSA9IHR5cGVvZiBUb29sTGlmZWN5Y2xlSXRlbVR5cGUuVHlwZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVG9vbExpZmVjeWNsZUl0ZW1UeXBlKHZhbHVlOiBzdHJpbmcpOiB2YWx1ZSBpcyBUb29sTGlmZWN5Y2xlSXRlbVR5cGUge1xuICByZXR1cm4gVE9PTF9MSUZFQ1lDTEVfSVRFTV9UWVBFUy5pbmNsdWRlcyh2YWx1ZSBhcyBUb29sTGlmZWN5Y2xlSXRlbVR5cGUpO1xufVxuXG5leHBvcnQgY29uc3QgQ2Fub25pY2FsSXRlbVR5cGUgPSBTY2hlbWEuTGl0ZXJhbHMoW1xuICBcInVzZXJfbWVzc2FnZVwiLFxuICBcImFzc2lzdGFudF9tZXNzYWdlXCIsXG4gIFwicmVhc29uaW5nXCIsXG4gIFwicGxhblwiLFxuICAuLi5UT09MX0xJRkVDWUNMRV9JVEVNX1RZUEVTLFxuICBcInJldmlld19lbnRlcmVkXCIsXG4gIFwicmV2aWV3X2V4aXRlZFwiLFxuICBcImNvbnRleHRfY29tcGFjdGlvblwiLFxuICBcImVycm9yXCIsXG4gIFwidW5rbm93blwiLFxuXSk7XG5leHBvcnQgdHlwZSBDYW5vbmljYWxJdGVtVHlwZSA9IHR5cGVvZiBDYW5vbmljYWxJdGVtVHlwZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgQ2Fub25pY2FsUmVxdWVzdFR5cGUgPSBTY2hlbWEuTGl0ZXJhbHMoW1xuICBcImNvbW1hbmRfZXhlY3V0aW9uX2FwcHJvdmFsXCIsXG4gIFwiZmlsZV9yZWFkX2FwcHJvdmFsXCIsXG4gIFwiZmlsZV9jaGFuZ2VfYXBwcm92YWxcIixcbiAgXCJhcHBseV9wYXRjaF9hcHByb3ZhbFwiLFxuICBcImV4ZWNfY29tbWFuZF9hcHByb3ZhbFwiLFxuICBcIm1jcF9lbGljaXRhdGlvbl9hcHByb3ZhbFwiLFxuICBcInBlcm1pc3Npb25fYXBwcm92YWxcIixcbiAgXCJ0b29sX3VzZXJfaW5wdXRcIixcbiAgXCJkeW5hbWljX3Rvb2xfY2FsbFwiLFxuICBcImF1dGhfdG9rZW5zX3JlZnJlc2hcIixcbiAgXCJ1bmtub3duXCIsXG5dKTtcbmV4cG9ydCB0eXBlIENhbm9uaWNhbFJlcXVlc3RUeXBlID0gdHlwZW9mIENhbm9uaWNhbFJlcXVlc3RUeXBlLlR5cGU7XG5cbmNvbnN0IFNlc3Npb25TdGFydGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwic2Vzc2lvbi5zdGFydGVkXCIpO1xuY29uc3QgU2Vzc2lvbkNvbmZpZ3VyZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJzZXNzaW9uLmNvbmZpZ3VyZWRcIik7XG5jb25zdCBTZXNzaW9uU3RhdGVDaGFuZ2VkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwic2Vzc2lvbi5zdGF0ZS5jaGFuZ2VkXCIpO1xuY29uc3QgU2Vzc2lvbkV4aXRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInNlc3Npb24uZXhpdGVkXCIpO1xuY29uc3QgVGhyZWFkU3RhcnRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInRocmVhZC5zdGFydGVkXCIpO1xuY29uc3QgVGhyZWFkU3RhdGVDaGFuZ2VkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidGhyZWFkLnN0YXRlLmNoYW5nZWRcIik7XG5jb25zdCBUaHJlYWRNZXRhZGF0YVVwZGF0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0aHJlYWQubWV0YWRhdGEudXBkYXRlZFwiKTtcbmNvbnN0IFRocmVhZFRva2VuVXNhZ2VVcGRhdGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidGhyZWFkLnRva2VuLXVzYWdlLnVwZGF0ZWRcIik7XG5jb25zdCBUaHJlYWRSZWFsdGltZVN0YXJ0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0aHJlYWQucmVhbHRpbWUuc3RhcnRlZFwiKTtcbmNvbnN0IFRocmVhZFJlYWx0aW1lSXRlbUFkZGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidGhyZWFkLnJlYWx0aW1lLml0ZW0tYWRkZWRcIik7XG5jb25zdCBUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0aHJlYWQucmVhbHRpbWUuYXVkaW8uZGVsdGFcIik7XG5jb25zdCBUaHJlYWRSZWFsdGltZUVycm9yVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidGhyZWFkLnJlYWx0aW1lLmVycm9yXCIpO1xuY29uc3QgVGhyZWFkUmVhbHRpbWVDbG9zZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0aHJlYWQucmVhbHRpbWUuY2xvc2VkXCIpO1xuY29uc3QgVHVyblN0YXJ0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0dXJuLnN0YXJ0ZWRcIik7XG5jb25zdCBUdXJuQ29tcGxldGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidHVybi5jb21wbGV0ZWRcIik7XG5jb25zdCBUdXJuQWJvcnRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInR1cm4uYWJvcnRlZFwiKTtcbmNvbnN0IFR1cm5QbGFuVXBkYXRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInR1cm4ucGxhbi51cGRhdGVkXCIpO1xuY29uc3QgVHVyblByb3Bvc2VkRGVsdGFUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0dXJuLnByb3Bvc2VkLmRlbHRhXCIpO1xuY29uc3QgVHVyblByb3Bvc2VkQ29tcGxldGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidHVybi5wcm9wb3NlZC5jb21wbGV0ZWRcIik7XG5jb25zdCBUdXJuRGlmZlVwZGF0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0dXJuLmRpZmYudXBkYXRlZFwiKTtcbmNvbnN0IEl0ZW1TdGFydGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwiaXRlbS5zdGFydGVkXCIpO1xuY29uc3QgSXRlbVVwZGF0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJpdGVtLnVwZGF0ZWRcIik7XG5jb25zdCBJdGVtQ29tcGxldGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwiaXRlbS5jb21wbGV0ZWRcIik7XG5jb25zdCBDb250ZW50RGVsdGFUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJjb250ZW50LmRlbHRhXCIpO1xuY29uc3QgUmVxdWVzdE9wZW5lZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInJlcXVlc3Qub3BlbmVkXCIpO1xuY29uc3QgUmVxdWVzdFJlc29sdmVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwicmVxdWVzdC5yZXNvbHZlZFwiKTtcbmNvbnN0IFVzZXJJbnB1dFJlcXVlc3RlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInVzZXItaW5wdXQucmVxdWVzdGVkXCIpO1xuY29uc3QgVXNlcklucHV0UmVzb2x2ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ1c2VyLWlucHV0LnJlc29sdmVkXCIpO1xuY29uc3QgVGFza1N0YXJ0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0YXNrLnN0YXJ0ZWRcIik7XG5jb25zdCBUYXNrUHJvZ3Jlc3NUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0YXNrLnByb2dyZXNzXCIpO1xuY29uc3QgVGFza1VwZGF0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0YXNrLnVwZGF0ZWRcIik7XG5jb25zdCBUYXNrQ29tcGxldGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwidGFzay5jb21wbGV0ZWRcIik7XG5jb25zdCBIb29rU3RhcnRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcImhvb2suc3RhcnRlZFwiKTtcbmNvbnN0IEhvb2tQcm9ncmVzc1R5cGUgPSBTY2hlbWEuTGl0ZXJhbChcImhvb2sucHJvZ3Jlc3NcIik7XG5jb25zdCBIb29rQ29tcGxldGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwiaG9vay5jb21wbGV0ZWRcIik7XG5jb25zdCBUb29sUHJvZ3Jlc3NUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0b29sLnByb2dyZXNzXCIpO1xuY29uc3QgVG9vbFN1bW1hcnlUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJ0b29sLnN1bW1hcnlcIik7XG5jb25zdCBBdXRoU3RhdHVzVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwiYXV0aC5zdGF0dXNcIik7XG5jb25zdCBBY2NvdW50VXBkYXRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcImFjY291bnQudXBkYXRlZFwiKTtcbmNvbnN0IEFjY291bnRSYXRlTGltaXRzVXBkYXRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcImFjY291bnQucmF0ZS1saW1pdHMudXBkYXRlZFwiKTtcbmNvbnN0IE1jcFN0YXR1c1VwZGF0ZWRUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJtY3Auc3RhdHVzLnVwZGF0ZWRcIik7XG5jb25zdCBNY3BPYXV0aENvbXBsZXRlZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcIm1jcC5vYXV0aC5jb21wbGV0ZWRcIik7XG5jb25zdCBNb2RlbFJlcm91dGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwibW9kZWwucmVyb3V0ZWRcIik7XG5jb25zdCBDb25maWdXYXJuaW5nVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwiY29uZmlnLndhcm5pbmdcIik7XG5jb25zdCBEZXByZWNhdGlvbk5vdGljZVR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcImRlcHJlY2F0aW9uLm5vdGljZVwiKTtcbmNvbnN0IEZpbGVzUGVyc2lzdGVkVHlwZSA9IFNjaGVtYS5MaXRlcmFsKFwiZmlsZXMucGVyc2lzdGVkXCIpO1xuY29uc3QgVG9vbERlbmllZFR5cGUgPSBTY2hlbWEuTGl0ZXJhbChcInRvb2wuZGVuaWVkXCIpO1xuY29uc3QgUnVudGltZVdhcm5pbmdUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJydW50aW1lLndhcm5pbmdcIik7XG5jb25zdCBSdW50aW1lRXJyb3JUeXBlID0gU2NoZW1hLkxpdGVyYWwoXCJydW50aW1lLmVycm9yXCIpO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVFdmVudEJhc2UgPSBTY2hlbWEuU3RydWN0KHtcbiAgZXZlbnRJZDogRXZlbnRJZCxcbiAgcHJvdmlkZXI6IFByb3ZpZGVyRHJpdmVyS2luZCxcbiAgcHJvdmlkZXJJbnN0YW5jZUlkOiBTY2hlbWEub3B0aW9uYWwoUHJvdmlkZXJJbnN0YW5jZUlkKSxcbiAgdGhyZWFkSWQ6IFRocmVhZElkLFxuICBjcmVhdGVkQXQ6IElzb0RhdGVUaW1lLFxuICB0dXJuSWQ6IFNjaGVtYS5vcHRpb25hbChUdXJuSWQpLFxuICBpdGVtSWQ6IFNjaGVtYS5vcHRpb25hbChSdW50aW1lSXRlbUlkKSxcbiAgcmVxdWVzdElkOiBTY2hlbWEub3B0aW9uYWwoUnVudGltZVJlcXVlc3RJZCksXG4gIHByb3ZpZGVyUmVmczogU2NoZW1hLm9wdGlvbmFsKFByb3ZpZGVyUmVmcyksXG4gIHJhdzogU2NoZW1hLm9wdGlvbmFsKFJ1bnRpbWVFdmVudFJhdyksXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUV2ZW50QmFzZSA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuVHlwZTtcblxuY29uc3QgU2Vzc2lvblN0YXJ0ZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIG1lc3NhZ2U6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICByZXN1bWU6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuVW5rbm93biksXG59KTtcbmV4cG9ydCB0eXBlIFNlc3Npb25TdGFydGVkUGF5bG9hZCA9IHR5cGVvZiBTZXNzaW9uU3RhcnRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgU2Vzc2lvbkNvbmZpZ3VyZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIGNvbmZpZzogVW5rbm93blJlY29yZFNjaGVtYSxcbn0pO1xuZXhwb3J0IHR5cGUgU2Vzc2lvbkNvbmZpZ3VyZWRQYXlsb2FkID0gdHlwZW9mIFNlc3Npb25Db25maWd1cmVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBTZXNzaW9uU3RhdGVDaGFuZ2VkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzdGF0ZTogUnVudGltZVNlc3Npb25TdGF0ZSxcbiAgcmVhc29uOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgZGV0YWlsOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlVua25vd24pLFxufSk7XG5leHBvcnQgdHlwZSBTZXNzaW9uU3RhdGVDaGFuZ2VkUGF5bG9hZCA9IHR5cGVvZiBTZXNzaW9uU3RhdGVDaGFuZ2VkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBTZXNzaW9uRXhpdGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICByZWFzb246IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICByZWNvdmVyYWJsZTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgZXhpdEtpbmQ6IFNjaGVtYS5vcHRpb25hbChSdW50aW1lU2Vzc2lvbkV4aXRLaW5kKSxcbn0pO1xuZXhwb3J0IHR5cGUgU2Vzc2lvbkV4aXRlZFBheWxvYWQgPSB0eXBlb2YgU2Vzc2lvbkV4aXRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgVGhyZWFkU3RhcnRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcHJvdmlkZXJUaHJlYWRJZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG59KTtcbmV4cG9ydCB0eXBlIFRocmVhZFN0YXJ0ZWRQYXlsb2FkID0gdHlwZW9mIFRocmVhZFN0YXJ0ZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFRocmVhZFN0YXRlQ2hhbmdlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgc3RhdGU6IFJ1bnRpbWVUaHJlYWRTdGF0ZSxcbiAgYmVmb3JlVG9rZW5zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBhZnRlclRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgZGV0YWlsOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlVua25vd24pLFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRTdGF0ZUNoYW5nZWRQYXlsb2FkID0gdHlwZW9mIFRocmVhZFN0YXRlQ2hhbmdlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgVGhyZWFkTWV0YWRhdGFVcGRhdGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBuYW1lOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgbWV0YWRhdGE6IFNjaGVtYS5vcHRpb25hbChVbmtub3duUmVjb3JkU2NoZW1hKSxcbn0pO1xuZXhwb3J0IHR5cGUgVGhyZWFkTWV0YWRhdGFVcGRhdGVkUGF5bG9hZCA9IHR5cGVvZiBUaHJlYWRNZXRhZGF0YVVwZGF0ZWRQYXlsb2FkLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBUaHJlYWRUb2tlblVzYWdlU25hcHNob3QgPSBTY2hlbWEuU3RydWN0KHtcbiAgdXNlZFRva2VuczogTm9uTmVnYXRpdmVJbnQsXG4gIHRvdGFsUHJvY2Vzc2VkVG9rZW5zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBtYXhUb2tlbnM6IFNjaGVtYS5vcHRpb25hbChQb3NpdGl2ZUludCksXG4gIGlucHV0VG9rZW5zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBjYWNoZWRJbnB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgb3V0cHV0VG9rZW5zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICByZWFzb25pbmdPdXRwdXRUb2tlbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIGxhc3RVc2VkVG9rZW5zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBsYXN0SW5wdXRUb2tlbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIGxhc3RDYWNoZWRJbnB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgbGFzdE91dHB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgbGFzdFJlYXNvbmluZ091dHB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgdG9vbFVzZXM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIGR1cmF0aW9uTXM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIGNvbXBhY3RzQXV0b21hdGljYWxseTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgYXV0b0NvbXBhY3RUaHJlc2hvbGQ6IFNjaGVtYS5vcHRpb25hbChQb3NpdGl2ZUludCksXG4gIGNvc3Q6IFNjaGVtYS5vcHRpb25hbChcbiAgICBTY2hlbWEuU3RydWN0KHtcbiAgICAgIGFtb3VudDogU2NoZW1hLk51bWJlci5jaGVjayhTY2hlbWEuaXNGaW5pdGUoKSksXG4gICAgICBjdXJyZW5jeTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgzMikpLFxuICAgIH0pLFxuICApLFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRUb2tlblVzYWdlU25hcHNob3QgPSB0eXBlb2YgVGhyZWFkVG9rZW5Vc2FnZVNuYXBzaG90LlR5cGU7XG5cbmNvbnN0IFRocmVhZFRva2VuVXNhZ2VVcGRhdGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICB1c2FnZTogVGhyZWFkVG9rZW5Vc2FnZVNuYXBzaG90LFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRUb2tlblVzYWdlVXBkYXRlZFBheWxvYWQgPSB0eXBlb2YgVGhyZWFkVG9rZW5Vc2FnZVVwZGF0ZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFRocmVhZFJlYWx0aW1lU3RhcnRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVhbHRpbWVTZXNzaW9uSWQ6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRSZWFsdGltZVN0YXJ0ZWRQYXlsb2FkID0gdHlwZW9mIFRocmVhZFJlYWx0aW1lU3RhcnRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgVGhyZWFkUmVhbHRpbWVJdGVtQWRkZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIGl0ZW06IFNjaGVtYS5Vbmtub3duLFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRSZWFsdGltZUl0ZW1BZGRlZFBheWxvYWQgPSB0eXBlb2YgVGhyZWFkUmVhbHRpbWVJdGVtQWRkZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFRocmVhZFJlYWx0aW1lQXVkaW9EZWx0YVBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgYXVkaW86IFNjaGVtYS5Vbmtub3duLFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFQYXlsb2FkID0gdHlwZW9mIFRocmVhZFJlYWx0aW1lQXVkaW9EZWx0YVBheWxvYWQuVHlwZTtcblxuY29uc3QgVGhyZWFkUmVhbHRpbWVFcnJvclBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgbWVzc2FnZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxufSk7XG5leHBvcnQgdHlwZSBUaHJlYWRSZWFsdGltZUVycm9yUGF5bG9hZCA9IHR5cGVvZiBUaHJlYWRSZWFsdGltZUVycm9yUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBUaHJlYWRSZWFsdGltZUNsb3NlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVhc29uOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbn0pO1xuZXhwb3J0IHR5cGUgVGhyZWFkUmVhbHRpbWVDbG9zZWRQYXlsb2FkID0gdHlwZW9mIFRocmVhZFJlYWx0aW1lQ2xvc2VkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBUdXJuU3RhcnRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgbW9kZWw6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBlZmZvcnQ6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxufSk7XG5leHBvcnQgdHlwZSBUdXJuU3RhcnRlZFBheWxvYWQgPSB0eXBlb2YgVHVyblN0YXJ0ZWRQYXlsb2FkLlR5cGU7XG5cbi8vIElucHV0IGluY2x1ZGVzIGNhY2hlIHJlYWRzL3dyaXRlczsgb3V0cHV0IGluY2x1ZGVzIHRoZSBvcHRpb25hbCByZWFzb25pbmdUb2tlbnMgc3Vic2V0LlxuY29uc3QgVHVyblRva2VuVXNhZ2VDb21tb25GaWVsZHMgPSB7XG4gIHVzYWdlU2NvcGU6IFNjaGVtYS5MaXRlcmFsKFwibWFpbl9hZ2VudFwiKSxcbiAgY2FjaGVkSW5wdXRUb2tlbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIGNhY2hlQ3JlYXRpb25Ub2tlbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIHJlYXNvbmluZ1Rva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgaGFzU3ViYWdlbnRzOiBTY2hlbWEuQm9vbGVhbixcbn07XG5leHBvcnQgY29uc3QgVHVyblRva2VuVXNhZ2UgPSBTY2hlbWEuVW5pb24oW1xuICBTY2hlbWEuU3RydWN0KHtcbiAgICAuLi5UdXJuVG9rZW5Vc2FnZUNvbW1vbkZpZWxkcyxcbiAgICB1c2FnZVN0YXR1czogU2NoZW1hLkxpdGVyYWwoXCJjb21wbGV0ZVwiKSxcbiAgICBpbnB1dFRva2VuczogTm9uTmVnYXRpdmVJbnQsXG4gICAgb3V0cHV0VG9rZW5zOiBOb25OZWdhdGl2ZUludCxcbiAgfSksXG4gIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgIC4uLlR1cm5Ub2tlblVzYWdlQ29tbW9uRmllbGRzLFxuICAgIHVzYWdlU3RhdHVzOiBTY2hlbWEuTGl0ZXJhbHMoW1wicGFydGlhbFwiLCBcInVuYXZhaWxhYmxlXCJdKSxcbiAgICBpbnB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgICBvdXRwdXRUb2tlbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIH0pLFxuXSk7XG5leHBvcnQgdHlwZSBUdXJuVG9rZW5Vc2FnZSA9IHR5cGVvZiBUdXJuVG9rZW5Vc2FnZS5UeXBlO1xuXG5jb25zdCBUdXJuQ29tcGxldGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzdGF0ZTogUnVudGltZVR1cm5TdGF0ZSxcbiAgc3RvcFJlYXNvbjogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5OdWxsT3IoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSksXG4gIHVzYWdlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlVua25vd24pLFxuICBtb2RlbFVzYWdlOiBTY2hlbWEub3B0aW9uYWwoVW5rbm93blJlY29yZFNjaGVtYSksXG4gIHRvdGFsQ29zdFVzZDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5OdW1iZXIpLFxuICBlcnJvck1lc3NhZ2U6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICB0b2tlblVzYWdlOiBTY2hlbWEub3B0aW9uYWwoVHVyblRva2VuVXNhZ2UpLFxufSk7XG5leHBvcnQgdHlwZSBUdXJuQ29tcGxldGVkUGF5bG9hZCA9IHR5cGVvZiBUdXJuQ29tcGxldGVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBUdXJuQWJvcnRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVhc29uOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG4gIHRva2VuVXNhZ2U6IFNjaGVtYS5vcHRpb25hbChUdXJuVG9rZW5Vc2FnZSksXG59KTtcbmV4cG9ydCB0eXBlIFR1cm5BYm9ydGVkUGF5bG9hZCA9IHR5cGVvZiBUdXJuQWJvcnRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgUnVudGltZVBsYW5TdGVwID0gU2NoZW1hLlN0cnVjdCh7XG4gIHN0ZXA6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgc3RhdHVzOiBSdW50aW1lUGxhblN0ZXBTdGF0dXMsXG59KTtcbmV4cG9ydCB0eXBlIFJ1bnRpbWVQbGFuU3RlcCA9IHR5cGVvZiBSdW50aW1lUGxhblN0ZXAuVHlwZTtcblxuY29uc3QgVHVyblBsYW5VcGRhdGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBleHBsYW5hdGlvbjogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5OdWxsT3IoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSksXG4gIHBsYW46IFNjaGVtYS5BcnJheShSdW50aW1lUGxhblN0ZXApLFxufSk7XG5leHBvcnQgdHlwZSBUdXJuUGxhblVwZGF0ZWRQYXlsb2FkID0gdHlwZW9mIFR1cm5QbGFuVXBkYXRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgVHVyblByb3Bvc2VkRGVsdGFQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIGRlbHRhOiBTY2hlbWEuU3RyaW5nLFxufSk7XG5leHBvcnQgdHlwZSBUdXJuUHJvcG9zZWREZWx0YVBheWxvYWQgPSB0eXBlb2YgVHVyblByb3Bvc2VkRGVsdGFQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFR1cm5Qcm9wb3NlZENvbXBsZXRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcGxhbk1hcmtkb3duOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG59KTtcbmV4cG9ydCB0eXBlIFR1cm5Qcm9wb3NlZENvbXBsZXRlZFBheWxvYWQgPSB0eXBlb2YgVHVyblByb3Bvc2VkQ29tcGxldGVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBUdXJuRGlmZlVwZGF0ZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIHVuaWZpZWREaWZmOiBTY2hlbWEuU3RyaW5nLFxufSk7XG5leHBvcnQgdHlwZSBUdXJuRGlmZlVwZGF0ZWRQYXlsb2FkID0gdHlwZW9mIFR1cm5EaWZmVXBkYXRlZFBheWxvYWQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFRvb2xBY3Rpdml0eVN1cmZhY2UgPSBTY2hlbWEuTGl0ZXJhbHMoW1wiYnJvd3NlclwiLCBcImNvbXB1dGVyXCJdKTtcbmV4cG9ydCB0eXBlIFRvb2xBY3Rpdml0eVN1cmZhY2UgPSB0eXBlb2YgVG9vbEFjdGl2aXR5U3VyZmFjZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgVG9vbEFjdGl2aXR5TmF0aXZlQXBwUmVmZXJlbmNlID0gU2NoZW1hLlVuaW9uKFtcbiAgU2NoZW1hLlRhZ2dlZFN0cnVjdChcImFwcC1pZFwiLCB7XG4gICAgYXBwSWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYS5jaGVjayhcbiAgICAgIFNjaGVtYS5pc01heExlbmd0aCg1MTIpLFxuICAgICAgU2NoZW1hLmlzUGF0dGVybigvXltBLVphLXowLTkuXy1dKyQvdSksXG4gICAgKSxcbiAgfSksXG4gIFNjaGVtYS5UYWdnZWRTdHJ1Y3QoXCJkaXNwbGF5LW5hbWVcIiwge1xuICAgIGRpc3BsYXlOYW1lOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDE2MCkpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgVG9vbEFjdGl2aXR5TmF0aXZlQXBwUmVmZXJlbmNlID0gdHlwZW9mIFRvb2xBY3Rpdml0eU5hdGl2ZUFwcFJlZmVyZW5jZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgVG9vbEFjdGl2aXR5SWNvbiA9IFNjaGVtYS5VbmlvbihbXG4gIFNjaGVtYS5UYWdnZWRTdHJ1Y3QoXCJ3ZWJzaXRlXCIsIHtcbiAgICBwYWdlVXJsOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDQwOTYpKSxcbiAgICBmYXZpY29uVXJsOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg0MDk2KSkpLFxuICAgIGZhdmljb25VcmxEYXJrOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg0MDk2KSkpLFxuICB9KSxcbiAgU2NoZW1hLlRhZ2dlZFN0cnVjdChcIm5hdGl2ZS1hcHBcIiwge1xuICAgIGFwcDogVG9vbEFjdGl2aXR5TmF0aXZlQXBwUmVmZXJlbmNlLFxuICB9KSxcbiAgU2NoZW1hLlRhZ2dlZFN0cnVjdChcInRoZW1lZC1sb2dvXCIsIHtcbiAgICBsb2dvVXJsOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDQwOTYpKSxcbiAgICBsb2dvVXJsRGFyazogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYS5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoNDA5NikpKSxcbiAgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFRvb2xBY3Rpdml0eUljb24gPSB0eXBlb2YgVG9vbEFjdGl2aXR5SWNvbi5UeXBlO1xuXG5leHBvcnQgY29uc3QgVG9vbEFjdGl2aXR5U291cmNlID0gU2NoZW1hLlN0cnVjdCh7XG4gIGtleTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg1MTIpKSxcbiAgbmFtZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxNjApKSxcbiAga2luZDogU2NoZW1hLkxpdGVyYWxzKFtcImJyb3dzZXJcIiwgXCJjb21wdXRlclwiLCBcImludGVncmF0aW9uXCJdKSxcbiAgaWNvbjogU2NoZW1hLm9wdGlvbmFsKFRvb2xBY3Rpdml0eUljb24pLFxufSk7XG5leHBvcnQgdHlwZSBUb29sQWN0aXZpdHlTb3VyY2UgPSB0eXBlb2YgVG9vbEFjdGl2aXR5U291cmNlLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBJdGVtTGlmZWN5Y2xlUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpdGVtVHlwZTogQ2Fub25pY2FsSXRlbVR5cGUsXG4gIHN0YXR1czogU2NoZW1hLm9wdGlvbmFsKFJ1bnRpbWVJdGVtU3RhdHVzKSxcbiAgdGl0bGU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBkZXRhaWw6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICB0b29sU3VyZmFjZTogU2NoZW1hLm9wdGlvbmFsKFRvb2xBY3Rpdml0eVN1cmZhY2UpLFxuICB0b29sSWNvbjogU2NoZW1hLm9wdGlvbmFsKFRvb2xBY3Rpdml0eUljb24pLFxuICB0b29sU291cmNlOiBTY2hlbWEub3B0aW9uYWwoVG9vbEFjdGl2aXR5U291cmNlKSxcbiAgZGF0YTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Vbmtub3duKSxcbiAgYWdlbnRJZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHBhcmVudFRvb2xVc2VJZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG59KTtcbmV4cG9ydCB0eXBlIEl0ZW1MaWZlY3ljbGVQYXlsb2FkID0gdHlwZW9mIEl0ZW1MaWZlY3ljbGVQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IENvbnRlbnREZWx0YVBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgc3RyZWFtS2luZDogUnVudGltZUNvbnRlbnRTdHJlYW1LaW5kLFxuICBkZWx0YTogU2NoZW1hLlN0cmluZyxcbiAgY29udGVudEluZGV4OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkludCksXG4gIHN1bW1hcnlJbmRleDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5JbnQpLFxufSk7XG5leHBvcnQgdHlwZSBDb250ZW50RGVsdGFQYXlsb2FkID0gdHlwZW9mIENvbnRlbnREZWx0YVBheWxvYWQuVHlwZTtcblxuY29uc3QgUmVxdWVzdE9wZW5lZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVxdWVzdFR5cGU6IENhbm9uaWNhbFJlcXVlc3RUeXBlLFxuICBkZXRhaWw6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBhcHBOYW1lOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgb3B0aW9uczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5BcnJheShQcm92aWRlckFwcHJvdmFsT3B0aW9uKSksXG4gIGFyZ3M6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuVW5rbm93biksXG59KTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RPcGVuZWRQYXlsb2FkID0gdHlwZW9mIFJlcXVlc3RPcGVuZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFJlcXVlc3RSZXNvbHZlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVxdWVzdFR5cGU6IENhbm9uaWNhbFJlcXVlc3RUeXBlLFxuICBkZWNpc2lvbjogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHJlc29sdXRpb246IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuVW5rbm93biksXG59KTtcbmV4cG9ydCB0eXBlIFJlcXVlc3RSZXNvbHZlZFBheWxvYWQgPSB0eXBlb2YgUmVxdWVzdFJlc29sdmVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBVc2VySW5wdXRRdWVzdGlvbk9wdGlvbiA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBsYWJlbDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICBkZXNjcmlwdGlvbjogU2NoZW1hLlN0cmluZyxcbiAgdmFsdWU6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuU3RyaW5nKSxcbn0pO1xuZXhwb3J0IHR5cGUgVXNlcklucHV0UXVlc3Rpb25PcHRpb24gPSB0eXBlb2YgVXNlcklucHV0UXVlc3Rpb25PcHRpb24uVHlwZTtcblxuZXhwb3J0IGNvbnN0IFVzZXJJbnB1dFF1ZXN0aW9uID0gU2NoZW1hLlN0cnVjdCh7XG4gIGlkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG4gIGhlYWRlcjogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICBxdWVzdGlvbjogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICBvcHRpb25zOiBTY2hlbWEuQXJyYXkoVXNlcklucHV0UXVlc3Rpb25PcHRpb24pLFxuICBhbGxvd0N1c3RvbUFuc3dlcjogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgaW5pdGlhbEFuc3dlcjogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5TdHJpbmcpLFxuICBtdWx0aVNlbGVjdDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKS5waXBlKFxuICAgIFNjaGVtYS53aXRoQ29uc3RydWN0b3JEZWZhdWx0KEVmZmVjdC5zdWNjZWVkKGZhbHNlKSksXG4gICksXG59KTtcbmV4cG9ydCB0eXBlIFVzZXJJbnB1dFF1ZXN0aW9uID0gdHlwZW9mIFVzZXJJbnB1dFF1ZXN0aW9uLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBVc2VySW5wdXRSZXF1ZXN0ZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIHF1ZXN0aW9uczogU2NoZW1hLkFycmF5KFVzZXJJbnB1dFF1ZXN0aW9uKSxcbiAgcmVzcG9uc2VNb2RlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkxpdGVyYWwoXCJtZXNzYWdlXCIpKSxcbn0pO1xuZXhwb3J0IHR5cGUgVXNlcklucHV0UmVxdWVzdGVkUGF5bG9hZCA9IHR5cGVvZiBVc2VySW5wdXRSZXF1ZXN0ZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFVzZXJJbnB1dFJlc29sdmVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBhbnN3ZXJzOiBVbmtub3duUmVjb3JkU2NoZW1hLFxufSk7XG5leHBvcnQgdHlwZSBVc2VySW5wdXRSZXNvbHZlZFBheWxvYWQgPSB0eXBlb2YgVXNlcklucHV0UmVzb2x2ZWRQYXlsb2FkLlR5cGU7XG5cbi8qKiBDbGF1ZGUgcmVwb3J0cyBhY3RpdmF0aW9uIGRlbHRhczsgQ29kZXggcmVwb3J0cyBjdW11bGF0aXZlIHRvdGFscy4gTWVyZ2UgcGVyIHByb3ZpZGVyIGluIGNsaWVudC1ydW50aW1lLiAqL1xuZXhwb3J0IGNvbnN0IFJ1bnRpbWVUYXNrVXNhZ2UgPSBTY2hlbWEuU3RydWN0KHtcbiAgdG90YWxUb2tlbnM6IE5vbk5lZ2F0aXZlSW50LFxuICBpbnB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgY2FjaGVkSW5wdXRUb2tlbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIG91dHB1dFRva2VuczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgcmVhc29uaW5nT3V0cHV0VG9rZW5zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICB0b29sVXNlczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgZHVyYXRpb25NczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbn0pO1xuZXhwb3J0IHR5cGUgUnVudGltZVRhc2tVc2FnZSA9IHR5cGVvZiBSdW50aW1lVGFza1VzYWdlLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBUYXNrV29ya2Zsb3dQaGFzZSA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpbmRleDogTm9uTmVnYXRpdmVJbnQsXG4gIHRpdGxlOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG59KTtcbmV4cG9ydCB0eXBlIFRhc2tXb3JrZmxvd1BoYXNlID0gdHlwZW9mIFRhc2tXb3JrZmxvd1BoYXNlLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBUYXNrUnVuSGFuZGxlcyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBydW5JZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHNjcmlwdFBhdGg6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICB0cmFuc2NyaXB0RGlyOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgLyoqIE9ubHkgaHR0cC9odHRwcyBVUkxzLCBzYW5pdGl6ZWQgYnkgdGhlIGFkYXB0ZXIuICovXG4gIHNlc3Npb25Vcmw6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxufSk7XG5leHBvcnQgdHlwZSBUYXNrUnVuSGFuZGxlcyA9IHR5cGVvZiBUYXNrUnVuSGFuZGxlcy5UeXBlO1xuXG4vLyBSZXBlYXQgb24gcHJvZ3Jlc3MgYW5kIHRlcm1pbmFsIHJvd3Mgc28gYWdlbnRzIHN1cnZpdmUgc3RhcnQtcm93IGV2aWN0aW9uLlxuY29uc3QgdGFza0FnZW50TGlua2FnZUZpZWxkcyA9IHtcbiAgdGFza1R5cGU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBhZ2VudEtpbmQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTGl0ZXJhbHMoW1wiYWdlbnRcIiwgXCJiYWNrZ3JvdW5kXCJdKSksXG4gIGFnZW50SWQ6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICB0aXRsZTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHJvbGU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBtb2RlbDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIGVmZm9ydDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHRvb2xVc2VJZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHBhcmVudEFnZW50SWQ6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICB3b3JrZmxvd05hbWU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBhZ2VudEluZGV4OiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBwaGFzZUluZGV4OiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBwaGFzZVRpdGxlOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgcGhhc2VzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFRhc2tXb3JrZmxvd1BoYXNlKSksXG4gIGF0dGVtcHQ6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIHJ1bkhhbmRsZXM6IFNjaGVtYS5vcHRpb25hbChUYXNrUnVuSGFuZGxlcyksXG4gIG91dHB1dEZpbGU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBhZ2VudFBhdGg6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICAvKiogUHJvdmlkZXItc3ludGhlc2l6ZWQgY2hpbGQgZXZlbnRzIGJlbG9uZyBpbiBBZ2VudHMsIG5ldmVyIHRoZSBwYXJlbnQgdGltZWxpbmUuICovXG4gIHRpbWVsaW5lQnlwYXNzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkJvb2xlYW4pLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFRhc2tBZ2VudExpbmthZ2UgPSBTY2hlbWEuU3RydWN0KHRhc2tBZ2VudExpbmthZ2VGaWVsZHMpO1xuZXhwb3J0IHR5cGUgVGFza0FnZW50TGlua2FnZSA9IHR5cGVvZiBUYXNrQWdlbnRMaW5rYWdlLlR5cGU7XG5cbmNvbnN0IFRhc2tTdGFydGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICB0YXNrSWQ6IFJ1bnRpbWVUYXNrSWQsXG4gIGRlc2NyaXB0aW9uOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgLi4udGFza0FnZW50TGlua2FnZUZpZWxkcyxcbn0pO1xuZXhwb3J0IHR5cGUgVGFza1N0YXJ0ZWRQYXlsb2FkID0gdHlwZW9mIFRhc2tTdGFydGVkUGF5bG9hZC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUnVudGltZVRhc2tTdGF0dXMgPSBTY2hlbWEuTGl0ZXJhbHMoW1xuICBcInBlbmRpbmdcIixcbiAgXCJydW5uaW5nXCIsXG4gIFwid2FpdGluZ1wiLFxuICBcImlkbGVcIixcbiAgXCJjb21wbGV0ZWRcIixcbiAgXCJmYWlsZWRcIixcbiAgXCJjYW5jZWxsZWRcIixcbiAgXCJpbnRlcnJ1cHRlZFwiLFxuXSk7XG5leHBvcnQgdHlwZSBSdW50aW1lVGFza1N0YXR1cyA9IHR5cGVvZiBSdW50aW1lVGFza1N0YXR1cy5UeXBlO1xuXG5jb25zdCBUYXNrUHJvZ3Jlc3NQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIHRhc2tJZDogUnVudGltZVRhc2tJZCxcbiAgZGVzY3JpcHRpb246IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgc3VtbWFyeTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHVzYWdlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlVua25vd24pLFxuICB0eXBlZFVzYWdlOiBTY2hlbWEub3B0aW9uYWwoUnVudGltZVRhc2tVc2FnZSksXG4gIGxhc3RUb29sTmFtZTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHN0YXR1czogU2NoZW1hLm9wdGlvbmFsKFJ1bnRpbWVUYXNrU3RhdHVzKSxcbiAgZXJyb3I6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICAuLi50YXNrQWdlbnRMaW5rYWdlRmllbGRzLFxufSk7XG5leHBvcnQgdHlwZSBUYXNrUHJvZ3Jlc3NQYXlsb2FkID0gdHlwZW9mIFRhc2tQcm9ncmVzc1BheWxvYWQuVHlwZTtcblxuY29uc3QgVGFza1VwZGF0ZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIHRhc2tJZDogUnVudGltZVRhc2tJZCxcbiAgc3RhdHVzOiBTY2hlbWEub3B0aW9uYWwoUnVudGltZVRhc2tTdGF0dXMpLFxuICBkZXNjcmlwdGlvbjogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIGVycm9yOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgZW5kZWRBdDogU2NoZW1hLm9wdGlvbmFsKElzb0RhdGVUaW1lKSxcbiAgaXNCYWNrZ3JvdW5kZWQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG4gIC4uLnRhc2tBZ2VudExpbmthZ2VGaWVsZHMsXG59KTtcbmV4cG9ydCB0eXBlIFRhc2tVcGRhdGVkUGF5bG9hZCA9IHR5cGVvZiBUYXNrVXBkYXRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgVGFza0NvbXBsZXRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgdGFza0lkOiBSdW50aW1lVGFza0lkLFxuICBzdGF0dXM6IFNjaGVtYS5MaXRlcmFscyhbXCJjb21wbGV0ZWRcIiwgXCJmYWlsZWRcIiwgXCJzdG9wcGVkXCJdKSxcbiAgc3VtbWFyeTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHVzYWdlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlVua25vd24pLFxuICB0eXBlZFVzYWdlOiBTY2hlbWEub3B0aW9uYWwoUnVudGltZVRhc2tVc2FnZSksXG4gIC4uLnRhc2tBZ2VudExpbmthZ2VGaWVsZHMsXG59KTtcbmV4cG9ydCB0eXBlIFRhc2tDb21wbGV0ZWRQYXlsb2FkID0gdHlwZW9mIFRhc2tDb21wbGV0ZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IEhvb2tTdGFydGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBob29rSWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgaG9va05hbWU6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgaG9va0V2ZW50OiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG59KTtcbmV4cG9ydCB0eXBlIEhvb2tTdGFydGVkUGF5bG9hZCA9IHR5cGVvZiBIb29rU3RhcnRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgSG9va1Byb2dyZXNzUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBob29rSWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgb3V0cHV0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlN0cmluZyksXG4gIHN0ZG91dDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5TdHJpbmcpLFxuICBzdGRlcnI6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuU3RyaW5nKSxcbn0pO1xuZXhwb3J0IHR5cGUgSG9va1Byb2dyZXNzUGF5bG9hZCA9IHR5cGVvZiBIb29rUHJvZ3Jlc3NQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IEhvb2tDb21wbGV0ZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIGhvb2tJZDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICBvdXRjb21lOiBTY2hlbWEuTGl0ZXJhbHMoW1wic3VjY2Vzc1wiLCBcImVycm9yXCIsIFwiY2FuY2VsbGVkXCJdKSxcbiAgb3V0cHV0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlN0cmluZyksXG4gIHN0ZG91dDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5TdHJpbmcpLFxuICBzdGRlcnI6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuU3RyaW5nKSxcbiAgZXhpdENvZGU6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuSW50KSxcbn0pO1xuZXhwb3J0IHR5cGUgSG9va0NvbXBsZXRlZFBheWxvYWQgPSB0eXBlb2YgSG9va0NvbXBsZXRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgVG9vbFByb2dyZXNzUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICB0b29sVXNlSWQ6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICB0b29sTmFtZTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHN1bW1hcnk6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBlbGFwc2VkU2Vjb25kczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5OdW1iZXIpLFxuICB0YXNrSWQ6IFNjaGVtYS5vcHRpb25hbChSdW50aW1lVGFza0lkKSxcbiAgcGFyZW50VG9vbFVzZUlkOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9vbFByb2dyZXNzUGF5bG9hZCA9IHR5cGVvZiBUb29sUHJvZ3Jlc3NQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFRvb2xTdW1tYXJ5UGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzdW1tYXJ5OiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG4gIHByZWNlZGluZ1Rvb2xVc2VJZHM6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQXJyYXkoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSksXG59KTtcbmV4cG9ydCB0eXBlIFRvb2xTdW1tYXJ5UGF5bG9hZCA9IHR5cGVvZiBUb29sU3VtbWFyeVBheWxvYWQuVHlwZTtcblxuY29uc3QgQXV0aFN0YXR1c1BheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgaXNBdXRoZW50aWNhdGluZzogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgb3V0cHV0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFNjaGVtYS5TdHJpbmcpKSxcbiAgZXJyb3I6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxufSk7XG5leHBvcnQgdHlwZSBBdXRoU3RhdHVzUGF5bG9hZCA9IHR5cGVvZiBBdXRoU3RhdHVzUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBBY2NvdW50VXBkYXRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgYWNjb3VudDogU2NoZW1hLlVua25vd24sXG59KTtcbmV4cG9ydCB0eXBlIEFjY291bnRVcGRhdGVkUGF5bG9hZCA9IHR5cGVvZiBBY2NvdW50VXBkYXRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgQWNjb3VudFJhdGVMaW1pdHNVcGRhdGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBsaW1pdHM6IFByb3ZpZGVyVXNhZ2VMaW1pdHNVcGRhdGUsXG59KTtcbmV4cG9ydCB0eXBlIEFjY291bnRSYXRlTGltaXRzVXBkYXRlZFBheWxvYWQgPSB0eXBlb2YgQWNjb3VudFJhdGVMaW1pdHNVcGRhdGVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBNY3BTdGF0dXNVcGRhdGVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzdGF0dXM6IFNjaGVtYS5Vbmtub3duLFxufSk7XG5leHBvcnQgdHlwZSBNY3BTdGF0dXNVcGRhdGVkUGF5bG9hZCA9IHR5cGVvZiBNY3BTdGF0dXNVcGRhdGVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBNY3BPYXV0aENvbXBsZXRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgc3VjY2VzczogU2NoZW1hLkJvb2xlYW4sXG4gIG5hbWU6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBlcnJvcjogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG59KTtcbmV4cG9ydCB0eXBlIE1jcE9hdXRoQ29tcGxldGVkUGF5bG9hZCA9IHR5cGVvZiBNY3BPYXV0aENvbXBsZXRlZFBheWxvYWQuVHlwZTtcblxuY29uc3QgTW9kZWxSZXJvdXRlZFBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgZnJvbU1vZGVsOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG4gIHRvTW9kZWw6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgcmVhc29uOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG59KTtcbmV4cG9ydCB0eXBlIE1vZGVsUmVyb3V0ZWRQYXlsb2FkID0gdHlwZW9mIE1vZGVsUmVyb3V0ZWRQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IENvbmZpZ1dhcm5pbmdQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIHN1bW1hcnk6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgZGV0YWlsczogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG4gIHBhdGg6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICByYW5nZTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Vbmtub3duKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ29uZmlnV2FybmluZ1BheWxvYWQgPSB0eXBlb2YgQ29uZmlnV2FybmluZ1BheWxvYWQuVHlwZTtcblxuY29uc3QgRGVwcmVjYXRpb25Ob3RpY2VQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIHN1bW1hcnk6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgZGV0YWlsczogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSksXG59KTtcbmV4cG9ydCB0eXBlIERlcHJlY2F0aW9uTm90aWNlUGF5bG9hZCA9IHR5cGVvZiBEZXByZWNhdGlvbk5vdGljZVBheWxvYWQuVHlwZTtcblxuY29uc3QgRmlsZXNQZXJzaXN0ZWRQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIGZpbGVzOiBTY2hlbWEuQXJyYXkoXG4gICAgU2NoZW1hLlN0cnVjdCh7XG4gICAgICBmaWxlbmFtZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICAgICAgZmlsZUlkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEsXG4gICAgfSksXG4gICksXG4gIGZhaWxlZDogU2NoZW1hLm9wdGlvbmFsKFxuICAgIFNjaGVtYS5BcnJheShcbiAgICAgIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgICAgICBmaWxlbmFtZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICAgICAgICBlcnJvcjogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICAgICAgfSksXG4gICAgKSxcbiAgKSxcbn0pO1xuZXhwb3J0IHR5cGUgRmlsZXNQZXJzaXN0ZWRQYXlsb2FkID0gdHlwZW9mIEZpbGVzUGVyc2lzdGVkUGF5bG9hZC5UeXBlO1xuXG5jb25zdCBUb29sRGVuaWVkUGF5bG9hZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICB0b29sTmFtZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICB0b29sVXNlSWQ6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICByZWFzb246IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmdTY2hlbWEpLFxuICBhZ2VudElkOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9vbERlbmllZFBheWxvYWQgPSB0eXBlb2YgVG9vbERlbmllZFBheWxvYWQuVHlwZTtcblxuY29uc3QgUnVudGltZVdhcm5pbmdQYXlsb2FkID0gU2NoZW1hLlN0cnVjdCh7XG4gIG1lc3NhZ2U6IFRyaW1tZWROb25FbXB0eVN0cmluZ1NjaGVtYSxcbiAgZGV0YWlsOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlVua25vd24pLFxufSk7XG5leHBvcnQgdHlwZSBSdW50aW1lV2FybmluZ1BheWxvYWQgPSB0eXBlb2YgUnVudGltZVdhcm5pbmdQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFJ1bnRpbWVFcnJvclBheWxvYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgbWVzc2FnZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hLFxuICBjb2RlOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nU2NoZW1hKSxcbiAgY2xhc3M6IFNjaGVtYS5vcHRpb25hbChSdW50aW1lRXJyb3JDbGFzcyksXG4gIGRldGFpbDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Vbmtub3duKSxcbn0pO1xuZXhwb3J0IHR5cGUgUnVudGltZUVycm9yUGF5bG9hZCA9IHR5cGVvZiBSdW50aW1lRXJyb3JQYXlsb2FkLlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVNlc3Npb25TdGFydGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogU2Vzc2lvblN0YXJ0ZWRUeXBlLFxuICBwYXlsb2FkOiBTZXNzaW9uU3RhcnRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVNlc3Npb25TdGFydGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lU2Vzc2lvblN0YXJ0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVTZXNzaW9uQ29uZmlndXJlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFNlc3Npb25Db25maWd1cmVkVHlwZSxcbiAgcGF5bG9hZDogU2Vzc2lvbkNvbmZpZ3VyZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVTZXNzaW9uQ29uZmlndXJlZEV2ZW50ID1cbiAgdHlwZW9mIFByb3ZpZGVyUnVudGltZVNlc3Npb25Db25maWd1cmVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lU2Vzc2lvblN0YXRlQ2hhbmdlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFNlc3Npb25TdGF0ZUNoYW5nZWRUeXBlLFxuICBwYXlsb2FkOiBTZXNzaW9uU3RhdGVDaGFuZ2VkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lU2Vzc2lvblN0YXRlQ2hhbmdlZEV2ZW50ID1cbiAgdHlwZW9mIFByb3ZpZGVyUnVudGltZVNlc3Npb25TdGF0ZUNoYW5nZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVTZXNzaW9uRXhpdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogU2Vzc2lvbkV4aXRlZFR5cGUsXG4gIHBheWxvYWQ6IFNlc3Npb25FeGl0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVTZXNzaW9uRXhpdGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lU2Vzc2lvbkV4aXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRocmVhZFN0YXJ0ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBUaHJlYWRTdGFydGVkVHlwZSxcbiAgcGF5bG9hZDogVGhyZWFkU3RhcnRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRocmVhZFN0YXJ0ZWRFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVUaHJlYWRTdGFydGVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVGhyZWFkU3RhdGVDaGFuZ2VkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGhyZWFkU3RhdGVDaGFuZ2VkVHlwZSxcbiAgcGF5bG9hZDogVGhyZWFkU3RhdGVDaGFuZ2VkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVGhyZWFkU3RhdGVDaGFuZ2VkRXZlbnQgPVxuICB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGhyZWFkU3RhdGVDaGFuZ2VkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVGhyZWFkTWV0YWRhdGFVcGRhdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGhyZWFkTWV0YWRhdGFVcGRhdGVkVHlwZSxcbiAgcGF5bG9hZDogVGhyZWFkTWV0YWRhdGFVcGRhdGVkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVGhyZWFkTWV0YWRhdGFVcGRhdGVkRXZlbnQgPVxuICB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGhyZWFkTWV0YWRhdGFVcGRhdGVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVGhyZWFkVG9rZW5Vc2FnZVVwZGF0ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBUaHJlYWRUb2tlblVzYWdlVXBkYXRlZFR5cGUsXG4gIHBheWxvYWQ6IFRocmVhZFRva2VuVXNhZ2VVcGRhdGVkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVGhyZWFkVG9rZW5Vc2FnZVVwZGF0ZWRFdmVudCA9XG4gIHR5cGVvZiBQcm92aWRlclJ1bnRpbWVUaHJlYWRUb2tlblVzYWdlVXBkYXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lU3RhcnRlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFRocmVhZFJlYWx0aW1lU3RhcnRlZFR5cGUsXG4gIHBheWxvYWQ6IFRocmVhZFJlYWx0aW1lU3RhcnRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lU3RhcnRlZEV2ZW50ID1cbiAgdHlwZW9mIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lU3RhcnRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lSXRlbUFkZGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGhyZWFkUmVhbHRpbWVJdGVtQWRkZWRUeXBlLFxuICBwYXlsb2FkOiBUaHJlYWRSZWFsdGltZUl0ZW1BZGRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lSXRlbUFkZGVkRXZlbnQgPVxuICB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGhyZWFkUmVhbHRpbWVJdGVtQWRkZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFUeXBlLFxuICBwYXlsb2FkOiBUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFFdmVudCA9XG4gIHR5cGVvZiBQcm92aWRlclJ1bnRpbWVUaHJlYWRSZWFsdGltZUF1ZGlvRGVsdGFFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVUaHJlYWRSZWFsdGltZUVycm9yRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGhyZWFkUmVhbHRpbWVFcnJvclR5cGUsXG4gIHBheWxvYWQ6IFRocmVhZFJlYWx0aW1lRXJyb3JQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVUaHJlYWRSZWFsdGltZUVycm9yRXZlbnQgPVxuICB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGhyZWFkUmVhbHRpbWVFcnJvckV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lQ2xvc2VkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGhyZWFkUmVhbHRpbWVDbG9zZWRUeXBlLFxuICBwYXlsb2FkOiBUaHJlYWRSZWFsdGltZUNsb3NlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lQ2xvc2VkRXZlbnQgPVxuICB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGhyZWFkUmVhbHRpbWVDbG9zZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVUdXJuU3RhcnRlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFR1cm5TdGFydGVkVHlwZSxcbiAgcGF5bG9hZDogVHVyblN0YXJ0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVUdXJuU3RhcnRlZEV2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVR1cm5TdGFydGVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVHVybkNvbXBsZXRlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFR1cm5Db21wbGV0ZWRUeXBlLFxuICBwYXlsb2FkOiBUdXJuQ29tcGxldGVkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVHVybkNvbXBsZXRlZEV2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVR1cm5Db21wbGV0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVUdXJuQWJvcnRlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFR1cm5BYm9ydGVkVHlwZSxcbiAgcGF5bG9hZDogVHVybkFib3J0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVUdXJuQWJvcnRlZEV2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVR1cm5BYm9ydGVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVHVyblBsYW5VcGRhdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVHVyblBsYW5VcGRhdGVkVHlwZSxcbiAgcGF5bG9hZDogVHVyblBsYW5VcGRhdGVkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVHVyblBsYW5VcGRhdGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVHVyblBsYW5VcGRhdGVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVHVyblByb3Bvc2VkRGVsdGFFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBUdXJuUHJvcG9zZWREZWx0YVR5cGUsXG4gIHBheWxvYWQ6IFR1cm5Qcm9wb3NlZERlbHRhUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVHVyblByb3Bvc2VkRGVsdGFFdmVudCA9XG4gIHR5cGVvZiBQcm92aWRlclJ1bnRpbWVUdXJuUHJvcG9zZWREZWx0YUV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVR1cm5Qcm9wb3NlZENvbXBsZXRlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFR1cm5Qcm9wb3NlZENvbXBsZXRlZFR5cGUsXG4gIHBheWxvYWQ6IFR1cm5Qcm9wb3NlZENvbXBsZXRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVR1cm5Qcm9wb3NlZENvbXBsZXRlZEV2ZW50ID1cbiAgdHlwZW9mIFByb3ZpZGVyUnVudGltZVR1cm5Qcm9wb3NlZENvbXBsZXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVR1cm5EaWZmVXBkYXRlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFR1cm5EaWZmVXBkYXRlZFR5cGUsXG4gIHBheWxvYWQ6IFR1cm5EaWZmVXBkYXRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVR1cm5EaWZmVXBkYXRlZEV2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVR1cm5EaWZmVXBkYXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUl0ZW1TdGFydGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogSXRlbVN0YXJ0ZWRUeXBlLFxuICBwYXlsb2FkOiBJdGVtTGlmZWN5Y2xlUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lSXRlbVN0YXJ0ZWRFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVJdGVtU3RhcnRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUl0ZW1VcGRhdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogSXRlbVVwZGF0ZWRUeXBlLFxuICBwYXlsb2FkOiBJdGVtTGlmZWN5Y2xlUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lSXRlbVVwZGF0ZWRFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVJdGVtVXBkYXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUl0ZW1Db21wbGV0ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBJdGVtQ29tcGxldGVkVHlwZSxcbiAgcGF5bG9hZDogSXRlbUxpZmVjeWNsZVBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUl0ZW1Db21wbGV0ZWRFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVJdGVtQ29tcGxldGVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lQ29udGVudERlbHRhRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogQ29udGVudERlbHRhVHlwZSxcbiAgcGF5bG9hZDogQ29udGVudERlbHRhUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lQ29udGVudERlbHRhRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lQ29udGVudERlbHRhRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lUmVxdWVzdE9wZW5lZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFJlcXVlc3RPcGVuZWRUeXBlLFxuICBwYXlsb2FkOiBSZXF1ZXN0T3BlbmVkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lUmVxdWVzdE9wZW5lZEV2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVJlcXVlc3RPcGVuZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVSZXF1ZXN0UmVzb2x2ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBSZXF1ZXN0UmVzb2x2ZWRUeXBlLFxuICBwYXlsb2FkOiBSZXF1ZXN0UmVzb2x2ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVSZXF1ZXN0UmVzb2x2ZWRFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVSZXF1ZXN0UmVzb2x2ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVVc2VySW5wdXRSZXF1ZXN0ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBVc2VySW5wdXRSZXF1ZXN0ZWRUeXBlLFxuICBwYXlsb2FkOiBVc2VySW5wdXRSZXF1ZXN0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVVc2VySW5wdXRSZXF1ZXN0ZWRFdmVudCA9XG4gIHR5cGVvZiBQcm92aWRlclJ1bnRpbWVVc2VySW5wdXRSZXF1ZXN0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVVc2VySW5wdXRSZXNvbHZlZEV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFVzZXJJbnB1dFJlc29sdmVkVHlwZSxcbiAgcGF5bG9hZDogVXNlcklucHV0UmVzb2x2ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVVc2VySW5wdXRSZXNvbHZlZEV2ZW50ID1cbiAgdHlwZW9mIFByb3ZpZGVyUnVudGltZVVzZXJJbnB1dFJlc29sdmVkRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lVGFza1N0YXJ0ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBUYXNrU3RhcnRlZFR5cGUsXG4gIHBheWxvYWQ6IFRhc2tTdGFydGVkUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lVGFza1N0YXJ0ZWRFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVUYXNrU3RhcnRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRhc2tQcm9ncmVzc0V2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFRhc2tQcm9ncmVzc1R5cGUsXG4gIHBheWxvYWQ6IFRhc2tQcm9ncmVzc1BheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRhc2tQcm9ncmVzc0V2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVRhc2tQcm9ncmVzc0V2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRhc2tVcGRhdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGFza1VwZGF0ZWRUeXBlLFxuICBwYXlsb2FkOiBUYXNrVXBkYXRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRhc2tVcGRhdGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGFza1VwZGF0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVUYXNrQ29tcGxldGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVGFza0NvbXBsZXRlZFR5cGUsXG4gIHBheWxvYWQ6IFRhc2tDb21wbGV0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVUYXNrQ29tcGxldGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVGFza0NvbXBsZXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUhvb2tTdGFydGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogSG9va1N0YXJ0ZWRUeXBlLFxuICBwYXlsb2FkOiBIb29rU3RhcnRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUhvb2tTdGFydGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lSG9va1N0YXJ0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVIb29rUHJvZ3Jlc3NFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBIb29rUHJvZ3Jlc3NUeXBlLFxuICBwYXlsb2FkOiBIb29rUHJvZ3Jlc3NQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVIb29rUHJvZ3Jlc3NFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVIb29rUHJvZ3Jlc3NFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVIb29rQ29tcGxldGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogSG9va0NvbXBsZXRlZFR5cGUsXG4gIHBheWxvYWQ6IEhvb2tDb21wbGV0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVIb29rQ29tcGxldGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lSG9va0NvbXBsZXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRvb2xQcm9ncmVzc0V2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFRvb2xQcm9ncmVzc1R5cGUsXG4gIHBheWxvYWQ6IFRvb2xQcm9ncmVzc1BheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRvb2xQcm9ncmVzc0V2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVRvb2xQcm9ncmVzc0V2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVRvb2xTdW1tYXJ5RXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVG9vbFN1bW1hcnlUeXBlLFxuICBwYXlsb2FkOiBUb29sU3VtbWFyeVBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVRvb2xTdW1tYXJ5RXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVG9vbFN1bW1hcnlFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVBdXRoU3RhdHVzRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogQXV0aFN0YXR1c1R5cGUsXG4gIHBheWxvYWQ6IEF1dGhTdGF0dXNQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVBdXRoU3RhdHVzRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lQXV0aFN0YXR1c0V2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUFjY291bnRVcGRhdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogQWNjb3VudFVwZGF0ZWRUeXBlLFxuICBwYXlsb2FkOiBBY2NvdW50VXBkYXRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUFjY291bnRVcGRhdGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lQWNjb3VudFVwZGF0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVBY2NvdW50UmF0ZUxpbWl0c1VwZGF0ZWRFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBBY2NvdW50UmF0ZUxpbWl0c1VwZGF0ZWRUeXBlLFxuICBwYXlsb2FkOiBBY2NvdW50UmF0ZUxpbWl0c1VwZGF0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVBY2NvdW50UmF0ZUxpbWl0c1VwZGF0ZWRFdmVudCA9XG4gIHR5cGVvZiBQcm92aWRlclJ1bnRpbWVBY2NvdW50UmF0ZUxpbWl0c1VwZGF0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVNY3BTdGF0dXNVcGRhdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogTWNwU3RhdHVzVXBkYXRlZFR5cGUsXG4gIHBheWxvYWQ6IE1jcFN0YXR1c1VwZGF0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVNY3BTdGF0dXNVcGRhdGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lTWNwU3RhdHVzVXBkYXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZU1jcE9hdXRoQ29tcGxldGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogTWNwT2F1dGhDb21wbGV0ZWRUeXBlLFxuICBwYXlsb2FkOiBNY3BPYXV0aENvbXBsZXRlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZU1jcE9hdXRoQ29tcGxldGVkRXZlbnQgPVxuICB0eXBlb2YgUHJvdmlkZXJSdW50aW1lTWNwT2F1dGhDb21wbGV0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVNb2RlbFJlcm91dGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogTW9kZWxSZXJvdXRlZFR5cGUsXG4gIHBheWxvYWQ6IE1vZGVsUmVyb3V0ZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVNb2RlbFJlcm91dGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lTW9kZWxSZXJvdXRlZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUNvbmZpZ1dhcm5pbmdFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBDb25maWdXYXJuaW5nVHlwZSxcbiAgcGF5bG9hZDogQ29uZmlnV2FybmluZ1BheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUNvbmZpZ1dhcm5pbmdFdmVudCA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVDb25maWdXYXJuaW5nRXZlbnQuVHlwZTtcblxuY29uc3QgUHJvdmlkZXJSdW50aW1lRGVwcmVjYXRpb25Ob3RpY2VFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBEZXByZWNhdGlvbk5vdGljZVR5cGUsXG4gIHBheWxvYWQ6IERlcHJlY2F0aW9uTm90aWNlUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lRGVwcmVjYXRpb25Ob3RpY2VFdmVudCA9XG4gIHR5cGVvZiBQcm92aWRlclJ1bnRpbWVEZXByZWNhdGlvbk5vdGljZUV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZUZpbGVzUGVyc2lzdGVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogRmlsZXNQZXJzaXN0ZWRUeXBlLFxuICBwYXlsb2FkOiBGaWxlc1BlcnNpc3RlZFBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUZpbGVzUGVyc2lzdGVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lRmlsZXNQZXJzaXN0ZWRFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVUb29sRGVuaWVkRXZlbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHJvdmlkZXJSdW50aW1lRXZlbnRCYXNlLmZpZWxkcyxcbiAgdHlwZTogVG9vbERlbmllZFR5cGUsXG4gIHBheWxvYWQ6IFRvb2xEZW5pZWRQYXlsb2FkLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVUb29sRGVuaWVkRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lVG9vbERlbmllZEV2ZW50LlR5cGU7XG5cbmNvbnN0IFByb3ZpZGVyUnVudGltZVdhcm5pbmdFdmVudCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5Qcm92aWRlclJ1bnRpbWVFdmVudEJhc2UuZmllbGRzLFxuICB0eXBlOiBSdW50aW1lV2FybmluZ1R5cGUsXG4gIHBheWxvYWQ6IFJ1bnRpbWVXYXJuaW5nUGF5bG9hZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lV2FybmluZ0V2ZW50ID0gdHlwZW9mIFByb3ZpZGVyUnVudGltZVdhcm5pbmdFdmVudC5UeXBlO1xuXG5jb25zdCBQcm92aWRlclJ1bnRpbWVFcnJvckV2ZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlByb3ZpZGVyUnVudGltZUV2ZW50QmFzZS5maWVsZHMsXG4gIHR5cGU6IFJ1bnRpbWVFcnJvclR5cGUsXG4gIHBheWxvYWQ6IFJ1bnRpbWVFcnJvclBheWxvYWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZUVycm9yRXZlbnQgPSB0eXBlb2YgUHJvdmlkZXJSdW50aW1lRXJyb3JFdmVudC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHJvdmlkZXJSdW50aW1lRXZlbnRWMiA9IFNjaGVtYS5VbmlvbihbXG4gIFByb3ZpZGVyUnVudGltZVNlc3Npb25TdGFydGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVNlc3Npb25Db25maWd1cmVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVNlc3Npb25TdGF0ZUNoYW5nZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lU2Vzc2lvbkV4aXRlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUaHJlYWRTdGFydGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRocmVhZFN0YXRlQ2hhbmdlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUaHJlYWRNZXRhZGF0YVVwZGF0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lVGhyZWFkVG9rZW5Vc2FnZVVwZGF0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lVGhyZWFkUmVhbHRpbWVTdGFydGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lSXRlbUFkZGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lQXVkaW9EZWx0YUV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUaHJlYWRSZWFsdGltZUVycm9yRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRocmVhZFJlYWx0aW1lQ2xvc2VkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVR1cm5TdGFydGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVR1cm5Db21wbGV0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lVHVybkFib3J0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lVHVyblBsYW5VcGRhdGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVR1cm5Qcm9wb3NlZERlbHRhRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVR1cm5Qcm9wb3NlZENvbXBsZXRlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUdXJuRGlmZlVwZGF0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lSXRlbVN0YXJ0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lSXRlbVVwZGF0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lSXRlbUNvbXBsZXRlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVDb250ZW50RGVsdGFFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lUmVxdWVzdE9wZW5lZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVSZXF1ZXN0UmVzb2x2ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lVXNlcklucHV0UmVxdWVzdGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVVzZXJJbnB1dFJlc29sdmVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRhc2tTdGFydGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRhc2tQcm9ncmVzc0V2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUYXNrVXBkYXRlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUYXNrQ29tcGxldGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZUhvb2tTdGFydGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZUhvb2tQcm9ncmVzc0V2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVIb29rQ29tcGxldGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVRvb2xQcm9ncmVzc0V2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUb29sU3VtbWFyeUV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVBdXRoU3RhdHVzRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZUFjY291bnRVcGRhdGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZUFjY291bnRSYXRlTGltaXRzVXBkYXRlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVNY3BTdGF0dXNVcGRhdGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZU1jcE9hdXRoQ29tcGxldGVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZU1vZGVsUmVyb3V0ZWRFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lQ29uZmlnV2FybmluZ0V2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVEZXByZWNhdGlvbk5vdGljZUV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVGaWxlc1BlcnNpc3RlZEV2ZW50LFxuICBQcm92aWRlclJ1bnRpbWVUb29sRGVuaWVkRXZlbnQsXG4gIFByb3ZpZGVyUnVudGltZVdhcm5pbmdFdmVudCxcbiAgUHJvdmlkZXJSdW50aW1lRXJyb3JFdmVudCxcbl0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJSdW50aW1lRXZlbnRWMiA9IHR5cGVvZiBQcm92aWRlclJ1bnRpbWVFdmVudFYyLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQcm92aWRlclJ1bnRpbWVFdmVudCA9IFByb3ZpZGVyUnVudGltZUV2ZW50VjI7XG5leHBvcnQgdHlwZSBQcm92aWRlclJ1bnRpbWVFdmVudCA9IFByb3ZpZGVyUnVudGltZUV2ZW50VjI7XG5cbmV4cG9ydCBjb25zdCBQcm92aWRlclJ1bnRpbWVUdXJuU3RhdHVzID0gUnVudGltZVR1cm5TdGF0ZTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyUnVudGltZVR1cm5TdGF0dXMgPSBSdW50aW1lVHVyblN0YXRlO1xuIl0sImZpbGUiOiIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL3BhY2thZ2VzL2NvbnRyYWN0cy9zcmMvcHJvdmlkZXJSdW50aW1lLnRzIn0=

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wcm92aWRlclJ1bnRpbWUudHMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL3BhY2thZ2VzL2NvbnRyYWN0cy9zcmMvcHJvdmlkZXJSdW50aW1lLnRzIix7InVybHMiOiI2IiwiaWRzIjoiNyJ9LFsiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyJdLFtdLFsiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyJdLHt9LCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L0VmZmVjdC5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvU2NoZW1hLmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL2Jhc2VTY2hlbWFzLnRzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL3Byb3ZpZGVySW5zdGFuY2UudHMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL3BhY2thZ2VzL2NvbnRyYWN0cy9zcmMvcHJvdmlkZXJVc2FnZUxpbWl0cy50cyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wcm92aWRlclBvbGljeS50cyJd