@willbooster/shared-lib 2.0.0 → 2.1.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.
@@ -0,0 +1,2 @@
1
+ "use strict";exports.ignoreEnoent=function(t){try{return t()}catch(t){if("object"==typeof t&&t&&"code"in t&&"ENOENT"===t.code)return;throw t}},exports.ignoreEnoentAsync=async function(t){try{return await t()}catch(t){if("object"==typeof t&&t&&"code"in t&&"ENOENT"===t.code)return;throw t}},exports.ignoreError=function(t){try{return t()}catch(t){}},exports.ignoreErrorAsync=async function(t){try{return await t()}catch(t){}};
2
+ //# sourceMappingURL=error.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.mjs","sources":["../../src/error.ts"],"sourcesContent":["export function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n"],"names":["ignoreError","fn","_unused","ignoreEnoent","error","code","async","ignoreErrorAsync","_unused2","ignoreEnoentAsync"],"mappings":"AAAO,SAASA,EAAeC,GAC7B,IACE,OAAOA,GAEP,CADA,MAAMC,GACN,CAEJ,CAEO,SAASC,EAAgBF,GAC9B,IACE,OAAOA,GAMT,CALE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,CAEOE,eAAeC,EAAoBN,GACxC,IACE,aAAaA,GAEb,CADA,MAAMO,GACN,CAEJ,CAEOF,eAAeG,EAAqBR,GACzC,IACE,aAAaA,GAMf,CALE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF"}
1
+ {"version":3,"file":"error.cjs","sources":["../../src/error.ts"],"sourcesContent":["export function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n"],"names":["fn","error","code","async","_unused","_unused2"],"mappings":"kCAQO,SAAyBA,GAC9B,IACE,OAAOA,GAMT,CALE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,4BAUOE,eAAoCH,GACzC,IACE,aAAaA,GAMf,CALE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,sBApCO,SAAwBD,GAC7B,IACE,OAAOA,GAEP,CADA,MAAMI,GACN,CAEJ,2BAaOD,eAAmCH,GACxC,IACE,aAAaA,GAEb,CADA,MAAMK,GACN,CAEJ"}
File without changes
@@ -1,2 +1,2 @@
1
- "use strict";exports.ignoreEnoent=function(t){try{return t()}catch(t){if("object"==typeof t&&t&&"code"in t&&"ENOENT"===t.code)return;throw t}},exports.ignoreEnoentAsync=async function(t){try{return await t()}catch(t){if("object"==typeof t&&t&&"code"in t&&"ENOENT"===t.code)return;throw t}},exports.ignoreError=function(t){try{return t()}catch(t){}},exports.ignoreErrorAsync=async function(t){try{return await t()}catch(t){}},exports.shuffle=function(t){for(let r=t.length-1;r>0;r--){const n=Math.floor(Math.random()*(r+1));[t[r],t[n]]=[t[n],t[r]]}return t},exports.zenkakuAlphanumericalsToHankaku=function(t){return t.replace(/[0-9A-Za-z]/g,(t=>{var r;return String.fromCodePoint((null!==(r=t.codePointAt(0))&&void 0!==r?r:0)-65248)}))};
1
+ "use strict";var r=require("./error.cjs"),e=require("./shuffle.cjs"),n=require("./zenkaku.cjs");exports.ignoreEnoent=r.ignoreEnoent,exports.ignoreEnoentAsync=r.ignoreEnoentAsync,exports.ignoreError=r.ignoreError,exports.ignoreErrorAsync=r.ignoreErrorAsync,exports.shuffle=e.shuffle,exports.zenkakuAlphanumericalsToHankaku=n.zenkakuAlphanumericalsToHankaku;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/error.ts","../../src/shuffle.ts","../../src/zenkaku.ts"],"sourcesContent":["export function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n","export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]];\n }\n return array;\n}\n","export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replace(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xfe_e0);\n });\n}\n"],"names":["fn","error","code","async","_unused","_unused2","array","index","length","index_","Math","floor","random","str","replace","s","_s$codePointAt","String","fromCodePoint","codePointAt"],"mappings":"kCAQO,SAAyBA,GAC9B,IACE,OAAOA,GAMT,CALE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,4BAUOE,eAAoCH,GACzC,IACE,aAAaA,GAMf,CALE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,sBApCO,SAAwBD,GAC7B,IACE,OAAOA,GAEP,CADA,MAAMI,GACN,CAEJ,2BAaOD,eAAmCH,GACxC,IACE,aAAaA,GAEb,CADA,MAAMK,GACN,CAEJ,kBCzBO,SAAoBC,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT,0CCNO,SAAyCO,GAC9C,OAAOA,EAAIC,QAAQ,gBAAiBC,IAAc,IAAAC,EAChD,OAAOC,OAAOC,eAA+B,UAAhBH,EAAEI,YAAY,UAAE,IAAAH,EAAAA,EAAI,GAAK,MAAQ,GAElE"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,7 +1,3 @@
1
- declare function ignoreError<T>(fn: () => T): T | undefined;
2
- declare function ignoreEnoent<T>(fn: () => T): T | undefined;
3
- declare function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined>;
4
- declare function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined>;
5
- declare function shuffle<T>(array: T[]): T[];
6
- declare function zenkakuAlphanumericalsToHankaku(str: string): string;
7
- export { ignoreError, ignoreEnoent, ignoreErrorAsync, ignoreEnoentAsync, shuffle, zenkakuAlphanumericalsToHankaku };
1
+ export { ignoreError, ignoreEnoent, ignoreErrorAsync, ignoreEnoentAsync } from "./error.js";
2
+ export { shuffle } from "./shuffle.js";
3
+ export { zenkakuAlphanumericalsToHankaku } from "./zenkaku.js";
@@ -0,0 +1,2 @@
1
+ "use strict";exports.shuffle=function(t){for(let o=t.length-1;o>0;o--){const r=Math.floor(Math.random()*(o+1));[t[o],t[r]]=[t[r],t[o]]}return t};
2
+ //# sourceMappingURL=shuffle.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.cjs","sources":["../../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]];\n }\n return array;\n}\n"],"names":["array","index","length","index_","Math","floor","random"],"mappings":"6BAAO,SAAoBA,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";exports.zenkakuAlphanumericalsToHankaku=function(n){return n.replace(/[0-9A-Za-z]/g,(n=>{var r;return String.fromCodePoint((null!==(r=n.codePointAt(0))&&void 0!==r?r:0)-65248)}))};
2
+ //# sourceMappingURL=zenkaku.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zenkaku.cjs","sources":["../../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replace(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xfe_e0);\n });\n}\n"],"names":["str","replace","s","_s$codePointAt","String","fromCodePoint","codePointAt"],"mappings":"qDAAO,SAAyCA,GAC9C,OAAOA,EAAIC,QAAQ,gBAAiBC,IAAc,IAAAC,EAChD,OAAOC,OAAOC,eAA+B,UAAhBH,EAAEI,YAAY,UAAE,IAAAH,EAAAA,EAAI,GAAK,MAAQ,GAElE"}
File without changes
@@ -0,0 +1,5 @@
1
+ declare function ignoreError<T>(fn: () => T): T | undefined;
2
+ declare function ignoreEnoent<T>(fn: () => T): T | undefined;
3
+ declare function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined>;
4
+ declare function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined>;
5
+ export { ignoreError, ignoreEnoent, ignoreErrorAsync, ignoreEnoentAsync };
@@ -1,2 +1,2 @@
1
1
  function t(t){try{return t()}catch(t){}}function c(t){try{return t()}catch(t){if("object"==typeof t&&t&&"code"in t&&"ENOENT"===t.code)return;throw t}}async function r(t){try{return await t()}catch(t){}}async function n(t){try{return await t()}catch(t){if("object"==typeof t&&t&&"code"in t&&"ENOENT"===t.code)return;throw t}}export{c as ignoreEnoent,n as ignoreEnoentAsync,t as ignoreError,r as ignoreErrorAsync};
