@squiz/optimization-utils 3.1.1 → 3.2.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/dist/array/__tests__/chunkify.test.js +23 -0
- package/dist/array/__tests__/chunkify.test.js.map +1 -1
- package/dist/array/chunkify.d.ts +1 -0
- package/dist/array/chunkify.js +3 -1
- package/dist/array/chunkify.js.map +1 -1
- package/dist/array/index.d.ts +1 -1
- package/dist/array/index.js +1 -1
- package/dist/array/index.js.map +1 -1
- package/dist/array/unique.d.ts +2 -0
- package/dist/array/unique.js +8 -0
- package/dist/array/unique.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/measurement/performance.d.ts +5 -0
- package/dist/measurement/performance.js +83 -0
- package/dist/measurement/performance.js.map +1 -0
- package/dist/types/class-utilities-types.d.ts +1 -1
- package/package.json +7 -3
- package/tsconfig-package.json +4 -0
- package/dist/array/uniqueWith.d.ts +0 -1
- package/dist/array/uniqueWith.js +0 -6
- package/dist/array/uniqueWith.js.map +0 -1
|
@@ -26,4 +26,27 @@ describe('Chunkify Function', () => {
|
|
|
26
26
|
expect(() => (0, chunkify_1.chunkify)(input, size)).toThrow('Size must be greater than 0');
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
|
+
describe('truncateTo', () => {
|
|
30
|
+
it('should truncate the array to the specified length', () => {
|
|
31
|
+
expect((0, chunkify_1.truncateTo)([1, 2, 3, 4, 5], 3)).toEqual([1, 2, 3]);
|
|
32
|
+
});
|
|
33
|
+
it('should return the original array if length is greater than array size', () => {
|
|
34
|
+
expect((0, chunkify_1.truncateTo)([1, 2, 3], 5)).toEqual([1, 2, 3]);
|
|
35
|
+
});
|
|
36
|
+
it('should return an empty array if length is 0', () => {
|
|
37
|
+
expect((0, chunkify_1.truncateTo)([1, 2, 3], 0)).toEqual([]);
|
|
38
|
+
});
|
|
39
|
+
it('should return an empty array if the input array is empty', () => {
|
|
40
|
+
expect((0, chunkify_1.truncateTo)([], 5)).toEqual([]);
|
|
41
|
+
});
|
|
42
|
+
it('should not mutate the original array', () => {
|
|
43
|
+
const array = [1, 2, 3, 4];
|
|
44
|
+
const copy = [...array];
|
|
45
|
+
(0, chunkify_1.truncateTo)(array, 2);
|
|
46
|
+
expect(array).toEqual(copy);
|
|
47
|
+
});
|
|
48
|
+
it('should return an empty array if length is negative', () => {
|
|
49
|
+
expect((0, chunkify_1.truncateTo)([1, 2, 3], -1)).toEqual([]);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
29
52
|
//# sourceMappingURL=chunkify.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkify.test.js","sourceRoot":"","sources":["../../../src/array/__tests__/chunkify.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"chunkify.test.js","sourceRoot":"","sources":["../../../src/array/__tests__/chunkify.test.ts"],"names":[],"mappings":"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"}
|
package/dist/array/chunkify.d.ts
CHANGED
package/dist/array/chunkify.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.chunkify = void 0;
|
|
3
|
+
exports.truncateTo = exports.chunkify = void 0;
|
|
4
4
|
const chunkify = (input, size) => {
|
|
5
5
|
if (size === 0) {
|
|
6
6
|
throw new RangeError(`Size must be greater than 0`);
|
|
@@ -12,4 +12,6 @@ const chunkify = (input, size) => {
|
|
|
12
12
|
return result;
|
|
13
13
|
};
|
|
14
14
|
exports.chunkify = chunkify;
|
|
15
|
+
const truncateTo = (array, length) => [...array].splice(0, length);
|
|
16
|
+
exports.truncateTo = truncateTo;
|
|
15
17
|
//# sourceMappingURL=chunkify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkify.js","sourceRoot":"","sources":["../../src/array/chunkify.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAI,KAAe,EAAE,IAAY,EAAmB,EAAE;IAC5E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAZW,QAAA,QAAQ,YAYnB"}
|
|
1
|
+
{"version":3,"file":"chunkify.js","sourceRoot":"","sources":["../../src/array/chunkify.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAI,KAAe,EAAE,IAAY,EAAmB,EAAE;IAC5E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAZW,QAAA,QAAQ,YAYnB;AAEK,MAAM,UAAU,GAAG,CAAI,KAAe,EAAE,MAAc,EAAY,EAAE,CACzE,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AADlB,QAAA,UAAU,cACQ"}
|
package/dist/array/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './chunkify';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './unique';
|
package/dist/array/index.js
CHANGED
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./chunkify"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./unique"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
package/dist/array/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/array/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/array/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uniq = exports.unique = void 0;
|
|
4
|
+
const unique = (arr, fn) => arr.filter((element, index) => arr.findIndex((step) => fn(element, step)) === index);
|
|
5
|
+
exports.unique = unique;
|
|
6
|
+
const uniq = (arr) => [...new Set(arr)];
|
|
7
|
+
exports.uniq = uniq;
|
|
8
|
+
//# sourceMappingURL=unique.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique.js","sourceRoot":"","sources":["../../src/array/unique.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CACpB,GAAa,EACb,EAA2B,EACjB,EAAE,CACZ,GAAG,CAAC,MAAM,CACR,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CACzE,CAAC;AANS,QAAA,MAAM,UAMf;AAEG,MAAM,IAAI,GAAG,CAAI,GAAa,EAAY,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAAzD,QAAA,IAAI,QAAqD"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -18,5 +18,5 @@ __exportStar(require("./types/class-utilities-types"), exports);
|
|
|
18
18
|
__exportStar(require("./object/getProperty"), exports);
|
|
19
19
|
__exportStar(require("./data-structures/Result"), exports);
|
|
20
20
|
__exportStar(require("./array/chunkify"), exports);
|
|
21
|
-
__exportStar(require("./array/
|
|
21
|
+
__exportStar(require("./array/unique"), exports);
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,mDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,mDAAiC;AACjC,iDAA+B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Logger } from '@squiz/optimization-logger';
|
|
2
|
+
export declare const createPerf: (logger?: Logger) => <T>(callback: () => T | Promise<T>, label: string) => T | Promise<T>;
|
|
3
|
+
export declare function perf<T>(callback: () => T, label: string, logger?: Logger): T;
|
|
4
|
+
export declare function perf<T>(callback: () => Promise<T>, label: string, logger?: Logger): Promise<T>;
|
|
5
|
+
export declare function LogPerf(customLabel?: string): MethodDecorator;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createPerf = void 0;
|
|
37
|
+
exports.perf = perf;
|
|
38
|
+
exports.LogPerf = LogPerf;
|
|
39
|
+
const optimization_logger_1 = require("@squiz/optimization-logger");
|
|
40
|
+
const util = __importStar(require("node:util"));
|
|
41
|
+
const inversify_1 = require("inversify");
|
|
42
|
+
const createPerf = (logger) => (callback, label) => perf(callback, label, logger);
|
|
43
|
+
exports.createPerf = createPerf;
|
|
44
|
+
function perf(callback, label, logger) {
|
|
45
|
+
const start = performance.now();
|
|
46
|
+
logger = logger ? logger : (0, optimization_logger_1.createLogger)();
|
|
47
|
+
const result = callback();
|
|
48
|
+
const logPerformance = () => {
|
|
49
|
+
const end = performance.now();
|
|
50
|
+
const duration = (end - start).toFixed(2);
|
|
51
|
+
logger.debug({
|
|
52
|
+
message: `Execution of ${label} took ${duration} ms`,
|
|
53
|
+
duration,
|
|
54
|
+
label,
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
if (util.types.isPromise(result)) {
|
|
58
|
+
return result.then((res) => {
|
|
59
|
+
logPerformance();
|
|
60
|
+
return res;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
logPerformance();
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
function LogPerf(customLabel) {
|
|
67
|
+
return function (target, propertyKey, descriptor) {
|
|
68
|
+
const originalMethod = descriptor.value;
|
|
69
|
+
const label = customLabel
|
|
70
|
+
? customLabel
|
|
71
|
+
: `${target.constructor.name}.${propertyKey}`;
|
|
72
|
+
const injection = (0, inversify_1.inject)(optimization_logger_1.Logger);
|
|
73
|
+
const loggerSymbol = Symbol('logger');
|
|
74
|
+
injection(target, loggerSymbol);
|
|
75
|
+
descriptor.value = function (...args) {
|
|
76
|
+
const logger = this[loggerSymbol];
|
|
77
|
+
return perf(() => {
|
|
78
|
+
return originalMethod.apply(this, args);
|
|
79
|
+
}, label, logger);
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=performance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/measurement/performance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,oBAiCC;AAED,0BA2BC;AA9ED,oEAAkE;AAClE,gDAAkC;AAClC,yCAAmC;AAE5B,MAAM,UAAU,GACrB,CAAC,MAAe,EAAE,EAAE,CACpB,CAAI,QAA8B,EAAE,KAAa,EAAkB,EAAE,CACnE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAHrB,QAAA,UAAU,cAGW;AASlC,SAAgB,IAAI,CAClB,QAA8B,EAC9B,KAAa,EACb,MAAe;IAEf,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,kCAAY,GAAE,CAAC;IAE1C,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;IAE1B,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1C,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,gBAAgB,KAAK,SAAS,QAAQ,KAAK;YACpD,QAAQ;YACR,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,cAAc,EAAE,CAAC;YAEjB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,EAAE,CAAC;IAEjB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,OAAO,CAAC,WAAoB;IAC1C,OAAO,UAAU,MAAM,EAAE,WAAW,EAAE,UAA8B;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,MAAM,KAAK,GAAG,WAAW;YACvB,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAqB,EAAE,CAAC;QAE1D,MAAM,SAAS,GAAG,IAAA,kBAAM,EAAC,4BAAM,CAAC,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEhC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAoB;YAClD,MAAM,MAAM,GAAI,IAA+C,CAC7D,YAAY,CACb,CAAC;YAEF,OAAO,IAAI,CACT,GAAG,EAAE;gBACH,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC,EACD,KAAK,EACL,MAAM,CACP,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type MethodKeysOrNever<T> = {
|
|
2
|
-
[K in keyof T]: T[K] extends
|
|
2
|
+
[K in keyof T]: T[K] extends (...args: Array<unknown>) => unknown ? K : never;
|
|
3
3
|
};
|
|
4
4
|
export type MethodKeys<T> = MethodKeysOrNever<T>[keyof T];
|
|
5
5
|
export type ClassFields<T> = Omit<T, Exclude<MethodKeys<T>, undefined>>;
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squiz/optimization-utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"repository": "https://gitlab.squiz.net/optimization/optimization-utils",
|
|
8
8
|
"scripts": {
|
|
9
|
-
"build": "tsc",
|
|
9
|
+
"build": "tsc -p ./tsconfig-package.json",
|
|
10
10
|
"build:check": "tsc --noEmit",
|
|
11
|
-
"exports:generate": "
|
|
11
|
+
"exports:generate": "opti-build-utils exports:generate --config ../../generate-barrels.json && prettier -w ./src/index.ts"
|
|
12
12
|
},
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
@@ -33,6 +33,10 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {},
|
|
35
35
|
"devDependencies": {},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"inversify": "^7.0.1",
|
|
38
|
+
"@squiz/optimization-logger": "^1.7.1"
|
|
39
|
+
},
|
|
36
40
|
"author": "",
|
|
37
41
|
"license": "ISC"
|
|
38
42
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const uniqueWith: <T>(arr: Array<T>, fn: (a: T, b: T) => boolean) => Array<T>;
|
package/dist/array/uniqueWith.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uniqueWith = void 0;
|
|
4
|
-
const uniqueWith = (arr, fn) => arr.filter((element, index) => arr.findIndex((step) => fn(element, step)) === index);
|
|
5
|
-
exports.uniqueWith = uniqueWith;
|
|
6
|
-
//# sourceMappingURL=uniqueWith.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uniqueWith.js","sourceRoot":"","sources":["../../src/array/uniqueWith.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CACxB,GAAa,EACb,EAA2B,EACjB,EAAE,CACZ,GAAG,CAAC,MAAM,CACR,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CACzE,CAAC;AANS,QAAA,UAAU,cAMnB"}
|