@discord-player/utils
Version:
Discord Player Utilities
192 lines (186 loc) • 15.9 kB
JavaScript
var __defProp = Object.defineProperty;
var __typeError = (msg) => {
throw TypeError(msg);
};
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
// src/Collection.ts
import { Collection as CollectionNative } from "@discordjs/collection";
var _array;
var _Collection = class _Collection extends CollectionNative {
constructor() {
super(...arguments);
__privateAdd(this, _array);
}
/**
* @returns {Array<V>} Array of this collection
*/
array() {
if (__privateGet(this, _array)) return __privateGet(this, _array);
__privateSet(this, _array, [...this.values()]);
return __privateGet(this, _array);
}
set(key, value) {
__privateSet(this, _array, null);
super.set(key, value);
return this;
}
delete(key) {
__privateSet(this, _array, null);
return super.delete(key);
}
};
_array = new WeakMap();
__name(_Collection, "Collection");
var Collection = _Collection;
// src/Queue.ts
import { inspect } from "util";
var _Queue = class _Queue {
constructor(strategy = "FIFO", initializer = []) {
this.strategy = strategy;
__publicField(this, "store");
if (!["FIFO", "LIFO"].includes(strategy))
throw new TypeError(`Invalid queue strategy "${strategy}"!`);
this.store = Array.isArray(initializer) ? initializer : [];
Object.defineProperty(this, "store", {
writable: true,
configurable: true,
enumerable: false
});
}
get data() {
return this.toArray();
}
static from(data, strategy = "FIFO") {
return new _Queue(strategy, data);
}
isFIFO() {
return this.strategy === "FIFO";
}
isLIFO() {
return this.strategy === "LIFO";
}
add(item) {
if (this.strategy === "FIFO") {
if (Array.isArray(item)) {
this.store.push(...item);
} else {
this.store.push(item);
}
} else {
if (Array.isArray(item)) {
this.store.unshift(...item);
} else {
this.store.unshift(item);
}
}
}
clear() {
this.store = [];
}
shuffle() {
for (let i = this.store.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this.store[i], this.store[j]] = [this.store[j], this.store[i]];
}
}
remove(itemFilter) {
const items = this.store.filter(itemFilter);
if (items.length)
this.store = this.store.filter((res) => !items.includes(res));
}
removeOne(itemFilter) {
const item = this.store.findIndex(itemFilter);
if (item > -1) this.store.splice(item, 1);
}
find(itemFilter) {
return this.store.find(itemFilter);
}
filter(itemFilter) {
return this.store.filter(itemFilter);
}
some(itemFilter) {
return this.store.some(itemFilter);
}
every(itemFilter) {
return this.store.every(itemFilter);
}
map(itemFilter) {
const arr = this.toArray();
return arr.map(itemFilter);
}
at(idx) {
const arr = this.toArray();
return typeof Array.prototype.at === "function" ? arr.at(idx) : arr[idx];
}
dispatch() {
return this.store.shift();
}
clone() {
return new _Queue(this.strategy, this.store.slice());
}
get size() {
return this.store.length;
}
toString() {
return `Queue<${this.store.length} items>`;
}
toArray() {
return this.store.slice();
}
toJSON() {
return this.store;
}
[inspect.custom]() {
return `${this.constructor.name} {
strategy: '${this.strategy}',
data: ${inspect(this.data, {
showHidden: false,
colors: true,
depth: 1,
maxArrayLength: 5
})}
}`;
}
};
__name(_Queue, "Queue");
var Queue = _Queue;
// src/EventEmitter.ts
import { EventEmitter } from "node:events";
// src/utils.ts
function createEnum(data) {
const obj = {};
for (const item of data) obj[item] = item;
return Object.freeze(obj);
}
__name(createEnum, "createEnum");
// src/Errors.ts
var _PlayerException = class _PlayerException extends Error {
constructor(message) {
super(
typeof message === "string" ? message : JSON.stringify(message, null, 2)
);
}
};
__name(_PlayerException, "PlayerException");
var PlayerException = _PlayerException;
// src/version.ts
var version = (
/* @__MACRO__ getVersion */
"7.1.0"
);
export {
Collection,
EventEmitter,
PlayerException,
Queue,
createEnum,
createEnum as keyMirror,
version
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0NvbGxlY3Rpb24udHMiLCAiLi4vc3JjL1F1ZXVlLnRzIiwgIi4uL3NyYy9FdmVudEVtaXR0ZXIudHMiLCAiLi4vc3JjL3V0aWxzLnRzIiwgIi4uL3NyYy9FcnJvcnMudHMiLCAiLi4vc3JjL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IENvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbk5hdGl2ZSB9IGZyb20gJ0BkaXNjb3JkanMvY29sbGVjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPEsgPSB1bmtub3duLCBWID0gdW5rbm93bj4gZXh0ZW5kcyBDb2xsZWN0aW9uTmF0aXZlPFxuICBLLFxuICBWPlxue1xuICAjYXJyYXk6IFZbXSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtBcnJheTxWPn0gQXJyYXkgb2YgdGhpcyBjb2xsZWN0aW9uXG4gICAqL1xuICBwdWJsaWMgYXJyYXkoKTogVltdIHtcbiAgICBpZiAodGhpcy4jYXJyYXkpIHJldHVybiB0aGlzLiNhcnJheTtcbiAgICB0aGlzLiNhcnJheSA9IFsuLi50aGlzLnZhbHVlcygpXTtcbiAgICByZXR1cm4gdGhpcy4jYXJyYXk7XG4gIH1cblxuICBwdWJsaWMgc2V0KGtleTogSywgdmFsdWU6IFYpOiB0aGlzIHtcbiAgICB0aGlzLiNhcnJheSA9IG51bGw7XG4gICAgc3VwZXIuc2V0KGtleSwgdmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShrZXk6IEspOiBib29sZWFuIHtcbiAgICB0aGlzLiNhcnJheSA9IG51bGw7XG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShrZXkpO1xuICB9XG59IiwgImltcG9ydCB7IGluc3BlY3QgfSBmcm9tICd1dGlsJztcblxuZXhwb3J0IHR5cGUgUXVldWVTdHJhdGVneSA9ICdMSUZPJyB8ICdGSUZPJztcblxuZXhwb3J0IHR5cGUgUXVldWVJdGVtRmlsdGVyPFQsIFIgPSBib29sZWFuPiA9IChcbnZhbHVlOiBULFxuaWR4OiBudW1iZXIsXG5hcnJheTogVFtdKVxuPT4gUjtcblxuZXhwb3J0IGNsYXNzIFF1ZXVlPFQgPSB1bmtub3duPiB7XG4gIHB1YmxpYyBzdG9yZTogVFtdO1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gIHB1YmxpYyBzdHJhdGVneTogUXVldWVTdHJhdGVneSA9ICdGSUZPJyxcbiAgaW5pdGlhbGl6ZXI6IFRbXSA9IFtdKVxuICB7XG4gICAgaWYgKCFbJ0ZJRk8nLCAnTElGTyddLmluY2x1ZGVzKHN0cmF0ZWd5KSlcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIHF1ZXVlIHN0cmF0ZWd5IFwiJHtzdHJhdGVneX1cIiFgKTtcbiAgICB0aGlzLnN0b3JlID0gQXJyYXkuaXNBcnJheShpbml0aWFsaXplcikgPyBpbml0aWFsaXplciA6IFtdO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdzdG9yZScsIHtcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy50b0FycmF5KCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb208VD4oZGF0YTogVFtdLCBzdHJhdGVneTogUXVldWVTdHJhdGVneSA9ICdGSUZPJykge1xuICAgIHJldHVybiBuZXcgUXVldWU8VD4oc3RyYXRlZ3ksIGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGlzRklGTygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gJ0ZJRk8nO1xuICB9XG5cbiAgcHVibGljIGlzTElGTygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gJ0xJRk8nO1xuICB9XG5cbiAgcHVibGljIGFkZChpdGVtOiBUIHwgVFtdKSB7XG4gICAgaWYgKHRoaXMuc3RyYXRlZ3kgPT09ICdGSUZPJykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5wdXNoKC4uLml0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdG9yZS5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgICAgICB0aGlzLnN0b3JlLnVuc2hpZnQoLi4uaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0b3JlLnVuc2hpZnQoaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuc3RvcmUgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBzaHVmZmxlKCkge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLnN0b3JlLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIFt0aGlzLnN0b3JlW2ldLCB0aGlzLnN0b3JlW2pdXSA9IFt0aGlzLnN0b3JlW2pdLCB0aGlzLnN0b3JlW2ldXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKGl0ZW1GaWx0ZXI6IFF1ZXVlSXRlbUZpbHRlcjxUPikge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5zdG9yZS5maWx0ZXIoaXRlbUZpbHRlcik7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aClcbiAgICB0aGlzLnN0b3JlID0gdGhpcy5zdG9yZS5maWx0ZXIoKHJlcykgPT4gIWl0ZW1zLmluY2x1ZGVzKHJlcykpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZU9uZShpdGVtRmlsdGVyOiBRdWV1ZUl0ZW1GaWx0ZXI8VD4pIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zdG9yZS5maW5kSW5kZXgoaXRlbUZpbHRlcik7XG4gICAgaWYgKGl0ZW0gPiAtMSkgdGhpcy5zdG9yZS5zcGxpY2UoaXRlbSwgMSk7XG4gIH1cblxuICBwdWJsaWMgZmluZChpdGVtRmlsdGVyOiBRdWV1ZUl0ZW1GaWx0ZXI8VD4pIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5maW5kKGl0ZW1GaWx0ZXIpO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihpdGVtRmlsdGVyOiBRdWV1ZUl0ZW1GaWx0ZXI8VD4pIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5maWx0ZXIoaXRlbUZpbHRlcik7XG4gIH1cblxuICBwdWJsaWMgc29tZShpdGVtRmlsdGVyOiBRdWV1ZUl0ZW1GaWx0ZXI8VD4pIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zb21lKGl0ZW1GaWx0ZXIpO1xuICB9XG5cbiAgcHVibGljIGV2ZXJ5KGl0ZW1GaWx0ZXI6IFF1ZXVlSXRlbUZpbHRlcjxUPikge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLmV2ZXJ5KGl0ZW1GaWx0ZXIpO1xuICB9XG5cbiAgcHVibGljIG1hcDxSID0gVD4oaXRlbUZpbHRlcjogUXVldWVJdGVtRmlsdGVyPFQsIFI+KSB7XG4gICAgY29uc3QgYXJyID0gdGhpcy50b0FycmF5KCk7XG4gICAgcmV0dXJuIGFyci5tYXAoaXRlbUZpbHRlcik7XG4gIH1cblxuICBwdWJsaWMgYXQoaWR4OiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnIgPSB0aGlzLnRvQXJyYXkoKTtcbiAgICByZXR1cm4gdHlwZW9mIEFycmF5LnByb3RvdHlwZS5hdCA9PT0gJ2Z1bmN0aW9uJyA/IGFyci5hdChpZHgpIDogYXJyW2lkeF07XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2goKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2hpZnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXVlKHRoaXMuc3RyYXRlZ3ksIHRoaXMuc3RvcmUuc2xpY2UoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBgUXVldWU8JHt0aGlzLnN0b3JlLmxlbmd0aH0gaXRlbXM+YDtcbiAgfVxuXG4gIHB1YmxpYyB0b0FycmF5KCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlO1xuICB9XG5cbiAgcHVibGljIFtpbnNwZWN0LmN1c3RvbV0oKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0ge1xcbiAgc3RyYXRlZ3k6ICcke1xuICAgIHRoaXMuc3RyYXRlZ3l9JyxcXG4gIGRhdGE6ICR7XG4gICAgaW5zcGVjdCh0aGlzLmRhdGEsIHtcbiAgICAgIHNob3dIaWRkZW46IGZhbHNlLFxuICAgICAgY29sb3JzOiB0cnVlLFxuICAgICAgZGVwdGg6IDEsXG4gICAgICBtYXhBcnJheUxlbmd0aDogNVxuICAgIH0pfVxcbn1gO1xuICB9XG59IiwgImV4cG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJzsiLCAiZnVuY3Rpb24gY3JlYXRlRW51bTxLIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sPihkYXRhOiBLW10pIHtcbiAgY29uc3Qgb2JqID0ge30gYXMgUmVjb3JkPEssIEs+O1xuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBkYXRhKSBvYmpbaXRlbV0gPSBpdGVtO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iaik7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZUVudW0sIGNyZWF0ZUVudW0gYXMga2V5TWlycm9yIH07IiwgImV4cG9ydCB0eXBlIFBsYXllckV4Y2VwdGlvbk1lc3NhZ2UgPSBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGNsYXNzIFBsYXllckV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IFBsYXllckV4Y2VwdGlvbk1lc3NhZ2UpIHtcbiAgICBzdXBlcihcbiAgICAgIHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJyA/IG1lc3NhZ2UgOiBKU09OLnN0cmluZ2lmeShtZXNzYWdlLCBudWxsLCAyKVxuICAgICk7XG4gIH1cbn0iLCAiXG5cblxuXG5cblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSAvKiBAX19NQUNST19fIGdldFZlcnNpb24gKi9cIjcuMS4wXCI7Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7OztBQUFBLFNBQVMsY0FBYyx3QkFBd0I7QUFBL0M7QUFFTyxJQUFNLGNBQU4sTUFBTSxvQkFBNkMsaUJBRzFEO0FBQUEsRUFITztBQUFBO0FBSUw7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sUUFBYTtBQUNsQixRQUFJLG1CQUFLLFFBQVEsUUFBTyxtQkFBSztBQUM3Qix1QkFBSyxRQUFTLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQztBQUMvQixXQUFPLG1CQUFLO0FBQUEsRUFDZDtBQUFBLEVBRU8sSUFBSSxLQUFRLE9BQWdCO0FBQ2pDLHVCQUFLLFFBQVM7QUFDZCxVQUFNLElBQUksS0FBSyxLQUFLO0FBQ3BCLFdBQU87QUFBQSxFQUNUO0FBQUEsRUFFTyxPQUFPLEtBQWlCO0FBQzdCLHVCQUFLLFFBQVM7QUFDZCxXQUFPLE1BQU0sT0FBTyxHQUFHO0FBQUEsRUFDekI7QUFDRjtBQXJCRTtBQURGO0FBSE8sSUFBTSxhQUFOOzs7QUNGUCxTQUFTLGVBQWU7QUFVakIsSUFBTSxTQUFOLE1BQU0sT0FBbUI7QUFBQSxFQUV2QixZQUNBLFdBQTBCLFFBQ2pDLGNBQW1CLENBQUMsR0FDcEI7QUFGTztBQUZQLHdCQUFPO0FBS0wsUUFBSSxDQUFDLENBQUMsUUFBUSxNQUFNLEVBQUUsU0FBUyxRQUFRO0FBQ3ZDLFlBQU0sSUFBSSxVQUFVLDJCQUEyQixRQUFRLElBQUk7QUFDM0QsU0FBSyxRQUFRLE1BQU0sUUFBUSxXQUFXLElBQUksY0FBYyxDQUFDO0FBRXpELFdBQU8sZUFBZSxNQUFNLFNBQVM7QUFBQSxNQUNuQyxVQUFVO0FBQUEsTUFDVixjQUFjO0FBQUEsTUFDZCxZQUFZO0FBQUEsSUFDZCxDQUFDO0FBQUEsRUFDSDtBQUFBLEVBRUEsSUFBVyxPQUFPO0FBQ2hCLFdBQU8sS0FBSyxRQUFRO0FBQUEsRUFDdEI7QUFBQSxFQUVBLE9BQWMsS0FBUSxNQUFXLFdBQTBCLFFBQVE7QUFDakUsV0FBTyxJQUFJLE9BQVMsVUFBVSxJQUFJO0FBQUEsRUFDcEM7QUFBQSxFQUVPLFNBQVM7QUFDZCxXQUFPLEtBQUssYUFBYTtBQUFBLEVBQzNCO0FBQUEsRUFFTyxTQUFTO0FBQ2QsV0FBTyxLQUFLLGFBQWE7QUFBQSxFQUMzQjtBQUFBLEVBRU8sSUFBSSxNQUFlO0FBQ3hCLFFBQUksS0FBSyxhQUFhLFFBQVE7QUFDNUIsVUFBSSxNQUFNLFFBQVEsSUFBSSxHQUFHO0FBQ3ZCLGFBQUssTUFBTSxLQUFLLEdBQUcsSUFBSTtBQUFBLE1BQ3pCLE9BQU87QUFDTCxhQUFLLE1BQU0sS0FBSyxJQUFJO0FBQUEsTUFDdEI7QUFBQSxJQUNGLE9BQU87QUFDTCxVQUFJLE1BQU0sUUFBUSxJQUFJLEdBQUc7QUFDdkIsYUFBSyxNQUFNLFFBQVEsR0FBRyxJQUFJO0FBQUEsTUFDNUIsT0FBTztBQUNMLGFBQUssTUFBTSxRQUFRLElBQUk7QUFBQSxNQUN6QjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFTyxRQUFRO0FBQ2IsU0FBSyxRQUFRLENBQUM7QUFBQSxFQUNoQjtBQUFBLEVBRU8sVUFBVTtBQUNmLGFBQVMsSUFBSSxLQUFLLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxLQUFLO0FBQzlDLFlBQU0sSUFBSSxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssSUFBSSxFQUFFO0FBQzVDLE9BQUMsS0FBSyxNQUFNLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUM7QUFBQSxJQUNoRTtBQUFBLEVBQ0Y7QUFBQSxFQUVPLE9BQU8sWUFBZ0M7QUFDNUMsVUFBTSxRQUFRLEtBQUssTUFBTSxPQUFPLFVBQVU7QUFDMUMsUUFBSSxNQUFNO0FBQ1YsV0FBSyxRQUFRLEtBQUssTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUM7QUFBQSxFQUM5RDtBQUFBLEVBRU8sVUFBVSxZQUFnQztBQUMvQyxVQUFNLE9BQU8sS0FBSyxNQUFNLFVBQVUsVUFBVTtBQUM1QyxRQUFJLE9BQU8sR0FBSSxNQUFLLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFBQSxFQUMxQztBQUFBLEVBRU8sS0FBSyxZQUFnQztBQUMxQyxXQUFPLEtBQUssTUFBTSxLQUFLLFVBQVU7QUFBQSxFQUNuQztBQUFBLEVBRU8sT0FBTyxZQUFnQztBQUM1QyxXQUFPLEtBQUssTUFBTSxPQUFPLFVBQVU7QUFBQSxFQUNyQztBQUFBLEVBRU8sS0FBSyxZQUFnQztBQUMxQyxXQUFPLEtBQUssTUFBTSxLQUFLLFVBQVU7QUFBQSxFQUNuQztBQUFBLEVBRU8sTUFBTSxZQUFnQztBQUMzQyxXQUFPLEtBQUssTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUNwQztBQUFBLEVBRU8sSUFBVyxZQUFtQztBQUNuRCxVQUFNLE1BQU0sS0FBSyxRQUFRO0FBQ3pCLFdBQU8sSUFBSSxJQUFJLFVBQVU7QUFBQSxFQUMzQjtBQUFBLEVBRU8sR0FBRyxLQUFhO0FBQ3JCLFVBQU0sTUFBTSxLQUFLLFFBQVE7QUFDekIsV0FBTyxPQUFPLE1BQU0sVUFBVSxPQUFPLGFBQWEsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUc7QUFBQSxFQUN6RTtBQUFBLEVBRU8sV0FBVztBQUNoQixXQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsRUFDMUI7QUFBQSxFQUVPLFFBQVE7QUFDYixXQUFPLElBQUksT0FBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLE1BQU0sQ0FBQztBQUFBLEVBQ3BEO0FBQUEsRUFFQSxJQUFXLE9BQU87QUFDaEIsV0FBTyxLQUFLLE1BQU07QUFBQSxFQUNwQjtBQUFBLEVBRU8sV0FBVztBQUNoQixXQUFPLFNBQVMsS0FBSyxNQUFNLE1BQU07QUFBQSxFQUNuQztBQUFBLEVBRU8sVUFBVTtBQUNmLFdBQU8sS0FBSyxNQUFNLE1BQU07QUFBQSxFQUMxQjtBQUFBLEVBRU8sU0FBUztBQUNkLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVBLENBQVEsUUFBUSxNQUFNLElBQUk7QUFDeEIsV0FBTyxHQUFHLEtBQUssWUFBWSxJQUFJO0FBQUEsZUFDL0IsS0FBSyxRQUFRO0FBQUEsVUFDYixRQUFRLEtBQUssTUFBTTtBQUFBLE1BQ2pCLFlBQVk7QUFBQSxNQUNaLFFBQVE7QUFBQSxNQUNSLE9BQU87QUFBQSxNQUNQLGdCQUFnQjtBQUFBLElBQ2xCLENBQUMsQ0FBQztBQUFBO0FBQUEsRUFDSjtBQUNGO0FBbklnQztBQUF6QixJQUFNLFFBQU47OztBQ1ZQLFNBQVMsb0JBQW9COzs7QUNBN0IsU0FBUyxXQUErQyxNQUFXO0FBQ2pFLFFBQU0sTUFBTSxDQUFDO0FBRWIsYUFBVyxRQUFRLEtBQU0sS0FBSSxJQUFJLElBQUk7QUFFckMsU0FBTyxPQUFPLE9BQU8sR0FBRztBQUMxQjtBQU5TOzs7QUNFRixJQUFNLG1CQUFOLE1BQU0seUJBQXdCLE1BQU07QUFBQSxFQUNsQyxZQUFZLFNBQWlDO0FBQ2xEO0FBQUEsTUFDRSxPQUFPLFlBQVksV0FBVyxVQUFVLEtBQUssVUFBVSxTQUFTLE1BQU0sQ0FBQztBQUFBLElBQ3pFO0FBQUEsRUFDRjtBQUNGO0FBTjJDO0FBQXBDLElBQU0sa0JBQU47OztBQ0lBLElBQU07QUFBQTtBQUFBLEVBQXFDO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==