2
- //# sourceMappingURL=error.mjs.map
2
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sources":["../../src/error.ts"],"sourcesContent":["export function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n"],"names":["ignoreError","fn","_unused","ignoreEnoent","error","code","async","ignoreErrorAsync","_unused2","ignoreEnoentAsync"],"mappings":"AAAO,SAASA,EAAeC,GAC7B,IACE,OAAOA,GAEP,CADA,MAAMC,GACN,CAEJ,CAEO,SAASC,EAAgBF,GAC9B,IACE,OAAOA,GAMT,CALE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,CAEOE,eAAeC,EAAoBN,GACxC,IACE,aAAaA,GAEb,CADA,MAAMO,GACN,CAEJ,CAEOF,eAAeG,EAAqBR,GACzC,IACE,aAAaA,GAMf,CALE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF"}
File without changes
@@ -0,0 +1,2 @@
1
+ export{ignoreEnoent,ignoreEnoentAsync,ignoreError,ignoreErrorAsync}from"./error.js";export{shuffle}from"./shuffle.js";export{zenkakuAlphanumericalsToHankaku}from"./zenkaku.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ declare function shuffle<T>(array: T[]): T[];
2
+ export { shuffle };
@@ -1,2 +1,2 @@
1
1
  function t(t){for(let o=t.length-1;o>0;o--){const n=Math.floor(Math.random()*(o+1));[t[o],t[n]]=[t[n],t[o]]}return t}export{t as shuffle};
