import { type ZodFor } from '@aztec/foundation/schemas'; import type { FieldsOf } from '@aztec/foundation/types'; import { z } from 'zod'; import { type ContractArtifact } from '../abi/abi.js'; import { type ContractInstanceWithAddress } from '../contract/interfaces/contract_instance.js'; import type { GasUsed } from '../gas/gas_used.js'; import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js'; import type { OffchainEffect } from './offchain_effect.js'; import { PrivateExecutionResult } from './private_execution_result.js'; import { type SimulationStats } from './profiling.js'; import { NestedProcessReturnValues, PublicSimulationOutput } from './public_simulation_output.js'; import { Tx } from './tx.js'; export type ContractOverrides = Record; export declare class SimulationOverrides { contracts?: ContractOverrides; constructor(contracts?: ContractOverrides); static get schema(): z.ZodEffects; salt: ZodFor; deployer: ZodFor; currentContractClassId: ZodFor; originalContractClassId: ZodFor; initializationHash: ZodFor; publicKeys: z.ZodEffects; masterIncomingViewingPublicKey: z.ZodType; masterOutgoingViewingPublicKey: z.ZodType; masterTaggingPublicKey: z.ZodType; }, "strip", z.ZodTypeAny, { masterNullifierPublicKey: import("@aztec/foundation/schemas").Point; masterIncomingViewingPublicKey: import("@aztec/foundation/schemas").Point; masterOutgoingViewingPublicKey: import("@aztec/foundation/schemas").Point; masterTaggingPublicKey: import("@aztec/foundation/schemas").Point; }, { masterNullifierPublicKey: string; masterIncomingViewingPublicKey: string; masterOutgoingViewingPublicKey: string; masterTaggingPublicKey: string; }>, import("../keys/public_keys.js").PublicKeys, { masterNullifierPublicKey: string; masterIncomingViewingPublicKey: string; masterOutgoingViewingPublicKey: string; masterTaggingPublicKey: string; }>; }, "strip", z.ZodTypeAny, { version: 1; salt: import("@aztec/foundation/schemas").Fr; deployer: import("../aztec-address/index.js").AztecAddress; currentContractClassId: import("@aztec/foundation/schemas").Fr; originalContractClassId: import("@aztec/foundation/schemas").Fr; initializationHash: import("@aztec/foundation/schemas").Fr; publicKeys: import("../keys/public_keys.js").PublicKeys; }, { version: 1; salt?: any; deployer?: any; currentContractClassId?: any; originalContractClassId?: any; initializationHash?: any; publicKeys: { masterNullifierPublicKey: string; masterIncomingViewingPublicKey: string; masterOutgoingViewingPublicKey: string; masterTaggingPublicKey: string; }; }>, z.ZodObject<{ address: ZodFor; }, "strip", z.ZodTypeAny, { address: import("../aztec-address/index.js").AztecAddress; }, { address?: any; }>>; artifact: z.ZodObject<{ name: z.ZodString; aztecVersion: z.ZodDefault; functions: z.ZodArray; isOnlySelf: z.ZodBoolean; isStatic: z.ZodBoolean; isInitializer: z.ZodBoolean; parameters: z.ZodArray; visibility: z.ZodEnum<["public", "private", "databus"]>; }, "strip", z.ZodTypeAny, { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }, { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }>, "many">; returnTypes: z.ZodArray, "many">; errorTypes: z.ZodRecord; string: z.ZodString; }, "strip", z.ZodTypeAny, { error_kind: "string"; string: string; }, { error_kind: "string"; string: string; }>, z.ZodObject<{ error_kind: z.ZodLiteral<"fmtstring">; length: z.ZodNumber; item_types: z.ZodArray, "many">; }, "strip", z.ZodTypeAny, { error_kind: "fmtstring"; length: number; item_types: import("../abi/abi.js").AbiType[]; }, { error_kind: "fmtstring"; length: number; item_types: import("../abi/abi.js").AbiType[]; }>, z.ZodIntersection; }, "strip", z.ZodTypeAny, { error_kind: "custom"; }, { error_kind: "custom"; }>, z.ZodType>]>>>; }, "strip", z.ZodTypeAny, { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }, { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }>, z.ZodObject<{ bytecode: ZodFor>; verificationKey: z.ZodOptional; debugSymbols: z.ZodString; debug: z.ZodOptional; value: z.ZodObject<{ span: z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; }, "strip", z.ZodTypeAny, { start: number; end: number; }, { start: number; end: number; }>; file: z.ZodNumber; }, "strip", z.ZodTypeAny, { span: { start: number; end: number; }; file: number; }, { span: { start: number; end: number; }; file: number; }>; }, "strip", z.ZodTypeAny, { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }, { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }>, "many">; }, "strip", z.ZodTypeAny, { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }, { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }>; acir_locations: z.ZodRecord; brillig_locations: z.ZodRecord>; }, "strip", z.ZodTypeAny, { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }, { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }>; files: z.ZodType; }, "strip", z.ZodTypeAny, { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; }, { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; }>>; }, "strip", z.ZodTypeAny, { bytecode: Buffer; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; }, { bytecode?: any; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; }>>, "many">; nonDispatchPublicFunctions: z.ZodArray; isOnlySelf: z.ZodBoolean; isStatic: z.ZodBoolean; isInitializer: z.ZodBoolean; parameters: z.ZodArray; visibility: z.ZodEnum<["public", "private", "databus"]>; }, "strip", z.ZodTypeAny, { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }, { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }>, "many">; returnTypes: z.ZodArray, "many">; errorTypes: z.ZodRecord; string: z.ZodString; }, "strip", z.ZodTypeAny, { error_kind: "string"; string: string; }, { error_kind: "string"; string: string; }>, z.ZodObject<{ error_kind: z.ZodLiteral<"fmtstring">; length: z.ZodNumber; item_types: z.ZodArray, "many">; }, "strip", z.ZodTypeAny, { error_kind: "fmtstring"; length: number; item_types: import("../abi/abi.js").AbiType[]; }, { error_kind: "fmtstring"; length: number; item_types: import("../abi/abi.js").AbiType[]; }>, z.ZodIntersection; }, "strip", z.ZodTypeAny, { error_kind: "custom"; }, { error_kind: "custom"; }>, z.ZodType>]>>>; }, "strip", z.ZodTypeAny, { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }, { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }>, "many">; outputs: z.ZodObject<{ structs: z.ZodEffects, "many">>, Record, Record>; globals: z.ZodRecord, "many">>; }, "strip", z.ZodTypeAny, { structs: Record; globals: Record; }, { structs: Record; globals: Record; }>; storageLayout: z.ZodRecord; }, "strip", z.ZodTypeAny, { slot: import("@aztec/foundation/schemas").Fr; }, { slot: string; }>>; fileMap: z.ZodEffects, "many">; }, "strip", z.ZodTypeAny, { source: string; path: string; function_locations: { start: number; name: string; }[]; }, { source: string; path: string; function_locations: { start: number; name: string; }[]; }>>, Record, unknown>; }, "strip", z.ZodTypeAny, { name: string; aztecVersion: string; functions: ({ name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; } & { bytecode: Buffer; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap: Record; }, { name: string; aztecVersion?: string | undefined; functions: ({ name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; } & { bytecode?: any; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap?: unknown; }>; }, "strip", z.ZodTypeAny, { instance: { version: 1; salt: import("@aztec/foundation/schemas").Fr; deployer: import("../aztec-address/index.js").AztecAddress; currentContractClassId: import("@aztec/foundation/schemas").Fr; originalContractClassId: import("@aztec/foundation/schemas").Fr; initializationHash: import("@aztec/foundation/schemas").Fr; publicKeys: import("../keys/public_keys.js").PublicKeys; } & { address: import("../aztec-address/index.js").AztecAddress; }; artifact: { name: string; aztecVersion: string; functions: ({ name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; } & { bytecode: Buffer; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap: Record; }; }, { instance: { version: 1; salt?: any; deployer?: any; currentContractClassId?: any; originalContractClassId?: any; initializationHash?: any; publicKeys: { masterNullifierPublicKey: string; masterIncomingViewingPublicKey: string; masterOutgoingViewingPublicKey: string; masterTaggingPublicKey: string; }; } & { address?: any; }; artifact: { name: string; aztecVersion?: string | undefined; functions: ({ name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; } & { bytecode?: any; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap?: unknown; }; }>>>; }, "strip", z.ZodTypeAny, { contracts?: Record; } & { bytecode: Buffer; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap: Record; }; }> | undefined; }, { contracts?: Record; } & { bytecode?: any; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap?: unknown; }; }> | undefined; }>, SimulationOverrides, { contracts?: Record; } & { bytecode?: any; verificationKey?: string | undefined; debugSymbols: string; debug?: { debugSymbols: { location_tree: { locations: { parent: number | null; value: { span: { start: number; end: number; }; file: number; }; }[]; }; acir_locations: Record; brillig_locations: Record>; }; files: import("../abi/abi.js").DebugFileMap; } | undefined; })[]; nonDispatchPublicFunctions: { name: string; functionType: import("../abi/abi.js").FunctionType; isOnlySelf: boolean; isStatic: boolean; isInitializer: boolean; parameters: { name: string; type: import("../abi/abi.js").AbiType; visibility: "databus" | "private" | "public"; }[]; returnTypes: import("../abi/abi.js").AbiType[]; errorTypes: Record; }[]; outputs: { structs: Record; globals: Record; }; storageLayout: Record; fileMap?: unknown; }; }> | undefined; }>; } export declare class PrivateSimulationResult { privateExecutionResult: PrivateExecutionResult; publicInputs: PrivateKernelTailCircuitPublicInputs; constructor(privateExecutionResult: PrivateExecutionResult, publicInputs: PrivateKernelTailCircuitPublicInputs); getPrivateReturnValues(): NestedProcessReturnValues; toSimulatedTx(): Promise; } export declare class TxSimulationResult { privateExecutionResult: PrivateExecutionResult; publicInputs: PrivateKernelTailCircuitPublicInputs; publicOutput?: PublicSimulationOutput | undefined; stats?: SimulationStats | undefined; constructor(privateExecutionResult: PrivateExecutionResult, publicInputs: PrivateKernelTailCircuitPublicInputs, publicOutput?: PublicSimulationOutput | undefined, stats?: SimulationStats | undefined); /** Returns offchain effects collected from private execution. */ get offchainEffects(): OffchainEffect[]; get gasUsed(): GasUsed; static get schema(): ZodFor; static from(fields: Omit, 'gasUsed' | 'offchainEffects'>): TxSimulationResult; static fromPrivateSimulationResultAndPublicOutput(privateSimulationResult: PrivateSimulationResult, publicOutput?: PublicSimulationOutput, stats?: SimulationStats): TxSimulationResult; static random(): Promise; getPrivateReturnValues(): NestedProcessReturnValues; toSimulatedTx(): Promise; getPublicReturnValues(): NestedProcessReturnValues[]; } /** * Recursively accumulate the return values of a call result and its nested executions, * so they can be retrieved in order. * @param executionResult * @returns */ export declare function accumulatePrivateReturnValues(executionResult: PrivateExecutionResult): NestedProcessReturnValues; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGVkX3R4LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvc2ltdWxhdGVkX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFDTCxLQUFLLDJCQUEyQixFQUVqQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFFTCxzQkFBc0IsRUFHdkIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU83QixNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUNwQyxNQUFNLEVBQ047SUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUM7SUFBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUE7Q0FBRSxDQUN0RSxDQUFDO0FBTUYscUJBQWEsbUJBQW1CO0lBQ3ZCLFNBQVMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDO0lBRXJDLFlBQVksU0FBUyxHQUFFLGlCQUFzQixFQUU1QztJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7Q0FDRjtBQUVELHFCQUFhLHVCQUF1QjtJQUV6QixzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsWUFBWSxFQUFFLG9DQUFvQztJQUYzRCxZQUNTLHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxZQUFZLEVBQUUsb0NBQW9DLEVBQ3ZEO0lBRUosc0JBQXNCLDhCQUVyQjtJQUVLLGFBQWEsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBU2pDO0NBQ0Y7QUFFRCxxQkFBYSxrQkFBa0I7SUFFcEIsc0JBQXNCLEVBQUUsc0JBQXNCO0lBQzlDLFlBQVksRUFBRSxvQ0FBb0M7SUFDbEQsWUFBWSxDQUFDO0lBQ2IsS0FBSyxDQUFDO0lBSmYsWUFDUyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsWUFBWSxFQUFFLG9DQUFvQyxFQUNsRCxZQUFZLENBQUMsb0NBQXdCLEVBQ3JDLEtBQUssQ0FBQyw2QkFBaUIsRUFDNUI7SUFFSixpRUFBaUU7SUFDakUsSUFBSSxlQUFlLElBQUksY0FBYyxFQUFFLENBRXRDO0lBRUQsSUFBSSxPQUFPLElBQUksT0FBTyxDQVNyQjtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBUzlDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxzQkFPcEY7SUFFRCxNQUFNLENBQUMsMENBQTBDLENBQy9DLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCxZQUFZLENBQUMsRUFBRSxzQkFBc0IsRUFDckMsS0FBSyxDQUFDLEVBQUUsZUFBZSxzQkFReEI7SUFFRCxPQUFhLE1BQU0sZ0NBTWxCO0lBRUQsc0JBQXNCLDhCQUVyQjtJQUVELGFBQWEsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBRTNCO0lBRUQscUJBQXFCLGdDQUVwQjtDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsNkJBQTZCLENBQUMsZUFBZSxFQUFFLHNCQUFzQixHQUFHLHlCQUF5QixDQVdoSCJ9