chatgpt-fine-tuning
Version:
Easily tune your models.
930 lines (917 loc) • 3.33 MB
JavaScript
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
// node_modules/json-buffer/index.js
var require_json_buffer = __commonJS({
"node_modules/json-buffer/index.js"(exports2) {
exports2.stringify = function stringify(o) {
if ("undefined" == typeof o)
return o;
if (o && Buffer.isBuffer(o))
return JSON.stringify(":base64:" + o.toString("base64"));
if (o && o.toJSON)
o = o.toJSON();
if (o && "object" === typeof o) {
var s = "";
var array = Array.isArray(o);
s = array ? "[" : "{";
var first = true;
for (var k in o) {
var ignore = "function" == typeof o[k] || !array && "undefined" === typeof o[k];
if (Object.hasOwnProperty.call(o, k) && !ignore) {
if (!first)
s += ",";
first = false;
if (array) {
if (o[k] == void 0)
s += "null";
else
s += stringify(o[k]);
} else if (o[k] !== void 0) {
s += stringify(k) + ":" + stringify(o[k]);
}
}
}
s += array ? "]" : "}";
return s;
} else if ("string" === typeof o) {
return JSON.stringify(/^:/.test(o) ? ":" + o : o);
} else if ("undefined" === typeof o) {
return "null";
} else
return JSON.stringify(o);
};
exports2.parse = function(s) {
return JSON.parse(s, function(key, value) {
if ("string" === typeof value) {
if (/^:base64:/.test(value))
return Buffer.from(value.substring(8), "base64");
else
return /^:/.test(value) ? value.substring(1) : value;
}
return value;
});
};
}
});
// node_modules/keyv/src/index.js
var require_src = __commonJS({
"node_modules/keyv/src/index.js"(exports2, module2) {
"use strict";
var EventEmitter = require("events");
var JSONB = require_json_buffer();
var loadStore = (options) => {
const adapters = {
redis: "@keyv/redis",
rediss: "@keyv/redis",
mongodb: "@keyv/mongo",
mongo: "@keyv/mongo",
sqlite: "@keyv/sqlite",
postgresql: "@keyv/postgres",
postgres: "@keyv/postgres",
mysql: "@keyv/mysql",
etcd: "@keyv/etcd",
offline: "@keyv/offline",
tiered: "@keyv/tiered"
};
if (options.adapter || options.uri) {
const adapter = options.adapter || /^[^:+]*/.exec(options.uri)[0];
return new (require(adapters[adapter]))(options);
}
return /* @__PURE__ */ new Map();
};
var iterableAdapters = [
"sqlite",
"postgres",
"mysql",
"mongo",
"redis",
"tiered"
];
var Keyv2 = class extends EventEmitter {
constructor(uri, { emitErrors = true, ...options } = {}) {
super();
this.opts = {
namespace: "keyv",
serialize: JSONB.stringify,
deserialize: JSONB.parse,
...typeof uri === "string" ? { uri } : uri,
...options
};
if (!this.opts.store) {
const adapterOptions = { ...this.opts };
this.opts.store = loadStore(adapterOptions);
}
if (this.opts.compression) {
const compression = this.opts.compression;
this.opts.serialize = compression.serialize.bind(compression);
this.opts.deserialize = compression.deserialize.bind(compression);
}
if (typeof this.opts.store.on === "function" && emitErrors) {
this.opts.store.on("error", (error) => this.emit("error", error));
}
this.opts.store.namespace = this.opts.namespace;
const generateIterator = (iterator) => async function* () {
for await (const [key, raw] of typeof iterator === "function" ? iterator(this.opts.store.namespace) : iterator) {
const data = await this.opts.deserialize(raw);
if (this.opts.store.namespace && !key.includes(this.opts.store.namespace)) {
continue;
}
if (typeof data.expires === "number" && Date.now() > data.expires) {
this.delete(key);
continue;
}
yield [this._getKeyUnprefix(key), data.value];
}
};
if (typeof this.opts.store[Symbol.iterator] === "function" && this.opts.store instanceof Map) {
this.iterator = generateIterator(this.opts.store);
} else if (typeof this.opts.store.iterator === "function" && this.opts.store.opts && this._checkIterableAdaptar()) {
this.iterator = generateIterator(this.opts.store.iterator.bind(this.opts.store));
}
}
_checkIterableAdaptar() {
return iterableAdapters.includes(this.opts.store.opts.dialect) || iterableAdapters.findIndex((element) => this.opts.store.opts.url.includes(element)) >= 0;
}
_getKeyPrefix(key) {
return `${this.opts.namespace}:${key}`;
}
_getKeyPrefixArray(keys) {
return keys.map((key) => `${this.opts.namespace}:${key}`);
}
_getKeyUnprefix(key) {
return key.split(":").splice(1).join(":");
}
get(key, options) {
const { store } = this.opts;
const isArray = Array.isArray(key);
const keyPrefixed = isArray ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key);
if (isArray && store.getMany === void 0) {
const promises = [];
for (const key2 of keyPrefixed) {
promises.push(
Promise.resolve().then(() => store.get(key2)).then((data) => typeof data === "string" ? this.opts.deserialize(data) : this.opts.compression ? this.opts.deserialize(data) : data).then((data) => {
if (data === void 0 || data === null) {
return void 0;
}
if (typeof data.expires === "number" && Date.now() > data.expires) {
return this.delete(key2).then(() => void 0);
}
return options && options.raw ? data : data.value;
})
);
}
return Promise.allSettled(promises).then((values) => {
const data = [];
for (const value of values) {
data.push(value.value);
}
return data;
});
}
return Promise.resolve().then(() => isArray ? store.getMany(keyPrefixed) : store.get(keyPrefixed)).then((data) => typeof data === "string" ? this.opts.deserialize(data) : this.opts.compression ? this.opts.deserialize(data) : data).then((data) => {
if (data === void 0 || data === null) {
return void 0;
}
if (isArray) {
return data.map((row, index) => {
if (typeof row === "string") {
row = this.opts.deserialize(row);
}
if (row === void 0 || row === null) {
return void 0;
}
if (typeof row.expires === "number" && Date.now() > row.expires) {
this.delete(key[index]).then(() => void 0);
return void 0;
}
return options && options.raw ? row : row.value;
});
}
if (typeof data.expires === "number" && Date.now() > data.expires) {
return this.delete(key).then(() => void 0);
}
return options && options.raw ? data : data.value;
});
}
set(key, value, ttl) {
const keyPrefixed = this._getKeyPrefix(key);
if (typeof ttl === "undefined") {
ttl = this.opts.ttl;
}
if (ttl === 0) {
ttl = void 0;
}
const { store } = this.opts;
return Promise.resolve().then(() => {
const expires = typeof ttl === "number" ? Date.now() + ttl : null;
if (typeof value === "symbol") {
this.emit("error", "symbol cannot be serialized");
}
value = { value, expires };
return this.opts.serialize(value);
}).then((value2) => store.set(keyPrefixed, value2, ttl)).then(() => true);
}
delete(key) {
const { store } = this.opts;
if (Array.isArray(key)) {
const keyPrefixed2 = this._getKeyPrefixArray(key);
if (store.deleteMany === void 0) {
const promises = [];
for (const key2 of keyPrefixed2) {
promises.push(store.delete(key2));
}
return Promise.allSettled(promises).then((values) => values.every((x) => x.value === true));
}
return Promise.resolve().then(() => store.deleteMany(keyPrefixed2));
}
const keyPrefixed = this._getKeyPrefix(key);
return Promise.resolve().then(() => store.delete(keyPrefixed));
}
clear() {
const { store } = this.opts;
return Promise.resolve().then(() => store.clear());
}
has(key) {
const keyPrefixed = this._getKeyPrefix(key);
const { store } = this.opts;
return Promise.resolve().then(async () => {
if (typeof store.has === "function") {
return store.has(keyPrefixed);
}
const value = await store.get(keyPrefixed);
return value !== void 0;
});
}
disconnect() {
const { store } = this.opts;
if (typeof store.disconnect === "function") {
return store.disconnect();
}
}
};
module2.exports = Keyv2;
}
});
// node_modules/base64-js/index.js
var require_base64_js = __commonJS({
"node_modules/base64-js/index.js"(exports2) {
"use strict";
exports2.byteLength = byteLength;
exports2.toByteArray = toByteArray;
exports2.fromByteArray = fromByteArray;
var lookup = [];
var revLookup = [];
var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
for (i = 0, len = code.length; i < len; ++i) {
lookup[i] = code[i];
revLookup[code.charCodeAt(i)] = i;
}
var i;
var len;
revLookup["-".charCodeAt(0)] = 62;
revLookup["_".charCodeAt(0)] = 63;
function getLens(b64) {
var len2 = b64.length;
if (len2 % 4 > 0) {
throw new Error("Invalid string. Length must be a multiple of 4");
}
var validLen = b64.indexOf("=");
if (validLen === -1)
validLen = len2;
var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;
return [validLen, placeHoldersLen];
}
function byteLength(b64) {
var lens = getLens(b64);
var validLen = lens[0];
var placeHoldersLen = lens[1];
return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
}
function _byteLength(b64, validLen, placeHoldersLen) {
return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
}
function toByteArray(b64) {
var tmp;
var lens = getLens(b64);
var validLen = lens[0];
var placeHoldersLen = lens[1];
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
var curByte = 0;
var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;
var i2;
for (i2 = 0; i2 < len2; i2 += 4) {
tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];
arr[curByte++] = tmp >> 16 & 255;
arr[curByte++] = tmp >> 8 & 255;
arr[curByte++] = tmp & 255;
}
if (placeHoldersLen === 2) {
tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;
arr[curByte++] = tmp & 255;
}
if (placeHoldersLen === 1) {
tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;
arr[curByte++] = tmp >> 8 & 255;
arr[curByte++] = tmp & 255;
}
return arr;
}
function tripletToBase64(num) {
return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
}
function encodeChunk(uint8, start, end) {
var tmp;
var output = [];
for (var i2 = start; i2 < end; i2 += 3) {
tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);
output.push(tripletToBase64(tmp));
}
return output.join("");
}
function fromByteArray(uint8) {
var tmp;
var len2 = uint8.length;
var extraBytes = len2 % 3;
var parts = [];
var maxChunkLength = 16383;
for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {
parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));
}
if (extraBytes === 1) {
tmp = uint8[len2 - 1];
parts.push(
lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="
);
} else if (extraBytes === 2) {
tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];
parts.push(
lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="
);
}
return parts.join("");
}
}
});
// src/index.ts
var src_exports = {};
__export(src_exports, {
Tuner: () => Tuner,
default: () => src_default
});
module.exports = __toCommonJS(src_exports);
// node_modules/chatgpt/build/index.js
var import_keyv = __toESM(require_src(), 1);
// node_modules/p-timeout/index.js
var TimeoutError = class extends Error {
constructor(message) {
super(message);
this.name = "TimeoutError";
}
};
var AbortError = class extends Error {
constructor(message) {
super();
this.name = "AbortError";
this.message = message;
}
};
var getDOMException = (errorMessage) => globalThis.DOMException === void 0 ? new AbortError(errorMessage) : new DOMException(errorMessage);
var getAbortedReason = (signal) => {
const reason = signal.reason === void 0 ? getDOMException("This operation was aborted.") : signal.reason;
return reason instanceof Error ? reason : getDOMException(reason);
};
function pTimeout(promise, options) {
const {
milliseconds,
fallback,
message,
customTimers = { setTimeout, clearTimeout }
} = options;
let timer;
const wrappedPromise = new Promise((resolve, reject) => {
if (typeof milliseconds !== "number" || Math.sign(milliseconds) !== 1) {
throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${milliseconds}\``);
}
if (options.signal) {
const { signal } = options;
if (signal.aborted) {
reject(getAbortedReason(signal));
}
signal.addEventListener("abort", () => {
reject(getAbortedReason(signal));
});
}
if (milliseconds === Number.POSITIVE_INFINITY) {
promise.then(resolve, reject);
return;
}
const timeoutError = new TimeoutError();
timer = customTimers.setTimeout.call(void 0, () => {
if (fallback) {
try {
resolve(fallback());
} catch (error) {
reject(error);
}
return;
}
if (typeof promise.cancel === "function") {
promise.cancel();
}
if (message === false) {
resolve();
} else if (message instanceof Error) {
reject(message);
} else {
timeoutError.message = message != null ? message : `Promise timed out after ${milliseconds} milliseconds`;
reject(timeoutError);
}
}, milliseconds);
(async () => {
try {
resolve(await promise);
} catch (error) {
reject(error);
}
})();
});
const cancelablePromise = wrappedPromise.finally(() => {
cancelablePromise.clear();
});
cancelablePromise.clear = () => {
customTimers.clearTimeout.call(void 0, timer);
timer = void 0;
};
return cancelablePromise;
}
// node_modules/quick-lru/index.js
var QuickLRU = class extends Map {
constructor(options = {}) {
super();
if (!(options.maxSize && options.maxSize > 0)) {
throw new TypeError("`maxSize` must be a number greater than 0");
}
if (typeof options.maxAge === "number" && options.maxAge === 0) {
throw new TypeError("`maxAge` must be a number greater than 0");
}
this.maxSize = options.maxSize;
this.maxAge = options.maxAge || Number.POSITIVE_INFINITY;
this.onEviction = options.onEviction;
this.cache = /* @__PURE__ */ new Map();
this.oldCache = /* @__PURE__ */ new Map();
this._size = 0;
}
// TODO: Use private class methods when targeting Node.js 16.
_emitEvictions(cache) {
if (typeof this.onEviction !== "function") {
return;
}
for (const [key, item] of cache) {
this.onEviction(key, item.value);
}
}
_deleteIfExpired(key, item) {
if (typeof item.expiry === "number" && item.expiry <= Date.now()) {
if (typeof this.onEviction === "function") {
this.onEviction(key, item.value);
}
return this.delete(key);
}
return false;
}
_getOrDeleteIfExpired(key, item) {
const deleted = this._deleteIfExpired(key, item);
if (deleted === false) {
return item.value;
}
}
_getItemValue(key, item) {
return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;
}
_peek(key, cache) {
const item = cache.get(key);
return this._getItemValue(key, item);
}
_set(key, value) {
this.cache.set(key, value);
this._size++;
if (this._size >= this.maxSize) {
this._size = 0;
this._emitEvictions(this.oldCache);
this.oldCache = this.cache;
this.cache = /* @__PURE__ */ new Map();
}
}
_moveToRecent(key, item) {
this.oldCache.delete(key);
this._set(key, item);
}
*_entriesAscending() {
for (const item of this.oldCache) {
const [key, value] = item;
if (!this.cache.has(key)) {
const deleted = this._deleteIfExpired(key, value);
if (deleted === false) {
yield item;
}
}
}
for (const item of this.cache) {
const [key, value] = item;
const deleted = this._deleteIfExpired(key, value);
if (deleted === false) {
yield item;
}
}
}
get(key) {
if (this.cache.has(key)) {
const item = this.cache.get(key);
return this._getItemValue(key, item);
}
if (this.oldCache.has(key)) {
const item = this.oldCache.get(key);
if (this._deleteIfExpired(key, item) === false) {
this._moveToRecent(key, item);
return item.value;
}
}
}
set(key, value, { maxAge = this.maxAge } = {}) {
const expiry = typeof maxAge === "number" && maxAge !== Number.POSITIVE_INFINITY ? Date.now() + maxAge : void 0;
if (this.cache.has(key)) {
this.cache.set(key, {
value,
expiry
});
} else {
this._set(key, { value, expiry });
}
return this;
}
has(key) {
if (this.cache.has(key)) {
return !this._deleteIfExpired(key, this.cache.get(key));
}
if (this.oldCache.has(key)) {
return !this._deleteIfExpired(key, this.oldCache.get(key));
}
return false;
}
peek(key) {
if (this.cache.has(key)) {
return this._peek(key, this.cache);
}
if (this.oldCache.has(key)) {
return this._peek(key, this.oldCache);
}
}
delete(key) {
const deleted = this.cache.delete(key);
if (deleted) {
this._size--;
}
return this.oldCache.delete(key) || deleted;
}
clear() {
this.cache.clear();
this.oldCache.clear();
this._size = 0;
}
resize(newSize) {
if (!(newSize && newSize > 0)) {
throw new TypeError("`maxSize` must be a number greater than 0");
}
const items = [...this._entriesAscending()];
const removeCount = items.length - newSize;
if (removeCount < 0) {
this.cache = new Map(items);
this.oldCache = /* @__PURE__ */ new Map();
this._size = items.length;
} else {
if (removeCount > 0) {
this._emitEvictions(items.slice(0, removeCount));
}
this.oldCache = new Map(items.slice(removeCount));
this.cache = /* @__PURE__ */ new Map();
this._size = 0;
}
this.maxSize = newSize;
}
*keys() {
for (const [key] of this) {
yield key;
}
}
*values() {
for (const [, value] of this) {
yield value;
}
}
*[Symbol.iterator]() {
for (const item of this.cache) {
const [key, value] = item;
const deleted = this._deleteIfExpired(key, value);
if (deleted === false) {
yield [key, value.value];
}
}
for (const item of this.oldCache) {
const [key, value] = item;
if (!this.cache.has(key)) {
const deleted = this._deleteIfExpired(key, value);
if (deleted === false) {
yield [key, value.value];
}
}
}
}
*entriesDescending() {
let items = [...this.cache];
for (let i = items.length - 1; i >= 0; --i) {
const item = items[i];
const [key, value] = item;
const deleted = this._deleteIfExpired(key, value);
if (deleted === false) {
yield [key, value.value];
}
}
items = [...this.oldCache];
for (let i = items.length - 1; i >= 0; --i) {
const item = items[i];
const [key, value] = item;
if (!this.cache.has(key)) {
const deleted = this._deleteIfExpired(key, value);
if (deleted === false) {
yield [key, value.value];
}
}
}
}
*entriesAscending() {
for (const [key, value] of this._entriesAscending()) {
yield [key, value.value];
}
}
get size() {
if (!this._size) {
return this.oldCache.size;
}
let oldCacheSize = 0;
for (const key of this.oldCache.keys()) {
if (!this.cache.has(key)) {
oldCacheSize++;
}
}
return Math.min(this._size + oldCacheSize, this.maxSize);
}
entries() {
return this.entriesAscending();
}
forEach(callbackFunction, thisArgument = this) {
for (const [key, value] of this.entriesAscending()) {
callbackFunction.call(thisArgument, value, key, this);
}
}
get [Symbol.toStringTag]() {
return JSON.stringify([...this.entriesAscending()]);
}
};
// node_modules/uuid/dist/esm-node/rng.js
var import_crypto = __toESM(require("crypto"));
var rnds8Pool = new Uint8Array(256);
var poolPtr = rnds8Pool.length;
function rng() {
if (poolPtr > rnds8Pool.length - 16) {
import_crypto.default.randomFillSync(rnds8Pool);
poolPtr = 0;
}
return rnds8Pool.slice(poolPtr, poolPtr += 16);
}
// node_modules/uuid/dist/esm-node/stringify.js
var byteToHex = [];
for (let i = 0; i < 256; ++i) {
byteToHex.push((i + 256).toString(16).slice(1));
}
function unsafeStringify(arr, offset = 0) {
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
}
// node_modules/uuid/dist/esm-node/native.js
var import_crypto2 = __toESM(require("crypto"));
var native_default = {
randomUUID: import_crypto2.default.randomUUID
};
// node_modules/uuid/dist/esm-node/v4.js
function v4(options, buf, offset) {
if (native_default.randomUUID && !buf && !options) {
return native_default.randomUUID();
}
options = options || {};
const rnds = options.random || (options.rng || rng)();
rnds[6] = rnds[6] & 15 | 64;
rnds[8] = rnds[8] & 63 | 128;
if (buf) {
offset = offset || 0;
for (let i = 0; i < 16; ++i) {
buf[offset + i] = rnds[i];
}
return buf;
}
return unsafeStringify(rnds);
}
var v4_default = v4;
// node_modules/js-tiktoken/dist/chunk-HXW345QN.js
var import_base64_js = __toESM(require_base64_js(), 1);
var __defProp2 = Object.defineProperty;
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField2 = (obj, key, value) => {
__defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
function never(_) {
}
function bytePairMerge(piece, ranks) {
let parts = Array.from(
{ length: piece.length },
(_, i) => ({ start: i, end: i + 1 })
);
while (parts.length > 1) {
let minRank = null;
for (let i = 0; i < parts.length - 1; i++) {
const slice = piece.slice(parts[i].start, parts[i + 1].end);
const rank = ranks.get(slice.join(","));
if (rank == null)
continue;
if (minRank == null || rank < minRank[0]) {
minRank = [rank, i];
}
}
if (minRank != null) {
const i = minRank[1];
parts[i] = { start: parts[i].start, end: parts[i + 1].end };
parts.splice(i + 1, 1);
} else {
break;
}
}
return parts;
}
function bytePairEncode(piece, ranks) {
if (piece.length === 1)
return [ranks.get(piece.join(","))];
return bytePairMerge(piece, ranks).map((p) => ranks.get(piece.slice(p.start, p.end).join(","))).filter((x) => x != null);
}
function escapeRegex(str) {
return str.replace(/[\\^$*+?.()|[\]{}]/g, "\\$&");
}
var _Tiktoken = class {
constructor(ranks, extendedSpecialTokens) {
/** @internal */
__publicField(this, "specialTokens");
/** @internal */
__publicField(this, "inverseSpecialTokens");
/** @internal */
__publicField(this, "patStr");
/** @internal */
__publicField(this, "textEncoder", new TextEncoder());
/** @internal */
__publicField(this, "textDecoder", new TextDecoder("utf-8"));
/** @internal */
__publicField(this, "rankMap", /* @__PURE__ */ new Map());
/** @internal */
__publicField(this, "textMap", /* @__PURE__ */ new Map());
this.patStr = ranks.pat_str;
const uncompressed = ranks.bpe_ranks.split("\n").filter(Boolean).reduce((memo, x) => {
const [_, offsetStr, ...tokens] = x.split(" ");
const offset = Number.parseInt(offsetStr, 10);
tokens.forEach((token, i) => memo[token] = offset + i);
return memo;
}, {});
for (const [token, rank] of Object.entries(uncompressed)) {
const bytes = import_base64_js.default.toByteArray(token);
this.rankMap.set(bytes.join(","), rank);
this.textMap.set(rank, bytes);
}
this.specialTokens = { ...ranks.special_tokens, ...extendedSpecialTokens };
this.inverseSpecialTokens = Object.entries(this.specialTokens).reduce((memo, [text, rank]) => {
memo[rank] = this.textEncoder.encode(text);
return memo;
}, {});
}
encode(text, allowedSpecial = [], disallowedSpecial = "all") {
var _a;
const regexes = new RegExp(this.patStr, "ug");
const specialRegex = _Tiktoken.specialTokenRegex(
Object.keys(this.specialTokens)
);
const ret = [];
const allowedSpecialSet = new Set(
allowedSpecial === "all" ? Object.keys(this.specialTokens) : allowedSpecial
);
const disallowedSpecialSet = new Set(
disallowedSpecial === "all" ? Object.keys(this.specialTokens).filter(
(x) => !allowedSpecialSet.has(x)
) : disallowedSpecial
);
if (disallowedSpecialSet.size > 0) {
const disallowedSpecialRegex = _Tiktoken.specialTokenRegex([
...disallowedSpecialSet
]);
const specialMatch = text.match(disallowedSpecialRegex);
if (specialMatch != null) {
throw new Error(
`The text contains a special token that is not allowed: ${specialMatch[0]}`
);
}
}
let start = 0;
while (true) {
let nextSpecial = null;
let startFind = start;
while (true) {
specialRegex.lastIndex = startFind;
nextSpecial = specialRegex.exec(text);
if (nextSpecial == null || allowedSpecialSet.has(nextSpecial[0]))
break;
startFind = nextSpecial.index + 1;
}
const end = (_a = nextSpecial == null ? void 0 : nextSpecial.index) != null ? _a : text.length;
for (const match of text.substring(start, end).matchAll(regexes)) {
const piece = this.textEncoder.encode(match[0]);
const token2 = this.rankMap.get(piece.join(","));
if (token2 != null) {
ret.push(token2);
continue;
}
ret.push(...bytePairEncode(piece, this.rankMap));
}
if (nextSpecial == null)
break;
let token = this.specialTokens[nextSpecial[0]];
ret.push(token);
start = nextSpecial.index + nextSpecial[0].length;
}
return ret;
}
decode(tokens) {
var _a;
const res = [];
let length = 0;
for (let i2 = 0; i2 < tokens.length; ++i2) {
const token = tokens[i2];
const bytes = (_a = this.textMap.get(token)) != null ? _a : this.inverseSpecialTokens[token];
if (bytes != null) {
res.push(bytes);
length += bytes.length;
}
}
const mergedArray = new Uint8Array(length);
let i = 0;
for (const bytes of res) {
mergedArray.set(bytes, i);
i += bytes.length;
}
return this.textDecoder.decode(mergedArray);
}
};
var Tiktoken = _Tiktoken;
__publicField2(Tiktoken, "specialTokenRegex", (tokens) => {
return new RegExp(tokens.map((i) => escapeRegex(i)).join("|"), "g");
});
// node_modules/js-tiktoken/dist/index.js
var gpt2_default = { "explicit_n_vocab": 50257, "pat_str": "'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+", "special_tokens": { "<|endoftext|>": 50256 }, "bpe_ranks": "! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vc3Q= IGRpZA== IGFkZA== amVjdA== IGluYw== Zm9yZQ== IHBvbA== b250 IGFnYWlu Y2x1ZA== dGVybg== IGtub3c= IG5lZWQ= IGNvbnM= IGNv IC4= IHdhbnQ= IHNlZQ== IDc= bmluZw== aWV3 IFRoaXM= Y2Vk IGV2ZW4= IGluZA== dHk= IFdl YXRo IHRoZXNl IHBy IHVzZQ== IGJlY2F1c2U= IGZs bmc= IG5vdw== IOKAkw== Y29t aXNl IG1ha2U= IHRoZW4= b3dlcg== IGV2ZXJ5 IFVu IHNlYw== b3Nz dWNo IGVt ID0= IFJl aWVk cml0 IGludg== bGVjdA== IHN1cHA= YXRpbmc= IGxvb2s= bWFu cGVjdA== IDg= cm93 IGJ1 IHdoZXJl aWZpYw== IHllYXJz aWx5 IGRpZmY= IHNob3VsZA== IHJlbQ== VGg= SW4= IGV2 ZGF5 J3Jl cmli IHJlbA== c3M= IGRlZg== IHJpZ2h0 IHN5 KSw= bGVz MDAw aGVu IHRocm91Z2g= IFRy X18= IHdheQ== IGRvbg== ICw= IDEw YXNlZA== IGFzcw== dWJsaWM= IHJlZw== IEFuZA== aXg= IHZlcnk= IGluY2x1ZA== b3RoZXI= IGltcA== b3Ro IHN1Yg== IOKAlA== IGJlaW5n YXJn IFdo PT0= aWJsZQ== IGRvZXM= YW5nZQ== cmFt IDk= ZXJ0 cHM= aXRlZA== YXRpb25hbA== IGJy IGRvd24= IG1hbnk= YWtpbmc= IGNhbGw= dXJpbmc= aXRpZXM= IHBo aWNz YWxz IGRlYw== YXRpdmU= ZW5lcg== IGJlZm9yZQ== aWxpdHk= IHdlbGw= IG11Y2g= ZXJzb24= IHRob3Nl IHN1Y2g= IGtl IGVuZA== IEJ1dA== YXNvbg== dGluZw== IGxvbmc= ZWY= IHRoaW5r eXM= IGJlbA== IHNt aXRz YXg= IG93bg== IHByb3Y= IHNldA== aWZl bWVudHM= Ymxl d2FyZA== IHNob3c= IHByZXM= bXM= b21ldA== IG9i IHNheQ== IFNo dHM= ZnVs IGVmZg== IGd1 IGluc3Q= dW5k cmVu Y2Vzcw== IGVudA== IFlvdQ== IGdvb2Q= IHN0YXJ0 aW5jZQ== IG1hZGU= dHQ= c3RlbQ== b2xvZw== dXA= IHw= dW1w IGhlbA== dmVybg== dWxhcg== dWFsbHk= IGFj IG1vbg== IGxhc3Q= IDIwMA== MTA= IHN0dWQ= dXJlcw== IEFy c2VsZg== YXJz bWVyaWM= dWVz Y3k= IG1pbg== b2xsb3c= IGNvbA== aW8= IG1vZA== IGNvdW50 IENvbQ== aGVz IGZpbg== YWly aWVy 4oCU cmVhZA== YW5r YXRjaA== ZXZlcg== IHN0cg== IHBvaW50 b3Jr IE5ldw== IHN1cg== b29s YWxr ZW1lbnQ= IHVzZWQ= cmFjdA== d2Vlbg== IHNhbWU= b3Vu IEFs Y2k= IGRpZmZlcmU= IHdoaWxl LS0tLS0tLS0= IGdhbWU= Y2VwdA== IHNpbQ== Li4u IGludGVy ZWs= IHJlcG9ydA== IHByb2R1 IHN0aWxs bGVk YWg= IGhlcmU= IHdvcmxk IHRob3VnaA== IG51bQ== YXJjaA== aW1lcw== YWxl IFNl IElm Ly8= IExl IHJldA== IHJlZg== IHRyYW5z bmVy dXRpb24= dGVycw== IHRha2U= IENs IGNvbmY= d2F5 YXZl IGdvaW5n IHNs dWc= IEFtZXJpYw== IHNwZWM= IGhhbmQ= IGJldHdlZW4= aXN0cw== IERl b290 SXQ= IGVhcg== IGFnYWluc3Q= IGhpZ2g= Z2Fu YXo= YXRoZXI= IGV4cA== IG9w IGlucw== IGdy IGhlbHA= IHJlcXU= ZXRz aW5z IFBybw== aXNt IGZvdW5k bGFuZA== YXRh dXNz YW1lcw== IHBlcnNvbg== IGdyZWF0 cHI= IHNpZ24= IEFu J3Zl IHNvbWV0 IHNlcg== aGlw IHJ1bg== IDo= IHRlcg== aXJlY3Q= IGZvbGxvdw== IGRldA== aWNlcw== IGZpbmQ= MTI= IG1lbQ== IGNy ZXJlZA== ZXg= IGV4dA== dXRo ZW5zZQ== Y28= IHRlYW0= dmluZw== b3VzZQ== YXNo YXR0 dmVk IHN5c3RlbQ== IEFz ZGVy aXZlcw== bWlu IGxlYWQ= IEJs Y2VudA== IGFyb3VuZA== IGdvdmVybg== IGN1cg== dmVsb3A= YW55 IGNvdXI= YWx0aA== YWdlcw== aXpl IGNhcg== b2Rl IGxhdw== IHJlYWQ= J20= Y29u IHJlYWw= IHN1cHBvcnQ= IDEy Li4uLg== IHJlYWxseQ== bmVzcw== IGZhY3Q= IGRheQ== IGJvdGg= eWluZw== IHNlcnY= IEZvcg== IHRocmVl IHdvbQ== IG1lZA== b2R5 IFRoZXk= NTA= IGV4cGVy dG9u IGVhY2g= YWtlcw== IGNoZQ== IGNyZQ== aW5lcw== IHJlcA== MTk= Z2c= aWxsaW9u IGdyb3U= dXRl aWs= V2U= Z2V0 RVI= IG1ldA== IHNheXM= b3g= IGR1cmluZw== ZXJu aXplZA== YXJlZA== IGZhbQ== aWNhbGx5 IGhhcHA= IElz IGNoYXI= bWVk dmVudA== IGdlbmVy aWVudA== cGxl aWV0 cmVudA== MTE= dmVz cHRpb24= IDIw Zm9ybWF0aW9u IGNvcg== IG9mZmlj aWVsZA== IHRvbw== aXNpb24= IGluZg== IFo= dGhl b2Fk IHB1YmxpYw== IHByb2c= cmlj Kio= IHdhcg== IHBvd2Vy dmlldw== IGZldw== IGxvYw== IGRpZmZlcmVudA== IHN0YXRl IGhlYWQ= J2xs IHBvc3M= IHN0YXQ= cmV0 YW50cw== IHZhbA== IGlzcw== IGNsZQ== aXZlcnM= YW5j IGV4cGw= IGFub3RoZXI= IFE= IGF2 dGhpbmc= bmNl V2g= IGNoaWxk IHNpbmNl aXJlZA== bGVzcw== IGxpZmU= IGRldmVsb3A= aXR0bGU= IGRlcA== IHBhc3M= 44M= IHR1cm4= b3Ju VGhpcw== YmVycw== cm9zcw== IEFk IGZy IHJlc3A= IHNlY29uZA== b2g= IC8= IGRpc2M= ICY= IHNvbWV0aGluZw== IGNvbXBsZQ== IGVk IGZpbA== IG1vbnRo YWo= dWM= IGdvdmVybm1lbnQ= IHdpdGhvdXQ= IGxlZw== IGRpc3Q= IHB1dA== IHF1ZXN0 YW5u IHByb3Q= MjA= IG5ldmVy aWVuY2U= IGxldmVs IGFydA== IHRoaW5ncw== IG1pZ2h0 IGVmZmVjdA== IGNvbnRybw== IGNlbnQ= IDE4 IGFsbG93 IGJlbGll Y2hvb2w= b3R0 IGluY3Jl IGZlZWw= IHJlc3VsdA== IGxvdA== IGZ1bg== b3Rl IHR5 ZXJlc3Q= IGNvbnRpbg== IHVzaW5n IGJpZw== MjAx IGFzaw== IGJlc3Q= ICk= SU4= IG9wcA== MzA= IG51bWJlcg== aW5lc3M= U3Q= bGVhc2U= IGNh IG11c3Q= IGRpcmVjdA== IGds IDw= IG9wZW4= IHBvc3Q= IGNvbWU= IHNlZW0= b3JkaW5n IHdlZWs= YXRlbHk= aXRhbA== IGVs cmllbmQ= IGZhcg== IHRyYQ== aW5hbA== IHByaQ== IFVT IHBsYWNl IGZvcm0= IHRvbGQ= Ijo= YWlucw== YXR1cmU= IFRydW1w IHN0YW5k ICM= aWRlcg== IEZy IG5leHQ= IHNvYw== IHB1cg== IGxldA== IGxpdHRsZQ== IGh1bQ== IGk= cm9u MTU= IDE1 IGNvbW11bg== IG1hcms= IFRoZXJl IHdy IFRoYXQ= IGluZm9ybWF0aW9u d2F5cw== IGJ1cw== YXBw IGludmVzdA== bWU= IGhhcmQ= YWluZWQ= ZWFk IGltcG9ydA== IGFwcHJv IHRlc3Q= IHRyaQ== IHJlc3Q= b3NlZA== IGZ1bGw= IGNhcmU= IFNw IGNhc2U= T04= IHNr IGxlc3M= ICs= IHBhcnRpYw== IFBs YWJseQ== dWNr aXNoZWQ= Y2hu YmU= IGxpc3Q= YXRvcg== IHRvcA== IGFkdg== IEJl cnVjdA== IGRlbQ== cmF0aW9u bGluZw== Z3k= cmVlbg== Z2Vy IGhvbWU= IGxlZnQ= IGJldHRlcg== IGRhdGE= IDEx IGF0dGFjaw== IHByb2JsZQ== bGluZQ== YXJkcw== IGJlaA== cmFs IEhvdw== IFNoZQ== YXJnZQ== IC0t Oi8v IGJybw== IFBo YXRz IGJ1aWxk d3c= aWRlZA== YWlt YXNlcw== ZW5jeQ== IG1haW4= aW5lZA== IGluY2x1ZGluZw== IHs= IGdvdA== IGludGVyZXN0 IGtlZXA= IFg= IGVhcw== YWluaW5n IGNsYXNz 4oCm IE5v IHZhcg== IHNtYWxs YW1wbGU= QVQ= IGlkZQ== IFNv IHJlY2U= IHBvbGl0 IG1vdg== IHBsYW4= IHBlcmNlbnQ= aXZpbmc= IGNhbXA= IHBheQ== MTQ= c2M= aXNlZA== IHVudA== b25leQ== cGxveQ== PT09PQ== IGRpZG4= IEluZA== ZWxz ZXJ0YWlu IHBvcw== X19fXw== aXZlcg== IHByb2Nlc3M= IHByb2dyYW0= aWZpZWQ= IFJlcA== MTY= dXJv b2xvZ3k= YXR0ZXI= aW5h IG5hbWU= IEFsbA== IGZvdXI= IHJldHVybg== dmlvdXM= YnM= IGNhbGxlZA== IG1vdmU= IFNj aXJk IGdyb3Vw IGJyZQ== IG1lbg== IGNhcA== dGVu ZWU= IGRyaQ== bGVn aGVyZQ== dXRob3I= IHBhdA== IGN1cnJlbnQ= aWRlcw== IHBvcA== dG8= ZW50aW9u IGFsd2F5cw== IG1pbA== IHdvbWVu IDE2 IG9sZA== aXZlbg== cmFwaA== IE9y cm9y ZW50bHk= IG5lYXI= IEV4 cmVhbQ== c2g= IDE0 IGZyZWU= aXNzaW9u c3RhbmQ= IENvbg== YWxpdHk= dXNlZA== MTM= IGRlc2lnbg== IGNoYW5nZQ== IGNoYW5n IGJv IHZpcw== ZW1iZXI= IGJvb2s= cmVhZHk= IGtpbGw= MjU= cHBlZA== IGF3YXk= IGFibGU= IGNvdW50cnk= IGNvbnN0 YXJu IG9yZGVy QVI= aW9y aXVt b3J0aA== MTg= YWlsYWJsZQ== IHN3 IG1pbGxpb24= IDEz YXRpYw== dGVk IEdv IG9wZXI= ZW5n IHRoaW5n YWpvcg== Y29ub20= IENvbW0= IHdoeQ== dXJlZA== dXJhbA== IHNjaG9vbA== Ynk= IE1hcg== IGFmZg== IGRheXM= IGFubg== dXNo YW5l SWY= ZWc= IHByb2Y= IGhlYWx0aA== b3V0aA== QnV0 aW9uYWw= Liw= IHNvbA== IGFscmVhZHk= IDMw IGNoYXJhY3Q= SGU= IGZyaWVuZA== RVM= aWFucw== aWNsZQ== J2Q= IE9u IGxlYXN0 IHByb20= IGRy IGhpc3Q= aXRoZXI= IGVzdA== aXF1 MTc= c29u IHRlbGw= IHRhbGs= b2hu b2ludA== bGVjdGlvbg== QU4= IHVudGls YXVnaA== IGxhdGVy IHZl IHZpZXc= ZW5kaW5n aXZlZA== IHdvcmQ= d2FyZQ== IGNvc3Q= IGVub3VnaA== IGdpdmU= IFVuaXRlZA== IHRlY2hu YXJlbnQ= T1I= IHBhcg== IERy IDIwMTY= cmlzdA== ZXJpbmc= IMI= IGxhcmdl c2lkZQ== YWN5 Y2Nlc3M= IHdpbg== IGltcG9ydGFudA== IDE5OQ== IGRvZXNu IDE3 IGJ1c2luZXNz IGNsZWFy IHJlc2U= Iiw= dXJ5 IGVxdQ== YXN0ZXI= YWxm IEFtZXJpY2Fu bmVjdA== IGV4cGVjdA== aXZlcnNpdHk= IG9jYw== IEZs IGtpbmQ= IG1lYW4= IHBhc3Q= IGRldg== IGJhcw== bGV0 cmFmdA== IG9yZ2Fu IGRlbA== IHBlcmZvcm0= IHN0b3J5 IHNlYXNvbg== IENvbA== IGNsYWlt IGNhbWU= IHdpdGhpbg== IGxpbmU= IHByb2plY3Q= IEF0 IGNvbnRyb2w= ZW5kZWQ= IFN5 IGFpcg== aXphdGlvbg== ICo= bGV5 IG1vbmV5 aWRk WW91 Zm9y IGZhbWlseQ== IG1ha2luZw== IGJpdA== IHBvbGljZQ== IGhhcHBlbg== IHZlcnM= b255 dWZm IFdoZW4= IHNpdA== aWRlbw== bGY= aXNvbg== IHN1cmU= Z2lu IGFwcGVhcg== IGxpZ2h0 IGVz b2Y= IHdhdGVy IHRpbWVz bm90 IGdyb3c= IGNvbXBhbnk= IFRl b3dz IG1hcg== b3VyY2U= aW9s YXJt YnI= IGV4YW1wbGU= IGNvbmM= IGZvcmU= IFRv cHJv RU4= cmllcw== IDI1 IENhbg== bmV5 IGFjdHVhbGx5 IGV2ZXI= dXJpdHk= YWtlbg== YXBz IHRheA== IG1ham9y YW1h IG9mdGVu ZXJhbA== IGh1bWFu IGpvYg== aXN0ZXI= IGF2YWlsYWJsZQ== b2Ny ZW5u YWlk aXZpZA== IHJlY29yZA== PyI= IHNpbmc= IEFt aWRlbmNl IG5ld3M= c3Rlcg== IGVjb25vbQ== IGZvbGxvd2luZw== IEJy aXNpbmc= IGhvdXI= bW9zdA== dW1lbnQ= IHNleA== IGRlc2M= IGJlY29tZQ== IEVk IHRvb2s= IGhhdmluZw== IHByb2R1Y3Q= YXVsdA== QXM= YXJpbmc= IG1lYW5z IGhvcA== dW5l IGNobw== IGNlcnRhaW4= IG5vbg== IGRlYWw= MjQ= bGVtZW50 b2Np ZW5l IHNpZGU= IFBy IE1heQ== IHJlYXNvbg== dWVk Y2hlZA== dWxhdGlvbg== IGVsZWN0 IG9mZmljaWFs IHBvc3NpYmxl IGhvbGQ= YW5kcw== b3Rz IGNpdHk= b3JpZXM= IHNldmVy IGNoaWxkcmVu IG9uY2U= IGFjdGl2 bGVy IG5pZ2h0 aXRpb25z IEpvaG4= YXBl cGxheQ== IGRvbmU= IGxpbQ== IHdvcmtpbmc= IFByZXM= b3JsZA== ZWI= IENv IGJvZHk= YWlscw== dXRlcw== IE1y IHdoZXRoZXI= IGF1dGhvcg== cm9w IHByb3Blcg== IHNlZW4= KTs= IGZhYw== IFN1 IGNvbmQ= aXRpbmc= IGNvdXJzZQ== IH0= LS0tLS0tLS0tLS0tLS0tLQ== YWlnbg== IGV2ZW50 IGVuZw== IHBvdA== IGludGVybg== aWFt IHNob3J0 ZW1wdA== 44I= IEdvZA== aWxhcg== ODA= IG9yaWc= SVM= b3Vybg== YWJpbGl0eQ== aXRpdmU= IGRhbQ== IDEwMA== IHByZXNz IGRvaW5n IHByb3RlY3Q= cmluZw== IHRob3VnaHQ= IHF1ZXN0aW9u cmV3 IFdhcg== IHNldmVyYWw= IFN0YXRl IGdpdmVu IGZ1bmQ= IFR3 IHdlbnQ= YW5jZXM= d29yaw== cG9y bXk= NDA= IGFyZw== YXJ0bWVudA== dXN0b20= IHBvbGlj IG1lZXQ= IGNyZWF0 MjI= IFN0YXRlcw== IGdhbWVz cmF3 dXR1cmU= IHVuZGVyc3RhbmQ= dXJz IE9i bGlzaA== c3k= IG1ha2Vz IHdvbg== YWdvbg== IGh0dA== IGxvdmU= ZW50aWFs IGNvbXBsZXRl cGFy IElt QUw= IGFjY291bnQ= wqA= b3JlZA== dmVydA== IGlkZW50 IDIwMTU= IG90aGVycw== IE1pbg== aWJlcg== dmVyYWdl VGhlcmU= aXRpb25hbA== ZGQ= IHByb2I= IHlvdW5n IGFsb25n IGFjY29yZGluZw== IHlldA== IG1lbWJlcnM= IFdoYXQ= b2lk IE1hbg== QW5k IGFtb25n YWk= IGVtcGxveQ== IFJlcw== ID4= IGludm9s IGxvdw== YWY= IENhcg== IGhpZw== IE9uZQ== IFNlYw== aW5hdGlvbg== IGxpa2VseQ== IGFudA== YWdlZA== IFJ1c3M= IGJlbg== IHJlbGU= Rm9y YmFjaw== IE5vdA== IHByZXNpZGVudA== YmFsbA== IGFjY2Vzcw== aXZpZHVhbA== IERlbQ== IEV1cm8= NjA= IGtub3du aXJs IEdy IGVhcmx5 dXNl aWV0eQ== 4oCT IGZpZ2h0 IHNlbnQ= IHRvZGF5 IG1hcmtldA== Ii4= IGJhc2Vk IHN0cm9uZw== dXJ0aGVy IGRlYg== bWJlcg== IHByb2JsZW0= IGRlYXRo IHNvY2lhbA== aW1hdGU= QVM= b3J0dW4= IGNhbXBhaWdu ZXJ5 Q2g= IGV5 aWFsbHk= IG11cw== d2g= cG9z IGVy IHNhZg== IG1vbnRocw== aXJvbg== IHZpb2w= IGZpdmU= IHN0cmU= IHBsYXllcnM= aW5j YWxk eWVhcg== YXVu IHN1Y2Nlc3M= IHByZXNlbnQ= ZXJlbmNl IDIwMTQ= IHN1Z2c= IHBhcnRpY3VsYXI= IHRyeQ== IHN1Z2dlc3Q= IENocmlzdA== b25lcw== IHByaXY= MjM= IGNyaXQ= IGxhbmQ= IGxvY2Fs aWZ5 Mjk= IGF1dA== RUQ= IEd1 IG11bHQ= IHBvbGl0aWNhbA== IGFza2Vk IGZvcm1lcg== aXR0ZXI= cmlwdA== IGNsb3Nl IHByYWN0 IFlvcms= IGdldHRpbmc= IGFjcm9zcw== IGNvbWI= IGJlbGlldmU= IHo= IHRvZ2V0 IHRvZ2V0aGVy IENlbnQ= aXJj IGluZGl2aWR1YWw= IE1j Mjc= aXNr IEVuZw== IGZhY2U= IDI0 IHZhbHVl IGFyZWE= ZXY= IHdyaXQ= IFByZXNpZGVudA== IHZvdA== IGtleQ== IG1vbQ== cHV0 IGFueXRoaW5n IGV4cGVyaWVuY2U= YXR0bGU= IG1pbmQ= YWZm b21t IGZ1dHVyZQ== Z2Vk IGN1dA== IHRvdA== aXRjaA== IHZpZGVv IGludmVzdGln IG5ldA== IE15 cmljdA== aWVu Lik= IGltcHJv dGhvdWdo d2FyZHM= IGNvbm5lY3Q= IE1lZA== c2VsdmVz ZW5zaXZl bWI= b2Jlcg== YXRvcnM= QW4= IDUw IHJlZHU= cmVzZW50 IGFib3Zl IGZyZQ== IEV1cm9wZQ== c3c= IGFtb3VudA== IEFwcA== IGVpdGhlcg== IG1pbGl0 IGFuYWw= IGZhaWw= IEVu YWxlcw== IHNwZWNpYWw= IGJsYWNr SVQ= Y2hlcg== IGxvb2tpbmc= IGZpcmU= eW4= IGFsbW9zdA== b29u IHN0dWR5 IG1pc3M= Y2hlcw== cm93bg== IHRyZQ== IGNvbW11bml0eQ== IG1lZGlh IGZvb2Q= IGNvbWVz IFVuaXZlcnNpdHk= IHNpbmdsZQ== V2hhdA== dWx5 IGhhbGY= YWd1ZQ== aG9k IFJlcHVibGlj IHN0YXJ0ZWQ= IHF1aWNr b3Rv Ym9vaw== IGlzc3Vl aXRvcg== IGVsc2U= IGNvbnNpZGVy MjY= cm9kdQ== IHRha2Vu Mjg= OTk= IFdpdGg= IHRydWU= IHdh IHRyYWQ= IGFnbw== IG1lc3M= aWVm IGFkZGVk b2tl IGJhZA== IGZhdg== MzM= IHNpbWlsYXI= YXNr IERvbg== IGNoYXJhY3Rlcg== b3J0cw== IEhvdXNl IHJlcG9ydGVk IHR5cGU= dmFs aW9k IEhvd2V2ZXI= IHRhcmc= IGVudGlyZQ== cHBpbmc= IGhpc3Rvcnk= IGxpdmU= ZmZpYw== Li4uLi4uLi4= ZWRlcmFs IHRyeWluZw== IGRpc2N1c3M= IEhhcg== YWNlcw== bGlzaGVk IHNlbGY= b3Nw cmVzdA== IHJvb20= ZWx0 IGZhbGw= b2x1dGlvbg== IGV0 IHg= IGlzbg== IGlkZWE= Ym8= IHNvdW5k IERlcA== IHNvbWVvbmU= Y2lhbGx5 dWxseQ== IGZvYw== IG9iamVjdA== aWZ0 YXBlcg== IHBsYXllcg== IHJhdGhlcg== IHNlcnZpY2U= YXNoaW5n IERv IFBhcnQ= cnVn bW9u cGx5 IG1vcg== IG5vdGhpbmc= IHByb3ZpZGU= SUM= dW5n IHBhcnR5 IGV4aXN0 IG1hZw== NzA= IHJ1bA== IGhvdXNl IGJlaGluZA== IGhvd2V2ZXI= IFdvcmxk IHN1bQ== IGFwcGxpYw== IDs= IGZ1bmN0aW9u Z3I= IFBvbA== IGZyb250 MjAw IHNlcmllcw== IHRlbQ== IHR5cA== aWxscw== IG9wdA== IHBvaW50cw== IGJlbG93 aXR0ZWQ= IHNwZWNpZmlj IDIwMTc= dW1i IHJh IHByZXZpb3Vz IHByZXQ= cmVtZQ== IGN1c3RvbQ== IGNvdXJ0 IE1l IHJlcGw= IHdob2xl Z28= Y2Vy IHRyZWF0 IEFjdA== IHByb2JhYmx5 IGxlYXJu ZW5kZXI= IEFzcw== IHZlcnNpb24= bm93 IGNoZWNr IENhbA== UkU= bWluaXN0 T24= b3VyY2Vz IGJlbmVm IGRvYw== IGRldGVy IGVuYw== IHN1cGVy IGFkZHJlc3M= IHZpY3Q= IDIwMTM= IG1lYXM= dHI= IGZpZWxk V2hlbg== IHNpZ25pZmlj dWdl IGZlYXQ= IGNvbW1vbg== bG9hZA== IGJlZ2lu IGJyaW5n IGFjdGlvbg== ZXJtYW4= IGRlc2NyaWI= IGluZHVzdA== IHdhbnRlZA== cmllZA== bWluZw== IGF0dGVtcHQ= NDU= ZmVy IGR1ZQ== cmVzc2lvbg== IyM= IHNoYWxs IHNpeA== b28= IHN0ZXA= IHB1Yg== IGhpbXNlbGY= IDIz IGNvcA== IGRlc3Q= IHN0b3A= QUM= aWJpbGl0eQ== IGxhYg== aWN1bHQ= IGhvdXJz IGNyZWF0ZQ== IGZ1cnRoZXI= IEFtZXJpY2E= IENpdHk= IGRvdQ== aGVhZA== U1Q= IE5vcnRo Y2luZw== IG5hdGlvbmFs dWxl IEluc3Q= IHRha2luZw== IFF1 aXJ0 IHJlZA== IHJlc2VhcmNo dmlyb24= IEdl IGJyZWFr YW5h IHNwYWNl YXRlcmlhbA== IHJlY2VudA== IEFi IGdlbmVyYWw= IGhpdA== IHBlcmlvZA== IGV2ZXJ5dGhpbmc= aXZlbHk= IHBoeXM= IHNheWluZw== YW5rcw== IGNvdQ== IGN1bHQ= YWNlZA== ZWFs dWF0aW9u IGNvdW4= bHU= IGluY2x1ZGU= IHBvc2l0aW9u IEFmdGVy IENhbmFk IEVt IGltbQ== IFJlZA== IHBpY2s= IGNvbXBs IG1hdHRlcg== cmVn ZXh0 YW5ndQ== aXNj b2xl YXV0 IGNvbXBldA== ZWVk ZmVjdA== IDIx IFNlbg== IFRoZXNl YXNpbmc= IGNhbm5vdA== IGluaXQ= IHJlbGF0aW9ucw== YWNoZWQ= IGJhcg== IDQw IFRI IDIwMTI= IHZvbA== IGdyb3VuZA== IHNlY3VyaXR5 IHVwZA== aWx0 MzU= IGNvbmNlcm4= IEp1c3Q= IHdoaXRl IHNlZW1z IEhlcg== cGVjaWFsbHk= aWVudHM= IGFubm91bg== IGZpZw== aWdodHM= IHN0cmk= bGlrZQ== aWRz IHN1cw== IHdhdGNo IOI= IHdpbmQ= IENvbnQ= IGl0c2VsZg== IG1hc3M= QWw= eWxl aXF1ZQ== IE5hdGlvbmFs IGFicw== IHBhY2s= IG91dHNpZGU= IGFuaW0= IHBhaW4= ZXRlcg== IG1hbmFn ZHVjdA== b2du IF0= IFNlcHQ= c2Vj b2Zm IEphbg== IGZvb3Q= YWRlcw== IHRoaXJk IG1vdA== IGV2aWRlbmNl aW50b24= IHRocmVhdA== YXB0 cGxlcw== Y2xl IGxv IGRlY2w= IGl0ZW0= bWVkaQ== IHJlcHJlc2VudA== b21i YW1lcg== IHNpZ25pZmljYW50 b2dyYXBo c3U= IGNhbA== aXJlcw== MDAwMA== SUQ= QU0= IHNpbXBseQ== IGxvbmdlcg== IGZpbGU= T1Q= Y2hl U28= YXRlZw== b3Jn IEhpcw== IGVuZXI= IGRvbQ== IHVwb24= aWxp Ijoi IHRoZW1zZWx2ZXM= IGNvbWluZw== IHF1aXRl