2
- //# sourceMappingURL=shuffle.mjs.map
2
+ //# sourceMappingURL=shuffle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.js","sources":["../../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]];\n }\n return array;\n}\n"],"names":["shuffle","array","index","length","index_","Math","floor","random"],"mappings":"AAAO,SAASA,EAAWC,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
@@ -0,0 +1,2 @@
1
+ declare function zenkakuAlphanumericalsToHankaku(str: string): string;
2
+ export { zenkakuAlphanumericalsToHankaku };
@@ -1,2 +1,2 @@
1
1
  function r(r){return r.replace(/[0-9A-Za-z]/g,(r=>{var n;return String.fromCodePoint((null!==(n=r.codePointAt(0))&&void 0!==n?n:0)-65248)}))}export{r as zenkakuAlphanumericalsToHankaku};
2
- //# sourceMappingURL=zenkaku.mjs.map
2
+ //# sourceMappingURL=zenkaku.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zenkaku.js","sources":["../../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replace(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xfe_e0);\n });\n}\n"],"names":["zenkakuAlphanumericalsToHankaku","str","replace","s","_s$codePointAt","String","fromCodePoint","codePointAt"],"mappings":"AAAO,SAASA,EAAgCC,GAC9C,OAAOA,EAAIC,QAAQ,gBAAiBC,IAAc,IAAAC,EAChD,OAAOC,OAAOC,eAA+B,UAAhBH,EAAEI,YAAY,UAAE,IAAAH,EAAAA,EAAI,GAAK,MAAQ,GAElE"}
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@willbooster/shared-lib",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "WillBooster Inc.",
6
6
  "sideEffects": false,
7
7
  "type": "module",
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./dist/esm/index.d.mts",
11
10
  "require": "./dist/cjs/index.cjs",
12
- "import": "./dist/esm/index.mjs"
11
+ "import": "./dist/esm/index.js",
12
+ "types": "./dist/esm/index.d.ts"
13
13
  }
14
14
  },
15
15
  "main": "dist/cjs/index.cjs",
16
- "module": "dist/esm/index.mjs",
17
- "types": "dist/cjs/index.d.cts",
16
+ "module": "dist/esm/index.js",
17
+ "types": "dist/esm/index.d.ts",
18
18
  "files": [
19
19
  "bin/",
20
20
  "dist/"
@@ -31,14 +31,14 @@
31
31
  },
32
32
  "prettier": "@willbooster/prettier-config",
33
33
  "devDependencies": {
34
- "@types/eslint": "8.4.10",
34
+ "@types/eslint": "8.21.0",
35
35
  "@types/micromatch": "4.0.2",
36
36
  "@types/prettier": "2.7.2",
37
- "@typescript-eslint/eslint-plugin": "5.49.0",
38
- "@typescript-eslint/parser": "5.49.0",
37
+ "@typescript-eslint/eslint-plugin": "5.50.0",
38
+ "@typescript-eslint/parser": "5.50.0",
39
39
  "@willbooster/eslint-config-ts": "10.0.8",
40
40
  "@willbooster/prettier-config": "9.1.1",
41
- "build-ts": "5.1.0",
41
+ "build-ts": "5.5.0",
42
42
  "eslint": "8.33.0",
43
43
  "eslint-config-prettier": "8.6.0",
44
44
  "eslint-import-resolver-typescript": "3.5.3",
@@ -49,9 +49,9 @@
49
49
  "lint-staged": "13.1.0",
50
50
  "micromatch": "4.0.5",
51
51
  "prettier": "2.8.3",
52
- "sort-package-json": "2.3.0",
53
- "typescript": "4.9.4",
54
- "vitest": "0.28.3"
52
+ "sort-package-json": "2.4.1",
53
+ "typescript": "4.9.5",
54
+ "vitest": "0.28.4"
55
55
  },
56
56
  "publishConfig": {
57
57
  "access": "public"
@@ -1,2 +0,0 @@
1
- export{ignoreEnoent,ignoreEnoentAsync,ignoreError,ignoreErrorAsync}from"./error.mjs";export{shuffle}from"./shuffle.mjs";export{zenkakuAlphanumericalsToHankaku}from"./zenkaku.mjs";
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shuffle.mjs","sources":["../../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]];\n }\n return array;\n}\n"],"names":["shuffle","array","index","length","index_","Math","floor","random"],"mappings":"AAAO,SAASA,EAAWC,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"zenkaku.mjs","sources":["../../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replace(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xfe_e0);\n });\n}\n"],"names":["zenkakuAlphanumericalsToHankaku","str","replace","s","_s$codePointAt","String","fromCodePoint","codePointAt"],"mappings":"AAAO,SAASA,EAAgCC,GAC9C,OAAOA,EAAIC,QAAQ,gBAAiBC,IAAc,IAAAC,EAChD,OAAOC,OAAOC,eAA+B,UAAhBH,EAAEI,YAAY,UAAE,IAAAH,EAAAA,EAAI,GAAK,MAAQ,GAElE"}