import type * as Equivalence from "effect/Equivalence";
import * as Option from "effect/Option";
import type * as Order from "effect/Order";
import type * as Result from "effect/Result";
import { type Predicate, type Refinement } from "./Function.js";
export declare function find_(as: ReadonlySet, refinement: Refinement): B | undefined;
export declare function find_(set: ReadonlySet, predicate: Predicate): A | undefined;
export declare function findFirst_(set: ReadonlySet, refinement: Refinement): Option.Option;
export declare function findFirst_(set: ReadonlySet, predicate: Predicate): Option.Option;
export declare function findFirstMap_(set: ReadonlySet, f: (a: A) => Option.Option): Option.Option;
export type MutableSet = globalThis.Set;
export type Set = ReadonlySet;
export declare const empty: Set;
/**
* The set of elements which are in both the first and second set
*/
export declare function intersection_(E: Equivalence.Equivalence): (l: Set, r: Set) => Set;
/**
* The set of elements which are in both the first and second set
*/
export declare function intersection(E: Equivalence.Equivalence): (r: Set) => (l: Set) => Set;
/**
* Convert a mutable set to a readonly one
*/
export declare function fromMutable(s: MutableSet): Set;
/**
* Convert a set to a mutable one
*/
export declare function toMutable(s: Set): MutableSet;
/**
* Convert a set to an Array
*/
export declare function toArray(O: Order.Order): (set: Set) => ReadonlyArray;
/**
* Convert a set to an Array
*/
export declare function toArray_(x: Set, O: Order.Order): ReadonlyArray;
/**
* true if one or more elements match predicate
*/
export declare function some(predicate: Predicate): (set: Set) => boolean;
/**
* true if one or more elements match predicate
*/
export declare function some_(set: Set, predicate: Predicate): boolean;
/**
* Projects a Set through a function
*/
export declare function map(E: Equivalence.Equivalence): (f: (x: A) => B) => (set: Set) => Set;
/**
* Projects a Set through a function
*/
export declare function map_(E: Equivalence.Equivalence): (set: Set, f: (x: A) => B) => Set;
/**
* true if all elements match predicate
*/
export declare function every(predicate: Predicate): (set: Set) => boolean;
/**
* true if all elements match predicate
*/
export declare function every_(set: Set, predicate: Predicate): boolean;
/**
* Map + Flatten
*/
export declare function chain(E: Equivalence.Equivalence): (f: (x: A) => Set) => (set: Set) => Set;
/**
* Map + Flatten
*/
export declare function chain_(E: Equivalence.Equivalence): (set: Set, f: (x: A) => Set) => Set;
/**
* `true` if and only if every element in the first set is an element of the second set
*/
export declare function isSubset(E: Equivalence.Equivalence): (x: Set, y: Set) => boolean;
/**
* `true` if and only if every element in the first set is an element of the second set
*/
export declare function isSubset_(E: Equivalence.Equivalence): (x: Set, y: Set) => boolean;
/**
* Filter set values using predicate
*/
export declare function filter(refinement: Refinement): (set: Set) => Set;
export declare function filter(predicate: Predicate): (set: Set) => Set;
/**
* Filter set values using predicate
*/
export declare function filter_(set: Set, refinement: Refinement): Set;
export declare function filter_(set: Set, predicate: Predicate): Set;
/**
* Partition set values using predicate
*/
export declare function partition(refinement: Refinement): (set: Set) => readonly [Set, Set];
export declare function partition(predicate: Predicate): (set: Set) => readonly [Set, Set];
/**
* Partition set values using predicate
*/
export declare function partition_(set: Set, refinement: Refinement): readonly [Set, Set];
export declare function partition_(set: Set, predicate: Predicate): readonly [Set, Set];
/**
* Test if a value is a member of a set
*/
export declare function elem_(E: Equivalence.Equivalence): (set: Set, a: A) => boolean;
/**
* Test if a value is a member of a set
*/
export declare function elem(E: Equivalence.Equivalence): (a: A) => (set: Set) => boolean;
/**
* Partition elements according to f
*/
export declare function partitionMap(EB: Equivalence.Equivalence, EC: Equivalence.Equivalence): (f: (a: A) => Result.Result) => (set: Set) => readonly [Set, Set];
/**
* Partition elements according to f
*/
export declare function partitionMap_(EB: Equivalence.Equivalence, EC: Equivalence.Equivalence): (set: Set, f: (a: A) => Result.Result) => readonly [Set, Set];
/**
* Form the set difference (`x` - `y`)
*/
export declare function difference_(E: Equivalence.Equivalence): (l: Set, r: Set) => Set;
/**
* Form the set difference (`x` - `y`)
*/
export declare function difference(E: Equivalence.Equivalence): (x: Set, y: Set) => Set;
/**
* Reduce over the set values
*/
export declare function reduce(O: Order.Order): (b: B, f: (b: B, a: A) => B) => (fa: Set) => B;
/**
* Reduce over the set values
*/
export declare function reduce_(O: Order.Order): (fa: Set, b: B, f: (b: B, a: A) => B) => B;
/**
* Create a set with one element
*/
export declare function singleton(a: A): Set;
/**
* Insert a value into a set
*/
export declare function insert(E: Equivalence.Equivalence): (a: A) => (set: Set) => Set;
/**
* Insert a value into a set
*/
export declare function insert_(E: Equivalence.Equivalence): (set: Set, a: A) => Set;
/**
* Delete a value from a set
*/
export declare function remove(E: Equivalence.Equivalence): (a: A) => (set: Set) => Set;
/**
* Delete a value from a set
*/
export declare function remove_(E: Equivalence.Equivalence): (set: Set, a: A) => Set;
/**
* If element is present remove it, if not add it
*/
export declare function toggle(E: Equivalence.Equivalence): (a: A) => (set: Set) => Set;
/**
* If element is present remove it, if not add it
*/
export declare function toggle_(E: Equivalence.Equivalence): (set: Set, a: A) => Set;
/**
* Create a set from an array
*/
export declare function fromArray(E: Equivalence.Equivalence): (as: ReadonlyArray) => Set;
/**
* Set compaction, remove none
*/
export declare function compact(E: Equivalence.Equivalence): (fa: Set>) => Set;
/**
* Separate elements
*/
export declare function separate(EE: Equivalence.Equivalence, EA: Equivalence.Equivalence): (fa: Set>) => readonly [Set, Set];
/**
* Filter + Map
*/
export declare function filterMap(E: Equivalence.Equivalence): (f: (a: A) => Option.Option) => (fa: Set) => Set;
/**
* Filter + Map
*/
export declare function filterMap_(E: Equivalence.Equivalence): (fa: Set, f: (a: A) => Option.Option) => Set;
/**
* Form the union of two sets
*/
export declare function union_(E: Equivalence.Equivalence): (set: Set, y: Set) => Set;
/**
* Form the union of two sets
*/
export declare function union(E: Equivalence.Equivalence): (set: Set, y: Set) => Set;
declare class Wrapper {
wrapped(ord: Order.Order, eq: Equivalence.Equivalence): {
insert: (a: A) => (set: Set) => Set;
insert_: (set: Set, a: A) => Set;
remove: (a: A) => (set: Set) => Set;
remove_: (set: Set, a: A) => Set;
reduce: (b: B, f: (b: B, a: A) => B) => (fa: Set) => B;
reduce_: (fa: Set, b: B, f: (b: B, a: A) => B) => B;
replace: (a: A) => (set: Set) => Set;
replace_: (set: Set, a: A) => Set;
toArray: (set: Set) => readonly A[];
fromArray: typeof fromArray;
from: (it: Iterable) => Set;
empty: () => globalThis.Set;
concat_: (set: Set, it: Iterable) => Set;
concat: (it: Iterable) => (set: Set) => Set;
map: (f: (x: A_1) => A) => (set: Set) => Set;
map_: (set: Set, f: (x: A_1) => A) => Set;
filterMap: (f: (a: A_1) => Option.Option) => (fa: Set) => Set;
filterMap_: (fa: Set, f: (a: A_1) => Option.Option) => Set;
};
}
export interface SetSchemaExtensions extends ReturnType["wrapped"]> {
}
export declare const make: (ord: Order.Order, eq?: Equivalence.Equivalence) => SetSchemaExtensions;
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2V0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxLQUFLLFdBQVcsTUFBTSxvQkFBb0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBRTFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDNUMsT0FBTyxFQUFrQixLQUFLLFNBQVMsRUFBRSxLQUFLLFVBQVUsRUFBUyxNQUFNLGVBQWUsQ0FBQTtBQUV0Rix3QkFBZ0IsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUNsQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNsQixVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FDM0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQTtBQUNoQix3QkFBZ0IsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQTtBQUtyRix3QkFBZ0IsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUN2QyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNuQixVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNuQix3QkFBZ0IsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENB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RSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBRzVGO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBRzdGO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUNuQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FDM0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUMxQix3QkFBZ0IsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFLM0U7O0dBRUc7QUFDSCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUNwQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNYLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDVCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENB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QUFFRDs7R0FFRztBQUNILHdCQUFnQixXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FHOUY7QUFFRDs7R0FFRztBQUNILHdCQUFnQixVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FHN0Y7QUFFRDs7R0FFRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxFQUN0QixDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FDaEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBR3REO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFDdkIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQ2hCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FHbEQ7QUF3QkQ7O0dBRUc7QUFDSCx3QkFBZ0IsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FFekM7QUFFRDs7R0FFRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUcxRjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQVd2RjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBRzFGO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBRXZGO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FHMUY7QUFFRDs7R0FFRztBQUNILHdCQUFnQixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FLdkY7QUFFRDs7R0FFRztBQUNILHdCQUFnQixTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBYTVGO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FFL0Y7QUFFRDs7R0FFRztBQUNILHdCQUFnQixRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDM0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQzlCLEVBQUUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUM3QixDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQXNCN0Q7QUFFRDs7R0FFRztBQUNILHdCQUFnQixTQUFTLENBQUMsQ0FBQyxFQUN6QixDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FDNUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBRzlEO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsVUFBVSxDQUFDLENBQUMsRUFDMUIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQzVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FZMUQ7QUFFRDs7R0FFRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FpQjNGO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBRzFGO0FBc0NELGNBQU0sT0FBTyxDQUFDLENBQUM7SUFDYixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDOzs7OztpQkE1UHpELENBQUM7a0JBVUQsQ0FBQzs7Ozs7Ozs7Ozs7OztNQW9QRjtDQUNGO0FBRUQsTUFBTSxXQUFXLG1CQUFtQixDQUFDLENBQUMsQ0FBRSxTQUFRLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7Q0FBRztBQUVwRixlQUFPLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUNuQixHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDbkIsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FDNUIsbUJBQW1CLENBQUMsQ0FBQyxDQUFTLENBQUEifQ==