@launchdarkly/js-sdk-common 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/internal/events/ClientMessages.d.ts +1 -0
- package/dist/internal/events/ClientMessages.d.ts.map +1 -1
- package/dist/internal/events/ClientMessages.js +4 -0
- package/dist/internal/events/ClientMessages.js.map +1 -1
- package/dist/utils/cancelableTimedPromise.d.ts +20 -0
- package/dist/utils/cancelableTimedPromise.d.ts.map +1 -0
- package/dist/utils/cancelableTimedPromise.js +30 -0
- package/dist/utils/cancelableTimedPromise.js.map +1 -0
- package/dist/utils/http.js +1 -1
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@launchdarkly/js-sdk-common` will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org).
|
|
4
4
|
|
|
5
|
+
## [2.5.0](https://github.com/launchdarkly/js-core/compare/js-sdk-common-v2.4.2...js-sdk-common-v2.5.0) (2024-06-04)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* Add support for a cancel-able timeout. ([#476](https://github.com/launchdarkly/js-core/issues/476)) ([24ecf1d](https://github.com/launchdarkly/js-core/commit/24ecf1d74b01e1fb32cd250689f17f96d1af1f50))
|
|
11
|
+
|
|
12
|
+
## [2.4.2](https://github.com/launchdarkly/js-core/compare/js-sdk-common-v2.4.1...js-sdk-common-v2.4.2) (2024-04-26)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* Handle missing message with valid string. ([#450](https://github.com/launchdarkly/js-core/issues/450)) ([6ff8982](https://github.com/launchdarkly/js-core/commit/6ff8982d5a68f1fff4b8fcafc3eb015a75d3f002))
|
|
18
|
+
* Produce a warning when track is called with a non-numeric metric value. ([#449](https://github.com/launchdarkly/js-core/issues/449)) ([6799742](https://github.com/launchdarkly/js-core/commit/6799742a7914d32b3313e54408f0a2a3dda3ff5c))
|
|
19
|
+
|
|
5
20
|
## [2.4.1](https://github.com/launchdarkly/js-core/compare/js-sdk-common-v2.4.0...js-sdk-common-v2.4.1) (2024-04-09)
|
|
6
21
|
|
|
7
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientMessages.d.ts","sourceRoot":"","sources":["../../../src/internal/events/ClientMessages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,mEAC0B;
|
|
1
|
+
{"version":3,"file":"ClientMessages.d.ts","sourceRoot":"","sources":["../../../src/internal/events/ClientMessages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,mEAC0B;IAElE,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM;CAM1C"}
|
|
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
* Messages for issues which can be encountered processing client requests.
|
|
5
5
|
*/
|
|
6
6
|
class ClientMessages {
|
|
7
|
+
static invalidMetricValue(badType) {
|
|
8
|
+
return ('The track function was called with a non-numeric "metricValue"' +
|
|
9
|
+
` (${badType}), only numeric metric values are supported.`);
|
|
10
|
+
}
|
|
7
11
|
}
|
|
8
12
|
ClientMessages.missingContextKeyNoEvent = 'Context was unspecified or had no key; event will not be sent';
|
|
9
13
|
exports.default = ClientMessages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientMessages.js","sourceRoot":"","sources":["../../../src/internal/events/ClientMessages.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,cAAc;;
|
|
1
|
+
{"version":3,"file":"ClientMessages.js","sourceRoot":"","sources":["../../../src/internal/events/ClientMessages.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,cAAc;IAIjC,MAAM,CAAC,kBAAkB,CAAC,OAAe;QACvC,OAAO,CACL,gEAAgE;YAChE,KAAK,OAAO,8CAA8C,CAC3D,CAAC;IACJ,CAAC;;AARe,uCAAwB,GACtC,+DAA+D,CAAC;kBAF/C,cAAc"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { VoidFunction } from './VoidFunction';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a timeout that can be cancelled.
|
|
4
|
+
*
|
|
5
|
+
* When racing a timeout, and another task completes before the timeout,
|
|
6
|
+
* then the timeout should be cancelled. This prevents leaving open handles
|
|
7
|
+
* which can stop the runtime from exiting.
|
|
8
|
+
*/
|
|
9
|
+
export interface CancelableTimeout {
|
|
10
|
+
promise: Promise<void>;
|
|
11
|
+
cancel: VoidFunction;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns a promise which errors after t seconds.
|
|
15
|
+
*
|
|
16
|
+
* @param t Timeout in seconds.
|
|
17
|
+
* @param taskName Name of task being timed for logging and error reporting.
|
|
18
|
+
*/
|
|
19
|
+
export declare function cancelableTimedPromise(t: number, taskName: string): CancelableTimeout;
|
|
20
|
+
//# sourceMappingURL=cancelableTimedPromise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancelableTimedPromise.d.ts","sourceRoot":"","sources":["../../src/utils/cancelableTimedPromise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiBrF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cancelableTimedPromise = void 0;
|
|
4
|
+
const errors_1 = require("../errors");
|
|
5
|
+
/**
|
|
6
|
+
* Returns a promise which errors after t seconds.
|
|
7
|
+
*
|
|
8
|
+
* @param t Timeout in seconds.
|
|
9
|
+
* @param taskName Name of task being timed for logging and error reporting.
|
|
10
|
+
*/
|
|
11
|
+
function cancelableTimedPromise(t, taskName) {
|
|
12
|
+
let timeout;
|
|
13
|
+
let resolve;
|
|
14
|
+
const promise = new Promise((_res, reject) => {
|
|
15
|
+
resolve = _res;
|
|
16
|
+
timeout = setTimeout(() => {
|
|
17
|
+
const e = `${taskName} timed out after ${t} seconds.`;
|
|
18
|
+
reject(new errors_1.LDTimeoutError(e));
|
|
19
|
+
}, t * 1000);
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
promise,
|
|
23
|
+
cancel: () => {
|
|
24
|
+
resolve();
|
|
25
|
+
clearTimeout(timeout);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.cancelableTimedPromise = cancelableTimedPromise;
|
|
30
|
+
//# sourceMappingURL=cancelableTimedPromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancelableTimedPromise.js","sourceRoot":"","sources":["../../src/utils/cancelableTimedPromise.ts"],"names":[],"mappings":";;;AAAA,sCAA2C;AAe3C;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,CAAS,EAAE,QAAgB;IAChE,IAAI,OAAsC,CAAC;IAC3C,IAAI,OAAqB,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACjD,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,GAAG,GAAG,QAAQ,oBAAoB,CAAC,WAAW,CAAC;YACtD,MAAM,CAAC,IAAI,uBAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,MAAM,EAAE,GAAG,EAAE;YACX,OAAO,EAAE,CAAC;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAjBD,wDAiBC"}
|
package/dist/utils/http.js
CHANGED
|
@@ -29,7 +29,7 @@ function httpErrorMessage(err, context, retryMessage) {
|
|
|
29
29
|
desc = `error ${err.status}${err.status === 401 ? ' (invalid SDK key)' : ''}`;
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
desc = `I/O error (${err.message ||
|
|
32
|
+
desc = `I/O error (${err.message || 'unknown error'})`;
|
|
33
33
|
}
|
|
34
34
|
const action = retryMessage !== null && retryMessage !== void 0 ? retryMessage : 'giving up permanently';
|
|
35
35
|
return `Received ${desc} for ${context} - ${action}`;
|
package/dist/utils/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":";;;AACA,sCAA8C;AAU9C,SAAgB,cAAc,CAC5B,MAAc,EACd,IAAU,EACV,IAAsB,EACtB,6BAAsC,IAAI;IAE1C,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAE/E,MAAM,OAAO,GAAc;QACzB,YAAY,EAAE,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,cAAc,IAAI,OAAO,EAAE;KAC9D,CAAC;IAEF,iEAAiE;IACjE,+CAA+C;IAC/C,IAAI,0BAA0B,EAAE;QAC9B,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;KAChC;IAED,IAAI,WAAW,EAAE;QACf,OAAO,CAAC,wBAAwB,CAAC,GAAG,cAAc;YAChD,CAAC,CAAC,GAAG,WAAW,IAAI,cAAc,EAAE;YACpC,CAAC,CAAC,WAAW,CAAC;KACjB;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE;QACf,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;KAC7C;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA7BD,wCA6BC;AAED,SAAgB,gBAAgB,CAC9B,GAAsB,EACtB,OAAe,EACf,YAAqB;IAErB,IAAI,IAAI,CAAC;IACT,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KAC/E;SAAM;QACL,IAAI,GAAG,cAAc,GAAG,CAAC,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":";;;AACA,sCAA8C;AAU9C,SAAgB,cAAc,CAC5B,MAAc,EACd,IAAU,EACV,IAAsB,EACtB,6BAAsC,IAAI;IAE1C,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAE/E,MAAM,OAAO,GAAc;QACzB,YAAY,EAAE,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,cAAc,IAAI,OAAO,EAAE;KAC9D,CAAC;IAEF,iEAAiE;IACjE,+CAA+C;IAC/C,IAAI,0BAA0B,EAAE;QAC9B,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;KAChC;IAED,IAAI,WAAW,EAAE;QACf,OAAO,CAAC,wBAAwB,CAAC,GAAG,cAAc;YAChD,CAAC,CAAC,GAAG,WAAW,IAAI,cAAc,EAAE;YACpC,CAAC,CAAC,WAAW,CAAC;KACjB;IAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE;QACf,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;KAC7C;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA7BD,wCA6BC;AAED,SAAgB,gBAAgB,CAC9B,GAAsB,EACtB,OAAe,EACf,YAAqB;IAErB,IAAI,IAAI,CAAC;IACT,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KAC/E;SAAM;QACL,IAAI,GAAG,cAAc,GAAG,CAAC,OAAO,IAAI,eAAe,GAAG,CAAC;KACxD;IACD,MAAM,MAAM,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,uBAAuB,CAAC;IACvD,OAAO,YAAY,IAAI,QAAQ,OAAO,MAAM,MAAM,EAAE,CAAC;AACvD,CAAC;AAbD,4CAaC;AAED,SAAgB,WAAW,CAAC,EAAE,MAAM,EAAqB;IACvD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,0BAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAFD,kCAEC;AAED;;;;;;;;GAQG;AACI,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,QAAkB,EAAU,EAAE,CACvE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AADjE,QAAA,eAAe,mBACkD"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cancelableTimedPromise, type CancelableTimeout } from './cancelableTimedPromise';
|
|
1
2
|
import clone from './clone';
|
|
2
3
|
import { secondsToMillis } from './date';
|
|
3
4
|
import debounce from './debounce';
|
|
@@ -8,5 +9,5 @@ import noop from './noop';
|
|
|
8
9
|
import sleep from './sleep';
|
|
9
10
|
import timedPromise from './timedPromise';
|
|
10
11
|
import { VoidFunction } from './VoidFunction';
|
|
11
|
-
export { base64UrlEncode, clone, debounce, deepCompact, defaultHeaders, fastDeepEqual, httpErrorMessage, noop, LDHeaders, shouldRetry, secondsToMillis, sleep, timedPromise, VoidFunction, };
|
|
12
|
+
export { base64UrlEncode, clone, debounce, deepCompact, defaultHeaders, fastDeepEqual, httpErrorMessage, noop, LDHeaders, shouldRetry, secondsToMillis, sleep, timedPromise, VoidFunction, type CancelableTimeout, cancelableTimedPromise, };
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnG,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EACL,eAAe,EACf,KAAK,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,eAAe,EACf,KAAK,EACL,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACnG,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EACL,eAAe,EACf,KAAK,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,eAAe,EACf,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,KAAK,iBAAiB,EACtB,sBAAsB,GACvB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.timedPromise = exports.sleep = exports.secondsToMillis = exports.shouldRetry = exports.noop = exports.httpErrorMessage = exports.fastDeepEqual = exports.defaultHeaders = exports.deepCompact = exports.debounce = exports.clone = exports.base64UrlEncode = void 0;
|
|
3
|
+
exports.cancelableTimedPromise = exports.timedPromise = exports.sleep = exports.secondsToMillis = exports.shouldRetry = exports.noop = exports.httpErrorMessage = exports.fastDeepEqual = exports.defaultHeaders = exports.deepCompact = exports.debounce = exports.clone = exports.base64UrlEncode = void 0;
|
|
4
|
+
const cancelableTimedPromise_1 = require("./cancelableTimedPromise");
|
|
5
|
+
Object.defineProperty(exports, "cancelableTimedPromise", { enumerable: true, get: function () { return cancelableTimedPromise_1.cancelableTimedPromise; } });
|
|
4
6
|
const clone_1 = require("./clone");
|
|
5
7
|
exports.clone = clone_1.default;
|
|
6
8
|
const date_1 = require("./date");
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAa1B,gBAbK,eAAK,CAaL;AAZP,iCAAyC;AAqBvC,gGArBO,sBAAe,OAqBP;AApBjB,yCAAkC;AAYhC,mBAZK,kBAAQ,CAYL;AAXV,+CAAwC;AAYtC,sBAZK,qBAAW,CAYL;AAXb,uDAA8C;AAa5C,wBAbK,yBAAa,CAaL;AAZf,iCAAmG;AAOjG,gGAPO,sBAAe,OAOP;AAIf,+FAXwB,qBAAc,OAWxB;AAEd,iGAbwC,uBAAgB,OAaxC;AAGhB,4FAhBqE,kBAAW,OAgBrE;AAfb,iCAA0B;AAaxB,eAbK,cAAI,CAaL;AAZN,mCAA4B;AAgB1B,gBAhBK,eAAK,CAgBL;AAfP,iDAA0C;AAgBxC,uBAhBK,sBAAY,CAgBL"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,qEAA0F;AA4BxF,uGA5BO,+CAAsB,OA4BP;AA3BxB,mCAA4B;AAa1B,gBAbK,eAAK,CAaL;AAZP,iCAAyC;AAqBvC,gGArBO,sBAAe,OAqBP;AApBjB,yCAAkC;AAYhC,mBAZK,kBAAQ,CAYL;AAXV,+CAAwC;AAYtC,sBAZK,qBAAW,CAYL;AAXb,uDAA8C;AAa5C,wBAbK,yBAAa,CAaL;AAZf,iCAAmG;AAOjG,gGAPO,sBAAe,OAOP;AAIf,+FAXwB,qBAAc,OAWxB;AAEd,iGAbwC,uBAAgB,OAaxC;AAGhB,4FAhBqE,kBAAW,OAgBrE;AAfb,iCAA0B;AAaxB,eAbK,cAAI,CAaL;AAZN,mCAA4B;AAgB1B,gBAhBK,eAAK,CAgBL;AAfP,iDAA0C;AAgBxC,uBAhBK,sBAAY,CAgBL"}
|