From ab758617bf25121e3448368ab5c8ebbcecb9ae87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jul 2023 22:05:32 +0000 Subject: [PATCH 01/13] Bump stylelint from 14.16.1 to 15.10.1 in /backend Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.16.1 to 15.10.1. - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/14.16.1...15.10.1) --- updated-dependencies: - dependency-name: stylelint dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- backend/package-lock.json | 956 ++++++++++++++++++++++---------------- backend/package.json | 2 +- 2 files changed, 553 insertions(+), 405 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index d69433c79e..fbf65e35d4 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -30,7 +30,7 @@ "glob": "^8.1.0", "pa11y-ci": "^3.0.1", "prettier": "^2.8.4", - "stylelint": "^14.16.1", + "stylelint": "^15.10.1", "stylelint-config-prettier": "^9.0.5", "stylelint-config-scss": "^1.0.0-security", "stylelint-config-standard": "^29.0.0", @@ -42,33 +42,33 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -157,10 +157,32 @@ "node": ">=0.1.90" } }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", + "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.1.1" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -168,9 +190,51 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/csstools" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", + "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "postcss-selector-parser": "^6.0.10" + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" } }, "node_modules/@cypress/request": { @@ -810,12 +874,6 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", @@ -1476,17 +1534,42 @@ } }, "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1618,7 +1701,6 @@ "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -1732,7 +1814,6 @@ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, "dependencies": { - "@colors/colors": "1.5.0", "string-width": "^4.2.0" }, "engines": { @@ -1963,19 +2044,21 @@ "dev": true }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" } }, "node_modules/cosmiconfig/node_modules/parse-json": { @@ -2079,6 +2162,19 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -2576,30 +2672,6 @@ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "hasInstallScript": true, - "dependencies": { - "@esbuild/android-arm": "0.15.18", - "@esbuild/linux-loong64": "0.15.18", - "esbuild-android-64": "0.15.18", - "esbuild-android-arm64": "0.15.18", - "esbuild-darwin-64": "0.15.18", - "esbuild-darwin-arm64": "0.15.18", - "esbuild-freebsd-64": "0.15.18", - "esbuild-freebsd-arm64": "0.15.18", - "esbuild-linux-32": "0.15.18", - "esbuild-linux-64": "0.15.18", - "esbuild-linux-arm": "0.15.18", - "esbuild-linux-arm64": "0.15.18", - "esbuild-linux-mips64le": "0.15.18", - "esbuild-linux-ppc64le": "0.15.18", - "esbuild-linux-riscv64": "0.15.18", - "esbuild-linux-s390x": "0.15.18", - "esbuild-netbsd-64": "0.15.18", - "esbuild-openbsd-64": "0.15.18", - "esbuild-sunos-64": "0.15.18", - "esbuild-windows-32": "0.15.18", - "esbuild-windows-64": "0.15.18", - "esbuild-windows-arm64": "0.15.18" - }, "bin": { "esbuild": "bin/esbuild" }, @@ -3351,7 +3423,6 @@ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "dependencies": { - "@types/yauzl": "^2.9.1", "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" @@ -3388,9 +3459,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5063,7 +5134,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dependencies": { - "graceful-fs": "^4.1.6", "universalify": "^2.0.0" }, "optionalDependencies": { @@ -5110,9 +5180,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "dev": true }, "node_modules/lazy-ass": { @@ -5537,6 +5607,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5555,24 +5631,36 @@ } }, "node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, "engines": { "node": ">=10" }, @@ -5608,9 +5696,9 @@ } }, "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { "node": ">=10" @@ -7002,7 +7090,6 @@ "inBundle": true, "license": "MIT", "dependencies": { - "@colors/colors": "1.5.0", "string-width": "^4.2.0" }, "engines": { @@ -7539,8 +7626,7 @@ "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { "node": ">=14" @@ -7826,7 +7912,6 @@ "inBundle": true, "license": "MIT", "dependencies": { - "encoding": "^0.1.13", "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" @@ -8206,7 +8291,6 @@ "inBundle": true, "license": "MIT", "dependencies": { - "encoding": "^0.1.13", "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" @@ -10306,12 +10390,15 @@ ] }, "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/range-parser": { @@ -10369,72 +10456,47 @@ } }, "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/find-up": { + "node_modules/read-pkg-up/node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/read-pkg-up/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/read-pkg-up/node_modules/parse-json": { @@ -10456,36 +10518,33 @@ } }, "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, "dependencies": { "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg/node_modules/path-type": { @@ -10545,16 +10604,31 @@ } }, "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/regexp.prototype.flags": { @@ -11163,15 +11237,18 @@ } }, "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, "dependencies": { - "min-indent": "^1.0.0" + "min-indent": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-json-comments": { @@ -11193,55 +11270,57 @@ "dev": true }, "node_modules/stylelint": { - "version": "14.16.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", - "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "version": "15.10.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", + "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", "dev": true, "dependencies": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.1.2", + "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", + "cosmiconfig": "^8.2.0", "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.1", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", + "meow": "^10.1.5", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.19", - "postcss-media-query-parser": "^0.2.3", + "postcss": "^8.4.24", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.1" }, "bin": { - "stylelint": "bin/stylelint.js" + "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -11264,35 +11343,6 @@ "stylelint": ">= 11.x < 15" } }, - "node_modules/stylelint-config-recommended": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", - "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", - "dev": true, - "peerDependencies": { - "stylelint": "^14.10.0" - } - }, - "node_modules/stylelint-config-recommended-scss": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", - "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", - "dev": true, - "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^9.0.0", - "stylelint-scss": "^4.0.0" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^14.10.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } - } - }, "node_modules/stylelint-config-scss": { "version": "1.0.0-security", "resolved": "https://registry.npmjs.org/stylelint-config-scss/-/stylelint-config-scss-1.0.0-security.tgz", @@ -11330,6 +11380,44 @@ } } }, + "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended-scss": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", + "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^9.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^14.10.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended-scss/node_modules/stylelint-config-recommended": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.10.0" + } + }, + "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.10.0" + } + }, "node_modules/stylelint-scss": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", @@ -11414,16 +11502,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/supports-hyperlinks/node_modules/supports-color": { @@ -11628,12 +11716,15 @@ } }, "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tryer": { @@ -11850,12 +11941,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -12003,16 +12088,28 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ws": { @@ -12126,27 +12223,27 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.5" } }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -12216,10 +12313,30 @@ "dev": true, "optional": true }, + "@csstools/css-parser-algorithms": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", + "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "dev": true, + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", + "dev": true + }, + "@csstools/media-query-list-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", + "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "dev": true, + "requires": {} + }, "@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", "dev": true, "requires": {} }, @@ -12739,12 +12856,6 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", @@ -13201,14 +13312,29 @@ "dev": true }, "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } } }, "caniuse-lite": { @@ -13576,16 +13702,15 @@ "dev": true }, "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "dependencies": { "parse-json": { @@ -13664,6 +13789,16 @@ "nth-check": "^2.0.1" } }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, "css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -14521,9 +14656,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -15784,9 +15919,9 @@ "dev": true }, "known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "dev": true }, "lazy-ass": { @@ -16120,6 +16255,12 @@ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -16132,25 +16273,31 @@ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==" }, "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", "dev": true, "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" }, "dependencies": { + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, "hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -16173,9 +16320,9 @@ } }, "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true } } @@ -19184,9 +19331,9 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, "range-parser": { @@ -19249,51 +19396,35 @@ } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" }, "dependencies": { - "find-up": { + "hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "requires": { - "p-try": "^2.0.0" + "lru-cache": "^6.0.0" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" } }, "parse-json": { @@ -19309,29 +19440,21 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true } } @@ -19368,13 +19491,21 @@ } }, "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + } } }, "regexp.prototype.flags": { @@ -19826,12 +19957,12 @@ "dev": true }, "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, "requires": { - "min-indent": "^1.0.0" + "min-indent": "^1.0.1" } }, "strip-json-comments": { @@ -19847,49 +19978,51 @@ "dev": true }, "stylelint": { - "version": "14.16.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", - "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "version": "15.10.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", + "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", "dev": true, "requires": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.1.2", + "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", + "cosmiconfig": "^8.2.0", "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.1", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", + "meow": "^10.1.5", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.19", - "postcss-media-query-parser": "^0.2.3", + "postcss": "^8.4.24", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.1" }, "dependencies": { "array-union": { @@ -19939,24 +20072,6 @@ "dev": true, "requires": {} }, - "stylelint-config-recommended": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", - "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", - "dev": true, - "requires": {} - }, - "stylelint-config-recommended-scss": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", - "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", - "dev": true, - "requires": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^9.0.0", - "stylelint-scss": "^4.0.0" - } - }, "stylelint-config-scss": { "version": "1.0.0-security", "resolved": "https://registry.npmjs.org/stylelint-config-scss/-/stylelint-config-scss-1.0.0-security.tgz", @@ -19970,6 +20085,15 @@ "dev": true, "requires": { "stylelint-config-recommended": "^9.0.0" + }, + "dependencies": { + "stylelint-config-recommended": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", + "dev": true, + "requires": {} + } } }, "stylelint-config-standard-scss": { @@ -19980,6 +20104,28 @@ "requires": { "stylelint-config-recommended-scss": "^8.0.0", "stylelint-config-standard": "^29.0.0" + }, + "dependencies": { + "stylelint-config-recommended-scss": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", + "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", + "dev": true, + "requires": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^9.0.0", + "stylelint-scss": "^4.0.0" + }, + "dependencies": { + "stylelint-config-recommended": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", + "dev": true, + "requires": {} + } + } + } } }, "stylelint-scss": { @@ -20004,9 +20150,9 @@ } }, "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -20179,9 +20325,9 @@ "dev": true }, "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "dev": true }, "tryer": { @@ -20339,12 +20485,6 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -20462,13 +20602,21 @@ "dev": true }, "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "requires": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true + } } }, "ws": { diff --git a/backend/package.json b/backend/package.json index de12e88d89..242212c0a3 100644 --- a/backend/package.json +++ b/backend/package.json @@ -37,7 +37,7 @@ "glob": "^8.1.0", "pa11y-ci": "^3.0.1", "prettier": "^2.8.4", - "stylelint": "^14.16.1", + "stylelint": "^15.10.1", "stylelint-config-prettier": "^9.0.5", "stylelint-config-scss": "^1.0.0-security", "stylelint-config-standard": "^29.0.0", From a4f085f30fdff9761e27d0e68357d712e6910dca Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 17:45:56 -0700 Subject: [PATCH 02/13] remove obsolete peer deps, setup prettier on its own --- backend/.prettierignore | 10 + backend/.stylelintrc.json | 3 +- backend/package-lock.json | 570 +++++++++++++++++++++----------------- backend/package.json | 8 +- 4 files changed, 333 insertions(+), 258 deletions(-) create mode 100644 backend/.prettierignore diff --git a/backend/.prettierignore b/backend/.prettierignore new file mode 100644 index 0000000000..934ab1fe63 --- /dev/null +++ b/backend/.prettierignore @@ -0,0 +1,10 @@ +**/uswds +static/scss/** +static/compiled/** +.lighthouseci/** + +# template linting/style checks handled by djlint +report_submission/templates/** +audit/templates/** +djangooidc/templates/** +templates/** diff --git a/backend/.stylelintrc.json b/backend/.stylelintrc.json index dbd172034e..37618b3103 100644 --- a/backend/.stylelintrc.json +++ b/backend/.stylelintrc.json @@ -1,8 +1,7 @@ { "extends": [ "stylelint-config-standard", - "stylelint-config-standard-scss", - "stylelint-config-prettier" + "stylelint-config-standard-scss" ], "rules": { "selector-class-pattern": null, diff --git a/backend/package-lock.json b/backend/package-lock.json index 516ca94f47..db3a910596 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "djlint": "^1.32.1", "esbuild": "^0.15.18", "npm": "^9.4.2", "npm-run-all": "^4.1.5", @@ -34,10 +33,9 @@ "pa11y-ci": "^3.0.1", "prettier": "^2.8.4", "stylelint": "^15.10.1", - "stylelint-config-prettier": "^9.0.5", "stylelint-config-scss": "^1.0.0-security", - "stylelint-config-standard": "^29.0.0", - "stylelint-config-standard-scss": "^6.1.0" + "stylelint-config-standard": "^34.0.0", + "stylelint-config-standard-scss": "^11.0.0" }, "engines": { "node": ">=16.0.0 <19.0.0", @@ -45,12 +43,12 @@ } }, "node_modules/@4tw/cypress-drag-drop": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@4tw/cypress-drag-drop/-/cypress-drag-drop-2.2.4.tgz", - "integrity": "sha512-6mmjJ0SHjciI0JNofdVcN1LYLbvUcUT3oY2O+1HaTlQlpKPlX9kBc040Sik6RYFK7cgWvUNwoDoDoGSKA4IS/g==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@4tw/cypress-drag-drop/-/cypress-drag-drop-2.2.5.tgz", + "integrity": "sha512-3ghTmzhOmUqeN6U3QmUnKRUxI7OMLbJA4hHUY/eS/FhWJgxbiGgcaELbolWnBAOpajPXcsNQGYEj9brd59WH6A==", "dev": true, "peerDependencies": { - "cypress": "^2.1.0 || ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0" + "cypress": "2 - 13" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -138,21 +136,21 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, @@ -233,9 +231,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", - "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", + "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", "dev": true, "funding": [ { @@ -251,26 +249,32 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.1.1" + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", - "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", + "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "engines": { "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", - "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", + "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", "dev": true, "funding": [ { @@ -286,8 +290,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.0", - "@csstools/css-tokenizer": "^2.1.1" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/selector-specificity": { @@ -406,9 +410,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", - "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz", + "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -456,9 +460,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -802,15 +806,15 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz", - "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==", + "version": "20.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.0.tgz", + "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==", "dev": true }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz", + "integrity": "sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==", "dev": true }, "node_modules/@types/sinonjs__fake-timers": { @@ -820,15 +824,15 @@ "dev": true }, "node_modules/@types/sizzle": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz", + "integrity": "sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag==", "dev": true }, "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz", + "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==", "dev": true, "optional": true, "dependencies": { @@ -1129,9 +1133,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.15", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", - "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -1149,8 +1153,8 @@ ], "dependencies": { "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001520", - "fraction.js": "^4.2.0", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -1370,9 +1374,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "version": "4.21.11", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", + "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==", "dev": true, "funding": [ { @@ -1389,10 +1393,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", + "caniuse-lite": "^1.0.30001538", + "electron-to-chromium": "^1.4.526", "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -1474,12 +1478,15 @@ } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys": { @@ -1500,18 +1507,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/camelcase-keys/node_modules/type-fest": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", @@ -1525,9 +1520,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001529", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001529.tgz", - "integrity": "sha512-n2pUQYGAkrLG4QYj2desAh+NqsJpHbNmVZz87imptDdxLAtjxary7Df/psdfyDGmskJK/9Dt9cPnx5RZ3CU4Og==", + "version": "1.0.30001539", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz", + "integrity": "sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA==", "dev": true, "funding": [ { @@ -1998,14 +1993,14 @@ "dev": true }, "node_modules/cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", + "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { @@ -2013,6 +2008,32 @@ }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/cosmiconfig/node_modules/parse-json": { @@ -2242,9 +2263,9 @@ } }, "node_modules/cypress/node_modules/@types/node": { - "version": "16.18.50", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.50.tgz", - "integrity": "sha512-OiDU5xRgYTJ203v4cprTs0RwOCd5c5Zjv+K5P8KSqfiCsB1W3LcamTUMcnQarpq5kOYbhHfSOgIEJvdPyb5xyw==", + "version": "16.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", + "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", "dev": true }, "node_modules/cypress/node_modules/tmp": { @@ -2272,9 +2293,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", - "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==", + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "dev": true }, "node_modules/debug": { @@ -2295,12 +2316,15 @@ } }, "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decamelize-keys": { @@ -2319,6 +2343,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -2334,6 +2367,19 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -2344,10 +2390,11 @@ } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -2419,12 +2466,6 @@ "node": ">=8" } }, - "node_modules/djlint": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/djlint/-/djlint-1.32.1.tgz", - "integrity": "sha512-dcjrxVO037MCJptfb91ex/ljibRDLgbzNZ7de18n604Ignll6Pew92yW3yOdNa6qzJqb9rO77/iSCEWyirJ0xg==", - "hasInstallScript": true - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2521,9 +2562,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.513", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.513.tgz", - "integrity": "sha512-cOB0xcInjm+E5qIssHeXJ29BaUyWpMyFKT5RB3bsLENDheCja0wMkHJyiPl0NBE/VzDI7JDuNEQWhe6RitEUcw==", + "version": "1.4.529", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.529.tgz", + "integrity": "sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==", "dev": true }, "node_modules/element-closest": { @@ -2604,17 +2645,17 @@ } }, "node_modules/es-abstract": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", - "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dependencies": { "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", + "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", @@ -2630,23 +2671,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "safe-array-concat": "^1.0.0", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", "typed-array-buffer": "^1.0.0", "typed-array-byte-length": "^1.0.0", "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.10" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -3067,15 +3108,15 @@ } }, "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", + "@eslint/js": "8.50.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3133,9 +3174,9 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.14.0.tgz", - "integrity": "sha512-eW6tv7iIg7xujleAJX4Ujm649Bf5jweqa4ObPEIuueYRyLZt7qXGWhCY/n4bfeFW/j6nQZwbIBHKZt6EKcL/cg==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", + "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", "dev": true, "dependencies": { "globals": "^13.20.0" @@ -3685,9 +3726,9 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/for-each": { @@ -4015,9 +4056,9 @@ } }, "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -5222,9 +5263,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", - "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", + "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", "dev": true }, "node_modules/lazy-ass": { @@ -5793,18 +5834,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/meow/node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -9746,9 +9775,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.30", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", + "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", "funding": [ { "type": "opencollective", @@ -10555,13 +10584,13 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -10609,9 +10638,9 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -10797,9 +10826,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.66.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", - "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "version": "1.68.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz", + "integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -10894,6 +10923,19 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -11005,9 +11047,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==" }, "node_modules/speedline-core": { "version": "1.4.3", @@ -11225,22 +11267,22 @@ "dev": true }, "node_modules/stylelint": { - "version": "15.10.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", - "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", + "version": "15.10.3", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz", + "integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.0", - "@csstools/css-tokenizer": "^2.1.1", - "@csstools/media-query-list-parser": "^2.1.2", + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4", "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^8.2.0", - "css-functions-list": "^3.1.0", + "css-functions-list": "^3.2.0", "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.1", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", "global-modules": "^2.0.0", @@ -11251,13 +11293,13 @@ "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.27.0", + "known-css-properties": "^0.28.0", "mathml-tag-names": "^2.1.3", "meow": "^10.1.5", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.24", + "postcss": "^8.4.27", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", "postcss-selector-parser": "^6.0.13", @@ -11282,20 +11324,36 @@ "url": "https://opencollective.com/stylelint" } }, - "node_modules/stylelint-config-prettier": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.5.tgz", - "integrity": "sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==", + "node_modules/stylelint-config-recommended": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz", + "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==", "dev": true, - "bin": { - "stylelint-config-prettier": "bin/check.js", - "stylelint-config-prettier-check": "bin/check.js" - }, "engines": { - "node": ">= 12" + "node": "^14.13.1 || >=16.0.0" }, "peerDependencies": { - "stylelint": ">= 11.x < 15" + "stylelint": "^15.10.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-13.0.0.tgz", + "integrity": "sha512-7AmMIsHTsuwUQm7I+DD5BGeIgCvqYZ4BpeYJJpb1cUXQwrJAKjA+GBotFZgUEGP8lAM+wmd91ovzOi8xfAyWEw==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.7", + "stylelint-config-recommended": "^13.0.0", + "stylelint-scss": "^5.1.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^15.10.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, "node_modules/stylelint-config-scss": { @@ -11305,49 +11363,32 @@ "dev": true }, "node_modules/stylelint-config-standard": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz", - "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==", + "version": "34.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz", + "integrity": "sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==", "dev": true, "dependencies": { - "stylelint-config-recommended": "^9.0.0" + "stylelint-config-recommended": "^13.0.0" }, - "peerDependencies": { - "stylelint": "^14.14.0" - } - }, - "node_modules/stylelint-config-standard-scss": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.1.0.tgz", - "integrity": "sha512-iZ2B5kQT2G3rUzx+437cEpdcnFOQkwnwqXuY8Z0QUwIHQVE8mnYChGAquyKFUKZRZ0pRnrciARlPaR1RBtPb0Q==", - "dev": true, - "dependencies": { - "stylelint-config-recommended-scss": "^8.0.0", - "stylelint-config-standard": "^29.0.0" + "engines": { + "node": "^14.13.1 || >=16.0.0" }, "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^14.14.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } + "stylelint": "^15.10.0" } }, - "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended-scss": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", - "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", + "node_modules/stylelint-config-standard-scss": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-11.0.0.tgz", + "integrity": "sha512-fGE79NBOLg09a9afqGH/guJulRULCaQWWv4cv1v2bMX92B+fGb0y56WqIguwvFcliPmmUXiAhKrrnXilIeXoHA==", "dev": true, "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^9.0.0", - "stylelint-scss": "^4.0.0" + "stylelint-config-recommended-scss": "^13.0.0", + "stylelint-config-standard": "^34.0.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^14.10.0" + "stylelint": "^15.10.0" }, "peerDependenciesMeta": { "postcss": { @@ -11355,33 +11396,16 @@ } } }, - "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended-scss/node_modules/stylelint-config-recommended": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", - "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", - "dev": true, - "peerDependencies": { - "stylelint": "^14.10.0" - } - }, - "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", - "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", - "dev": true, - "peerDependencies": { - "stylelint": "^14.10.0" - } - }, "node_modules/stylelint-scss": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", - "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.2.1.tgz", + "integrity": "sha512-ZoTJUM85/qqpQHfEppjW/St//8s6p9Qsg8deWlYlr56F9iUgC9vXeIDQvH4odkRRJLTLFQzYMALSOFCQ3MDkgw==", "dev": true, "dependencies": { + "known-css-properties": "^0.28.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { @@ -11432,6 +11456,18 @@ "node": ">=8" } }, + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/stylelint/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -11442,16 +11478,16 @@ } }, "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/supports-color": { @@ -11947,9 +11983,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -12019,12 +12055,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -12064,9 +12094,9 @@ "dev": true }, "node_modules/whatwg-fetch": { - "version": "3.6.18", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.18.tgz", - "integrity": "sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q==", + "version": "3.6.19", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", + "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", "dev": true }, "node_modules/whatwg-url": { @@ -12256,6 +12286,42 @@ "decamelize": "^1.2.0" } }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/yargs/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", diff --git a/backend/package.json b/backend/package.json index 68a857c70f..3b09e10a9a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -15,6 +15,8 @@ "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", "check:stylelint": "npx stylelint --ignore-pattern uswds static/scss", "fix:stylelint": "npx stylelint --fix --ignore-pattern uswds static/scss", + "check:prettier": "npx prettier --check .", + "fix:prettier": "npx prettier --fix .", "check-all": "run-p check:*", "fix-all": "run-p fix:*", "test:a11y:pa11y": "npx pa11y-ci -c ../.pa11yci", @@ -41,13 +43,11 @@ "pa11y-ci": "^3.0.1", "prettier": "^2.8.4", "stylelint": "^15.10.1", - "stylelint-config-prettier": "^9.0.5", "stylelint-config-scss": "^1.0.0-security", - "stylelint-config-standard": "^29.0.0", - "stylelint-config-standard-scss": "^6.1.0" + "stylelint-config-standard": "^34.0.0", + "stylelint-config-standard-scss": "^11.0.0" }, "dependencies": { - "djlint": "^1.32.1", "esbuild": "^0.15.18", "npm": "^9.4.2", "npm-run-all": "^4.1.5", From 74196685f65a909c05434084e1b833c4e83326fc Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 18:05:12 -0700 Subject: [PATCH 03/13] add stylelintignore and address some scss linting warnings --- backend/.stylelintignore | 3 +++ backend/.stylelintrc.json | 5 +---- backend/package.json | 4 ++-- backend/static/scss/_form.scss | 2 +- backend/static/scss/_header.scss | 2 +- backend/static/scss/_home.scss | 2 +- backend/static/scss/main.scss | 2 -- 7 files changed, 9 insertions(+), 11 deletions(-) create mode 100644 backend/.stylelintignore diff --git a/backend/.stylelintignore b/backend/.stylelintignore new file mode 100644 index 0000000000..3c49cb3ff6 --- /dev/null +++ b/backend/.stylelintignore @@ -0,0 +1,3 @@ +**/uswds +static/compiled/** +.lighthouseci/** diff --git a/backend/.stylelintrc.json b/backend/.stylelintrc.json index 37618b3103..66e29fdad8 100644 --- a/backend/.stylelintrc.json +++ b/backend/.stylelintrc.json @@ -1,8 +1,5 @@ { - "extends": [ - "stylelint-config-standard", - "stylelint-config-standard-scss" - ], + "extends": ["stylelint-config-standard", "stylelint-config-standard-scss"], "rules": { "selector-class-pattern": null, "no-descending-specificity": null, diff --git a/backend/package.json b/backend/package.json index 3b09e10a9a..dd96f01a24 100644 --- a/backend/package.json +++ b/backend/package.json @@ -13,8 +13,8 @@ "dev": "node build-assets.js --watch", "check:eslint": "npx eslint --ignore-path ../.gitignore static/js", "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", - "check:stylelint": "npx stylelint --ignore-pattern uswds static/scss", - "fix:stylelint": "npx stylelint --fix --ignore-pattern uswds static/scss", + "check:stylelint": "npx stylelint '**/*.{css,scss,sass}'", + "fix:stylelint": "npx stylelint --fix .", "check:prettier": "npx prettier --check .", "fix:prettier": "npx prettier --fix .", "check-all": "run-p check:*", diff --git a/backend/static/scss/_form.scss b/backend/static/scss/_form.scss index 5ccd21b1ef..c693bde358 100644 --- a/backend/static/scss/_form.scss +++ b/backend/static/scss/_form.scss @@ -263,7 +263,7 @@ ul.usa-error-message { /* stylelint-enable */ -@media (min-width: 64em) { +@media (width >= 64em) { .sticky-nav { align-self: flex-start; position: sticky; diff --git a/backend/static/scss/_header.scss b/backend/static/scss/_header.scss index 847b3b3eb3..cf2faa97fc 100644 --- a/backend/static/scss/_header.scss +++ b/backend/static/scss/_header.scss @@ -1,6 +1,6 @@ @use 'uswds-core' as *; -@media (min-width: 64em) { +@media (width >= 64em) { .usa-logo { margin: 0; } diff --git a/backend/static/scss/_home.scss b/backend/static/scss/_home.scss index c8dd80dc66..21c4faa232 100644 --- a/backend/static/scss/_home.scss +++ b/backend/static/scss/_home.scss @@ -42,7 +42,7 @@ font-family: family('sans'); /* stylelint-disable-line */ } -@media (min-width: 64em) { +@media (width >= 64em) { .usa-hero { min-height: 30rem; diff --git a/backend/static/scss/main.scss b/backend/static/scss/main.scss index 69d4c3b723..450ce9df8d 100644 --- a/backend/static/scss/main.scss +++ b/backend/static/scss/main.scss @@ -7,9 +7,7 @@ $theme-type-scale-2xl: 13, $theme-color-success-lighter: #eef8eb, ); - @forward 'uswds'; - @use '_home.scss'; @use '_header.scss'; @use '_form.scss'; From 6b72f25d61a894eca863ac450d00a3dce68cf7d5 Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 18:06:10 -0700 Subject: [PATCH 04/13] stylelint matching pattern --- backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/package.json b/backend/package.json index dd96f01a24..119bfbc644 100644 --- a/backend/package.json +++ b/backend/package.json @@ -14,7 +14,7 @@ "check:eslint": "npx eslint --ignore-path ../.gitignore static/js", "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", "check:stylelint": "npx stylelint '**/*.{css,scss,sass}'", - "fix:stylelint": "npx stylelint --fix .", + "fix:stylelint": "npx stylelint --fix '**/*.{css,scss,sass}'", "check:prettier": "npx prettier --check .", "fix:prettier": "npx prettier --fix .", "check-all": "run-p check:*", From cc87e452d80e44213a99ebf64f13716bf9559758 Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 18:17:01 -0700 Subject: [PATCH 05/13] prettier updates --- backend/.prettierignore | 1 + backend/package.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/.prettierignore b/backend/.prettierignore index 934ab1fe63..73fa1942c0 100644 --- a/backend/.prettierignore +++ b/backend/.prettierignore @@ -2,6 +2,7 @@ static/scss/** static/compiled/** .lighthouseci/** +cypress/**/*.cy.js # template linting/style checks handled by djlint report_submission/templates/** diff --git a/backend/package.json b/backend/package.json index 119bfbc644..8c3bfa18ec 100644 --- a/backend/package.json +++ b/backend/package.json @@ -15,8 +15,8 @@ "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", "check:stylelint": "npx stylelint '**/*.{css,scss,sass}'", "fix:stylelint": "npx stylelint --fix '**/*.{css,scss,sass}'", - "check:prettier": "npx prettier --check .", - "fix:prettier": "npx prettier --fix .", + "check:prettier": "npx prettier . --check", + "fix:prettier": "npx prettier . --write", "check-all": "run-p check:*", "fix-all": "run-p fix:*", "test:a11y:pa11y": "npx pa11y-ci -c ../.pa11yci", From ed86906c702399b98c2a596cb0a6fd2cb9c72f53 Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 18:22:03 -0700 Subject: [PATCH 06/13] more prettierignore --- backend/.prettierignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/.prettierignore b/backend/.prettierignore index 73fa1942c0..3826061501 100644 --- a/backend/.prettierignore +++ b/backend/.prettierignore @@ -1,8 +1,16 @@ **/uswds static/scss/** static/compiled/** + +# testing artifacts .lighthouseci/** cypress/**/*.cy.js +data_fixtures/** +audit/fixtures/** + +# rendered files +schemas/output/** + # template linting/style checks handled by djlint report_submission/templates/** From af93a4fa462dd9d2f113193c23f4c70c69ca52a4 Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 18:22:35 -0700 Subject: [PATCH 07/13] run fix-prettier --- backend/apt.yml | 6 +- backend/audit/management/commands/README.md | 5 +- backend/audit/tools/README.md | 3 +- backend/build-assets.js | 57 +- backend/cypress.config.js | 7 +- backend/cypress/fixtures/fail-res.json | 18 +- backend/cypress/fixtures/sac-Test-report.json | 68 +- backend/cypress/fixtures/success-res.json | 6 +- backend/cypress/plugins/index.js | 6 +- backend/cypress/support/audit-info-form.js | 50 +- .../cypress/support/auditee-certification.js | 34 +- backend/cypress/support/auditee-info.js | 6 +- .../cypress/support/auditor-certification.js | 4 +- backend/cypress/support/check-access.js | 20 +- backend/cypress/support/commands.js | 6 +- backend/cypress/support/cross-validation.js | 2 +- .../cypress/support/dissemination-table.js | 10 +- backend/cypress/support/file-uploaded-msg.js | 27 +- backend/cypress/support/general-info.js | 100 +- backend/cypress/support/login-gov.js | 5 +- backend/cypress/support/logout-gov.js | 10 +- backend/cypress/support/workbook-uploads.js | 48 +- backend/dissemination/README.md | 22 +- backend/dissemination/data-model/fac.md | 101 +- backend/docker-compose-web.yml | 32 +- backend/docker-compose.yml | 30 +- backend/manifests/task-manifest-staging.yml | 38 +- backend/schemas/source/base/ClusterNames.json | 2 +- .../base/ComplianceRequirementTypes.json | 16390 ++++++++-------- .../source/base/FederalProgramNames.json | 2 +- 30 files changed, 8570 insertions(+), 8545 deletions(-) diff --git a/backend/apt.yml b/backend/apt.yml index 7f4a7d9c1b..091985689e 100644 --- a/backend/apt.yml +++ b/backend/apt.yml @@ -7,8 +7,8 @@ # to a defined s3 bucket. Running v15 also matches the client and server database versions. cleancache: true keys: -- https://www.postgresql.org/media/keys/ACCC4CF8.asc + - https://www.postgresql.org/media/keys/ACCC4CF8.asc repos: -- deb https://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main + - deb https://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main packages: -- postgresql-client-15 + - postgresql-client-15 diff --git a/backend/audit/management/commands/README.md b/backend/audit/management/commands/README.md index 8242068d93..5f99896ebf 100644 --- a/backend/audit/management/commands/README.md +++ b/backend/audit/management/commands/README.md @@ -7,6 +7,7 @@ fac loaddata audit/fixtures/CognizantBaseline.json --app audit.CognizantBaseline ``` If the fixture does not exist follow the steps below to create it. + # csv_to_pg To use this, you need to have data in your SQLite DB. @@ -25,6 +26,7 @@ fac csv_to_pg --path fixture-data/clean-ay19 (`fac` is a shorthand for... `docker compose run web manage.py ...`) This will load the CSVs from the files in the S3 bucket into the PG database. This approach is being used because we can also replicate it in our dev, staging, and preview environments. + # make_cog_baseline Once census_gen19 and census_cfda19 tables have been populated, run the program to calculate and populate CognizantBaseline table. @@ -33,10 +35,11 @@ The command for this is: ```bash fac make_cog_baseline ``` + Now create a fixture for this table as follows: ```bash fac dumpdata audit.CognizantBaseline --output audit/fixtures/CognizantBaseline.json ``` -Make sure that the fixture file is tracjed in git \ No newline at end of file +Make sure that the fixture file is tracjed in git diff --git a/backend/audit/tools/README.md b/backend/audit/tools/README.md index 83bdd56582..d97f66abde 100644 --- a/backend/audit/tools/README.md +++ b/backend/audit/tools/README.md @@ -1,4 +1,3 @@ - # generate-sqlite-files The purpose of this tool is to take public, Census-generated pipe-delimited CSV files and turn them into an SQLite database. @@ -16,7 +15,7 @@ It also creates two directories: `ay19` and `clean-ay19`. The second of these is ### Warning -This will overwrite any SQLite file in this directory with that name. We assume that is OK. +This will overwrite any SQLite file in this directory with that name. We assume that is OK. The `.gitignore` in this directory should ignore the `.zip` and `.sqlite3` files. diff --git a/backend/build-assets.js b/backend/build-assets.js index 8132e895e7..5470bd06cf 100644 --- a/backend/build-assets.js +++ b/backend/build-assets.js @@ -8,13 +8,13 @@ const { sassPlugin } = require('esbuild-sass-plugin'); const watch = process.argv.includes('--watch'); -const jsPath = glob.sync(path.join('.','static','js','*.js')); +const jsPath = glob.sync(path.join('.', 'static', 'js', '*.js')); const buildProps = { entryPoints: [...jsPath, 'static/scss/main.scss'], outdir: 'static/compiled', - minify: process.env.NODE_ENV === "production", - sourcemap: process.env.NODE_ENV !== "production", + minify: process.env.NODE_ENV === 'production', + sourcemap: process.env.NODE_ENV !== 'production', target: ['chrome58', 'firefox57', 'safari11', 'edge18'], bundle: true, format: 'iife', @@ -29,23 +29,26 @@ const buildProps = { plugins: [ sassPlugin({ loadPaths: [ - "./node_modules/@uswds", - "./node_modules/@uswds/uswds/packages", - "./static/compiled/js", + './node_modules/@uswds', + './node_modules/@uswds/uswds/packages', + './static/compiled/js', ], }), - ] -} + ], +}; if (watch) { buildProps.watch = { onRebuild(error, result) { - runPostcss('static/compiled/scss/main.css', 'static/compiled/scss/main-post.css'); + runPostcss( + 'static/compiled/scss/main.css', + 'static/compiled/scss/main-post.css' + ); - if (error) console.error('watch build failed:', error) - else console.info('watch build succeeded:', result) + if (error) console.error('watch build failed:', error); + else console.info('watch build succeeded:', result); }, - } + }; } const runPostcss = (cssIn, cssOut) => { @@ -54,22 +57,26 @@ const runPostcss = (cssIn, cssOut) => { fs.readFile(cssIn, (err, css) => { postcss([autoprefixer]) .process(css, { from: cssIn, to: cssOut }) - .then(result => { - fs.writeFile(cssOut, result.css, () => true) - if ( result.map ) { - fs.writeFile(cssOut + '.map', result.map.toString(), () => true) + .then((result) => { + fs.writeFile(cssOut, result.css, () => true); + if (result.map) { + fs.writeFile(cssOut + '.map', result.map.toString(), () => true); } - }) - }) -} + }); + }); +}; -require('esbuild').build(buildProps) - .then(() => { - runPostcss('static/compiled/scss/main.css', 'static/compiled/scss/main-post.css'); +require('esbuild') + .build(buildProps) + .then(() => { + runPostcss( + 'static/compiled/scss/main.css', + 'static/compiled/scss/main-post.css' + ); if (watch) { - console.info('Watching assets…') + console.info('Watching assets…'); } else { - console.info('Assets compiled ✅') + console.info('Assets compiled ✅'); } }) - .catch(() => process.exit(1)) + .catch(() => process.exit(1)); diff --git a/backend/cypress.config.js b/backend/cypress.config.js index 297a7ed92e..8febd9e4e8 100644 --- a/backend/cypress.config.js +++ b/backend/cypress.config.js @@ -8,8 +8,11 @@ module.exports = defineConfig({ return require('./cypress/plugins/index.js')(on, config); }, baseUrl: 'http://localhost:8000/', - excludeSpecPattern: ['*/*/**/sf-sac-general-info.cy.js', '*/*/**/display-submissions.cy.js'], + excludeSpecPattern: [ + '*/*/**/sf-sac-general-info.cy.js', + '*/*/**/display-submissions.cy.js', + ], video: false, screenshotOnRunFailure: true, - } + }, }); diff --git a/backend/cypress/fixtures/fail-res.json b/backend/cypress/fixtures/fail-res.json index 7e6362f5e1..e8d2c09c82 100644 --- a/backend/cypress/fixtures/fail-res.json +++ b/backend/cypress/fixtures/fail-res.json @@ -1,10 +1,10 @@ { - "status": "error", - "message": "File upload failed", - "error": { - "code": 400, - "description": "The file upload request was invalid", - "type": "error_field", - "message": "Field Error: undefined" - } -} \ No newline at end of file + "status": "error", + "message": "File upload failed", + "error": { + "code": 400, + "description": "The file upload request was invalid", + "type": "error_field", + "message": "Field Error: undefined" + } +} diff --git a/backend/cypress/fixtures/sac-Test-report.json b/backend/cypress/fixtures/sac-Test-report.json index 42d32e1e58..f708dc4303 100644 --- a/backend/cypress/fixtures/sac-Test-report.json +++ b/backend/cypress/fixtures/sac-Test-report.json @@ -1,38 +1,32 @@ { - "date_created": "2023-07-11", - "submission_status": "in_progress", - "report_id": "2023MAY0001000001", - "auditee_fiscal_period_start": "05/08/2023", - "auditee_fiscal_period_end": "05/08/2024", - "audit_type": "single-audit", - "audit_period_covered": "annual", - "auditee_uei": "CMBSGK6P7BE1", - "auditee_name": "Commonwealth Of Virginia", - "auditee_address_line_1": "1111 E BROAD ST", - "auditee_city": "RICHMOND", - "auditee_state": "VA", - "auditee_zip": "23219", - "auditee_contact_name": "John Doe", - "auditee_contact_title": "Keymaster", - "auditee_phone": "5558675309", - "auditee_email": "va@test.com", - "auditee_contacts": [ - "a@a.com", - "b@b.com" - ], - "user_provided_organization_type": "local", - "auditor_firm_name": "House of Audit", - "auditor_country": "USA", - "auditor_address_line_1": "123 Around the corner", - "auditor_city": "Centreville", - "auditor_state": "VA", - "auditor_zip": "20121", - "auditor_contact_name": "Jane Doe", - "auditor_contact_title": "auditor", - "auditor_phone": "0008675309", - "auditor_email": "qualified.human.accountant@auditor.com", - "auditor_contacts": [ - "c@c.com", - "d@d.com" - ] -} \ No newline at end of file + "date_created": "2023-07-11", + "submission_status": "in_progress", + "report_id": "2023MAY0001000001", + "auditee_fiscal_period_start": "05/08/2023", + "auditee_fiscal_period_end": "05/08/2024", + "audit_type": "single-audit", + "audit_period_covered": "annual", + "auditee_uei": "CMBSGK6P7BE1", + "auditee_name": "Commonwealth Of Virginia", + "auditee_address_line_1": "1111 E BROAD ST", + "auditee_city": "RICHMOND", + "auditee_state": "VA", + "auditee_zip": "23219", + "auditee_contact_name": "John Doe", + "auditee_contact_title": "Keymaster", + "auditee_phone": "5558675309", + "auditee_email": "va@test.com", + "auditee_contacts": ["a@a.com", "b@b.com"], + "user_provided_organization_type": "local", + "auditor_firm_name": "House of Audit", + "auditor_country": "USA", + "auditor_address_line_1": "123 Around the corner", + "auditor_city": "Centreville", + "auditor_state": "VA", + "auditor_zip": "20121", + "auditor_contact_name": "Jane Doe", + "auditor_contact_title": "auditor", + "auditor_phone": "0008675309", + "auditor_email": "qualified.human.accountant@auditor.com", + "auditor_contacts": ["c@c.com", "d@d.com"] +} diff --git a/backend/cypress/fixtures/success-res.json b/backend/cypress/fixtures/success-res.json index 6e049caaad..e9bd02d6e3 100644 --- a/backend/cypress/fixtures/success-res.json +++ b/backend/cypress/fixtures/success-res.json @@ -1,4 +1,4 @@ { - "status": "success", - "message": "File successfully validated! Your work has been saved." -} \ No newline at end of file + "status": "success", + "message": "File successfully validated! Your work has been saved." +} diff --git a/backend/cypress/plugins/index.js b/backend/cypress/plugins/index.js index f39f3dcb34..15eca1440c 100644 --- a/backend/cypress/plugins/index.js +++ b/backend/cypress/plugins/index.js @@ -17,7 +17,7 @@ */ // eslint-disable-next-line no-unused-vars module.exports = (on, config) => { - on("task", { - generateOTP: require("cypress-otp") + on('task', { + generateOTP: require('cypress-otp'), }); -} +}; diff --git a/backend/cypress/support/audit-info-form.js b/backend/cypress/support/audit-info-form.js index c4cca71fb2..40a2642305 100644 --- a/backend/cypress/support/audit-info-form.js +++ b/backend/cypress/support/audit-info-form.js @@ -2,36 +2,36 @@ Re-useable code for silling out the audit information form. */ export function testAuditInformationForm() { - // Select everything for the GAAP multiple choice checkboxes. - // Will pop the three conditional non-GAAP questions. - cy.get('[id^=gaap_results--]').each((item) => { - cy.get(item).click({force: true}); - }); + // Select everything for the GAAP multiple choice checkboxes. + // Will pop the three conditional non-GAAP questions. + cy.get('[id^=gaap_results--]').each((item) => { + cy.get(item).click({ force: true }); + }); - // Select everything for question i - cy.get('[id^=sp_framework_basis--]').each((item) => { - cy.get(item).click({force: true}); - }); + // Select everything for question i + cy.get('[id^=sp_framework_basis--]').each((item) => { + cy.get(item).click({ force: true }); + }); - // Question ii is a true/false, and is covered below + // Question ii is a true/false, and is covered below - // Select everything for question iii - cy.get('[id^=sp_framework_opinions--]').each((item) => { - cy.get(item).click({force: true}); - }); + // Select everything for question iii + cy.get('[id^=sp_framework_opinions--]').each((item) => { + cy.get(item).click({ force: true }); + }); - // Answer 'Yes' to all Yes/No questions. - cy.get('[id$=--true]').each((item) => { - cy.get(item).click({force: true}); - }); + // Answer 'Yes' to all Yes/No questions. + cy.get('[id$=--true]').each((item) => { + cy.get(item).click({ force: true }); + }); - // Enter 750000 into the dollar theshold number field. - cy.get('#dollar_threshold').type('750000').blur(); + // Enter 750000 into the dollar theshold number field. + cy.get('#dollar_threshold').type('750000').blur(); - // Select 0 and 1 for the multiple select agencies field. - cy.get('#agencies').select(['00', '01']).blur(); + // Select 0 and 1 for the multiple select agencies field. + cy.get('#agencies').select(['00', '01']).blur(); - cy.get('.usa-button').contains('Save and continue').click({force: true}); + cy.get('.usa-button').contains('Save and continue').click({ force: true }); - cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}/); -} \ No newline at end of file + cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}/); +} diff --git a/backend/cypress/support/auditee-certification.js b/backend/cypress/support/auditee-certification.js index 41c733959d..51012fedf2 100644 --- a/backend/cypress/support/auditee-certification.js +++ b/backend/cypress/support/auditee-certification.js @@ -1,18 +1,18 @@ export function testAuditeeCertification() { - // 1. Click all the checkboxes to agree, submit and go to page 2 - cy.get('label[for=has_no_PII]').click(); - cy.get('label[for=has_no_BII]').click(); - cy.get('label[for=meets_2CFR_specifications]').click(); - cy.get('label[for=is_2CFR_compliant]').click(); - cy.get('label[for=is_complete_and_accurate]').click(); - cy.get('label[for=has_engaged_auditor]').click(); - cy.get('label[for=is_issued_and_signed]').click(); - cy.get('label[for=is_FAC_releasable]').click(); - cy.get('.usa-button').contains('Agree to auditee certification').click(); - - // 2. Sign and date, submit and go back to checklist - cy.get('#auditee_name').type('John Doe'); - cy.get('#auditee_title').type('Auditee'); - cy.get('#auditee_certification_date_signed').type("01/01/2022"); - cy.get('.usa-button').contains('Agree to auditee certification').click(); - } \ No newline at end of file + // 1. Click all the checkboxes to agree, submit and go to page 2 + cy.get('label[for=has_no_PII]').click(); + cy.get('label[for=has_no_BII]').click(); + cy.get('label[for=meets_2CFR_specifications]').click(); + cy.get('label[for=is_2CFR_compliant]').click(); + cy.get('label[for=is_complete_and_accurate]').click(); + cy.get('label[for=has_engaged_auditor]').click(); + cy.get('label[for=is_issued_and_signed]').click(); + cy.get('label[for=is_FAC_releasable]').click(); + cy.get('.usa-button').contains('Agree to auditee certification').click(); + + // 2. Sign and date, submit and go back to checklist + cy.get('#auditee_name').type('John Doe'); + cy.get('#auditee_title').type('Auditee'); + cy.get('#auditee_certification_date_signed').type('01/01/2022'); + cy.get('.usa-button').contains('Agree to auditee certification').click(); +} diff --git a/backend/cypress/support/auditee-info.js b/backend/cypress/support/auditee-info.js index 753da917e9..8c9b1c94a9 100644 --- a/backend/cypress/support/auditee-info.js +++ b/backend/cypress/support/auditee-info.js @@ -3,7 +3,7 @@ export function testValidAuditeeInfo() { cy.intercept('api/sac/ueivalidation', { fixture: 'sam-gov-api-mock.json', - }).as('uei_check_success') + }).as('uei_check_success'); // Hard-coding some UEI which may eventually become unregistered // This UEI needs to match up with the UEI in the workbooks. @@ -13,8 +13,8 @@ export function testValidAuditeeInfo() { cy.get('button[data-close-modal]').contains('Continue').click(); // Now fill in the audit dates - cy.get('#auditee_fiscal_period_start').type("01/01/2022"); - cy.get('#auditee_fiscal_period_end').type("12/31/2022"); + cy.get('#auditee_fiscal_period_start').type('01/01/2022'); + cy.get('#auditee_fiscal_period_end').type('12/31/2022'); // and click continue cy.get('.usa-button').contains('Continue').click(); diff --git a/backend/cypress/support/auditor-certification.js b/backend/cypress/support/auditor-certification.js index bdc90b3b3d..411740fe98 100644 --- a/backend/cypress/support/auditor-certification.js +++ b/backend/cypress/support/auditor-certification.js @@ -9,7 +9,7 @@ export function testAuditorCertification() { // 2. Sign and date, submit and go back to checklist cy.get('#auditor_name').type('Jane Doe'); - cy.get('#auditor_title').type('Auditor'); - cy.get('#auditor_certification_date_signed').type("01/01/2022"); + cy.get('#auditor_title').type('Auditor'); + cy.get('#auditor_certification_date_signed').type('01/01/2022'); cy.get('.usa-button').contains('Agree to auditor certification').click(); } diff --git a/backend/cypress/support/check-access.js b/backend/cypress/support/check-access.js index d10b94afac..fe0dbb43d5 100644 --- a/backend/cypress/support/check-access.js +++ b/backend/cypress/support/check-access.js @@ -1,14 +1,24 @@ // reusable code for the accessandsubmission page const accessFields = [ - '#certifying_auditee_contact_fullname', '#certifying_auditee_contact_email', '#certifying_auditee_contact_re_email', - '#certifying_auditor_contact_fullname', '#certifying_auditor_contact_email', '#certifying_auditor_contact_re_email', - '#auditee_contacts_fullname', '#auditee_contacts_email', '#auditee_contacts_re_email', - '#auditor_contacts_fullname', '#auditor_contacts_email', '#auditor_contacts_re_email', + '#certifying_auditee_contact_fullname', + '#certifying_auditee_contact_email', + '#certifying_auditee_contact_re_email', + '#certifying_auditor_contact_fullname', + '#certifying_auditor_contact_email', + '#certifying_auditor_contact_re_email', + '#auditee_contacts_fullname', + '#auditee_contacts_email', + '#auditee_contacts_re_email', + '#auditor_contacts_fullname', + '#auditor_contacts_email', + '#auditor_contacts_re_email', ]; export function addValidInfo(field) { const fieldType = field.split('_').pop(); - const email = field.includes('auditee') ? Cypress.env('LOGIN_TEST_EMAIL_AUDITEE') : Cypress.env('LOGIN_TEST_EMAIL'); + const email = field.includes('auditee') + ? Cypress.env('LOGIN_TEST_EMAIL_AUDITEE') + : Cypress.env('LOGIN_TEST_EMAIL'); cy.get(field) .clear() diff --git a/backend/cypress/support/commands.js b/backend/cypress/support/commands.js index 19aa4caff5..e597eb31b9 100644 --- a/backend/cypress/support/commands.js +++ b/backend/cypress/support/commands.js @@ -31,8 +31,8 @@ import { testLogoutGov } from './logout-gov.js'; Cypress.Commands.add('login', () => { testLoginGovLogin(); -}) +}); -Cypress.Commands.add('logout',() => { +Cypress.Commands.add('logout', () => { testLogoutGov(); -}) +}); diff --git a/backend/cypress/support/cross-validation.js b/backend/cypress/support/cross-validation.js index 0150841a30..b0e2b8ce7a 100644 --- a/backend/cypress/support/cross-validation.js +++ b/backend/cypress/support/cross-validation.js @@ -2,7 +2,7 @@ export function testCrossValidation() { cy.url().should('match', /\/audit\/cross-validation\/[0-9A-Z]{17}/); // Cross val runs and passes - cy.get(".usa-button").contains("Begin Validation").click(); + cy.get('.usa-button').contains('Begin Validation').click(); cy.get('.usa-fieldset').contains('No errors were found.'); // Continue to the lock screen diff --git a/backend/cypress/support/dissemination-table.js b/backend/cypress/support/dissemination-table.js index 13c22e279c..25b6ed9e2a 100644 --- a/backend/cypress/support/dissemination-table.js +++ b/backend/cypress/support/dissemination-table.js @@ -13,12 +13,12 @@ const requestOptions = { Authorization: `Bearer ${API_GOV_JWT}`, 'X-Api-Key': API_GOV_KEY, }, -} +}; export function testReportIdNotFound(reportId) { cy.request({ ...requestOptions, - qs: {report_id: `eq.${reportId}`}, + qs: { report_id: `eq.${reportId}` }, }).should((response) => { expect(response.body).to.have.length(0); }); @@ -27,10 +27,12 @@ export function testReportIdNotFound(reportId) { export function testReportIdFound(reportId) { cy.request({ ...requestOptions, - qs: {report_id: `eq.${reportId}`}, + qs: { report_id: `eq.${reportId}` }, }).should((response) => { expect(response.body).to.have.length(1); - const hasAgency = !!(response.body[0]?.cognizant_agency || response.body[0]?.oversight_agency); + const hasAgency = !!( + response.body[0]?.cognizant_agency || response.body[0]?.oversight_agency + ); expect(hasAgency).to.be.true; }); } diff --git a/backend/cypress/support/file-uploaded-msg.js b/backend/cypress/support/file-uploaded-msg.js index 3235abc977..a6d4aeb162 100644 --- a/backend/cypress/support/file-uploaded-msg.js +++ b/backend/cypress/support/file-uploaded-msg.js @@ -1,13 +1,16 @@ - export function testFileUploadMsg(fileSectionName) { - cy.visit(`/audit/`); - cy.url().should('match', /\/audit\//); - cy.get(':nth-child(4) > .usa-table > tbody > tr').last().find('td:nth-child(1)>.usa-link').click(); - cy.get('.usa-link').contains(fileSectionName).click(); - cy.get('#already-submitted') - .invoke('text') - .then((text) => { - const expectedText = 'A file has already been uploaded for this section. A successful reupload will overwrite your previous submission.'; - expect(text.trim()).to.equal(expectedText); - }); - } \ No newline at end of file + cy.visit(`/audit/`); + cy.url().should('match', /\/audit\//); + cy.get(':nth-child(4) > .usa-table > tbody > tr') + .last() + .find('td:nth-child(1)>.usa-link') + .click(); + cy.get('.usa-link').contains(fileSectionName).click(); + cy.get('#already-submitted') + .invoke('text') + .then((text) => { + const expectedText = + 'A file has already been uploaded for this section. A successful reupload will overwrite your previous submission.'; + expect(text.trim()).to.equal(expectedText); + }); +} diff --git a/backend/cypress/support/general-info.js b/backend/cypress/support/general-info.js index 716fa58343..86b89593eb 100644 --- a/backend/cypress/support/general-info.js +++ b/backend/cypress/support/general-info.js @@ -1,53 +1,53 @@ // reusable code for filling out a valid general info form export function testValidGeneralInfo() { - // Fiscal period, pre-filled using info from the previous screen. - //cy.get('#auditee_fiscal_period_start').type('05/08/2023'); - //cy.get('#auditee_fiscal_period_end').type('05/08/2024'); - - // Audit Type - cy.get('label[for=single-audit]').click(); - cy.get('label[for=audit-period-annual]').click(); - - // Auditee information - cy.get('#ein').type('546000173'); - cy.get('label[for=ein_not_an_ssn_attestation]').click(); - cy.get('label[for=multiple-eins-yes]').click(); - cy.get('#auditee_address_line_1').type('1111 E Broad ST'); - cy.get('#auditee_city').type('Richmond'); - cy.get('#auditee_state').type('VA{enter}'); - cy.get('#auditee_zip').type('23219'); - - // Auditee UEI is pre-filled and uneditable. - // cy.get('#auditee_uei').type('CMBSGK6P7BE1'); - cy.get('label[for=multiple-ueis-yes]').click(); - - // Auditee contact information - cy.get('#auditee_contact_name').type('John Doe'); - cy.get('#auditee_contact_title').type('Keymaster'); - cy.get('#auditee_phone').type('5558675309'); - cy.get('#auditee_email').type('va@test'); - - // Auditor information - cy.get('#auditor_ein').type('987654321'); - cy.get('label[for=auditor_ein_not_an_ssn_attestation]').click(); - cy.get('#auditor_firm_name').type('House of Audit'); - // Pre-filled as USA - // cy.get('#auditor_country').type('USA{enter}'); - cy.get('#auditor_address_line_1').type('123 Around the corner'); - cy.get('#auditor_city').type('Centreville'); - cy.get('#auditor_state').type('VA{enter}'); - cy.get('#auditor_zip').type('20121'); - - // Auditor contact information - cy.get('#auditor_contact_name').type('Jane Doe'); - cy.get('#auditor_contact_title').type('Auditor'); - cy.get('#auditor_phone').type('5555555555'); - cy.get('#auditor_email').type('qualified.human.accountant@auditor'); - - cy.get('label[for=secondary_auditors-yes]').click(); - - cy.get('#continue').click(); - - cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}$/); -}; + // Fiscal period, pre-filled using info from the previous screen. + //cy.get('#auditee_fiscal_period_start').type('05/08/2023'); + //cy.get('#auditee_fiscal_period_end').type('05/08/2024'); + + // Audit Type + cy.get('label[for=single-audit]').click(); + cy.get('label[for=audit-period-annual]').click(); + + // Auditee information + cy.get('#ein').type('546000173'); + cy.get('label[for=ein_not_an_ssn_attestation]').click(); + cy.get('label[for=multiple-eins-yes]').click(); + cy.get('#auditee_address_line_1').type('1111 E Broad ST'); + cy.get('#auditee_city').type('Richmond'); + cy.get('#auditee_state').type('VA{enter}'); + cy.get('#auditee_zip').type('23219'); + + // Auditee UEI is pre-filled and uneditable. + // cy.get('#auditee_uei').type('CMBSGK6P7BE1'); + cy.get('label[for=multiple-ueis-yes]').click(); + + // Auditee contact information + cy.get('#auditee_contact_name').type('John Doe'); + cy.get('#auditee_contact_title').type('Keymaster'); + cy.get('#auditee_phone').type('5558675309'); + cy.get('#auditee_email').type('va@test'); + + // Auditor information + cy.get('#auditor_ein').type('987654321'); + cy.get('label[for=auditor_ein_not_an_ssn_attestation]').click(); + cy.get('#auditor_firm_name').type('House of Audit'); + // Pre-filled as USA + // cy.get('#auditor_country').type('USA{enter}'); + cy.get('#auditor_address_line_1').type('123 Around the corner'); + cy.get('#auditor_city').type('Centreville'); + cy.get('#auditor_state').type('VA{enter}'); + cy.get('#auditor_zip').type('20121'); + + // Auditor contact information + cy.get('#auditor_contact_name').type('Jane Doe'); + cy.get('#auditor_contact_title').type('Auditor'); + cy.get('#auditor_phone').type('5555555555'); + cy.get('#auditor_email').type('qualified.human.accountant@auditor'); + + cy.get('label[for=secondary_auditors-yes]').click(); + + cy.get('#continue').click(); + + cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}$/); +} diff --git a/backend/cypress/support/login-gov.js b/backend/cypress/support/login-gov.js index 3f6fd0d49f..4e8927db99 100644 --- a/backend/cypress/support/login-gov.js +++ b/backend/cypress/support/login-gov.js @@ -4,7 +4,10 @@ const LOGIN_TEST_PASSWORD = Cypress.env('LOGIN_TEST_PASSWORD'); const LOGIN_TEST_OTP_SECRET = Cypress.env('LOGIN_TEST_OTP_SECRET'); export function testLoginGovLogin( - email=LOGIN_TEST_EMAIL, password=LOGIN_TEST_PASSWORD, secret=LOGIN_TEST_OTP_SECRET) { + email = LOGIN_TEST_EMAIL, + password = LOGIN_TEST_PASSWORD, + secret = LOGIN_TEST_OTP_SECRET +) { cy.get('a.usa-button.sign-in-button').click(); cy.get('button.usa-button.sign-in-button') .should('contain.text', 'Authenticate with Login.gov') diff --git a/backend/cypress/support/logout-gov.js b/backend/cypress/support/logout-gov.js index 04c0ad0ca6..2f14f6e7de 100644 --- a/backend/cypress/support/logout-gov.js +++ b/backend/cypress/support/logout-gov.js @@ -1,11 +1,7 @@ export function testLogoutGov() { cy.get('.usa-menu-btn').contains('Menu').click(); cy.get('button').contains('Sign out').click(); - cy.origin( - 'https://idp.int.identitysandbox.gov/', - {}, - () => { - cy.contains('Yes, sign out of Login.gov').click(); - } - ); + cy.origin('https://idp.int.identitysandbox.gov/', {}, () => { + cy.contains('Yes, sign out of Login.gov').click(); + }); } diff --git a/backend/cypress/support/workbook-uploads.js b/backend/cypress/support/workbook-uploads.js index 6a39e53c4a..9f90a9c7fc 100644 --- a/backend/cypress/support/workbook-uploads.js +++ b/backend/cypress/support/workbook-uploads.js @@ -2,24 +2,28 @@ // testWorkbookUpload('/audit/excel/federal-awards-expended/*', '#file-input-federal-awards-xlsx', 'federal-awards-expended-UPDATE.xlsx') // assumes you are on the appropriate upload page already -function testWorkbookUpload(interceptUrl, uploadSelector, filename, will_intercept = true) { - cy.intercept(interceptUrl + '*', (req) => { - if (will_intercept) { - // return a success fixture - req.reply({ fixture: 'success-res.json' }); - } else { - // with no intercept, don't intervene - req.continue(); - } - }).as('uploadSuccess'); +function testWorkbookUpload( + interceptUrl, + uploadSelector, + filename, + will_intercept = true +) { + cy.intercept(interceptUrl + '*', (req) => { + if (will_intercept) { + // return a success fixture + req.reply({ fixture: 'success-res.json' }); + } else { + // with no intercept, don't intervene + req.continue(); + } + }).as('uploadSuccess'); cy.get(uploadSelector).attachFile(filename); // Upload url (POST /audit/excel/workbookname) returns a redirect to "/" on successful upload. So, 302. - cy.wait('@uploadSuccess').its('response.statusCode').should('eq', 302); - cy.get('#info_box') - .should( - 'have.text', - 'File successfully validated! Your work has been saved.' - ); + cy.wait('@uploadSuccess').its('response.statusCode').should('eq', 302); + cy.get('#info_box').should( + 'have.text', + 'File successfully validated! Your work has been saved.' + ); cy.get('#continue').click(); cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}/); @@ -49,7 +53,7 @@ export function testWorkbookFindingsUniformGuidance(will_intercept = true) { '#file-input-audit-findings-xlsx', 'test_workbooks/federal-awards-audit-findings-workbook.xlsx', will_intercept - ) + ); } export function testWorkbookFindingsText(will_intercept = true) { @@ -58,7 +62,7 @@ export function testWorkbookFindingsText(will_intercept = true) { '#file-input-audit-findings-text-xlsx', 'test_workbooks/audit-findings-text-workbook.xlsx', will_intercept - ) + ); } export function testWorkbookCorrectiveActionPlan(will_intercept = true) { @@ -67,7 +71,7 @@ export function testWorkbookCorrectiveActionPlan(will_intercept = true) { '#file-input-cap-xlsx', 'test_workbooks/corrective-action-plan-workbook.xlsx', will_intercept - ) + ); } export function testWorkbookAdditionalUEIs(will_intercept = true) { @@ -76,7 +80,7 @@ export function testWorkbookAdditionalUEIs(will_intercept = true) { '#file-input-additional-ueis-xlsx', 'test_workbooks/additional-ueis-workbook.xlsx', will_intercept - ) + ); } export function testWorkbookSecondaryAuditors(will_intercept = true) { @@ -85,7 +89,7 @@ export function testWorkbookSecondaryAuditors(will_intercept = true) { '#file-input-secondary-auditors-xlsx', 'test_workbooks/secondary-auditors-workbook.xlsx', will_intercept - ) + ); } export function testWorkbookAdditionalEINs(will_intercept = true) { @@ -94,5 +98,5 @@ export function testWorkbookAdditionalEINs(will_intercept = true) { '#file-input-additional-eins-xlsx', 'test_workbooks/additional-eins-workbook.xlsx', will_intercept - ) + ); } diff --git a/backend/dissemination/README.md b/backend/dissemination/README.md index 0960f49c36..a5357e0efe 100644 --- a/backend/dissemination/README.md +++ b/backend/dissemination/README.md @@ -1,6 +1,6 @@ # Deploying a new API -An API in PostgREST needs a few things to happen. +An API in PostgREST needs a few things to happen. 1. A JWT secret needs to be loaded into the PostgREST environment. 2. We need to tear down what was @@ -34,7 +34,7 @@ This has three pieces: header.payload.signature ``` -**The data can be decoded without the passphrase.** So, a JWT token is not a way of *encrypting* data. Do not put any privileged information in a JWT. +**The data can be decoded without the passphrase.** So, a JWT token is not a way of _encrypting_ data. Do not put any privileged information in a JWT. However, without the passphrase, the signature cannot be verified. PostgREST will not accept a JWT as valid that does not have a good signature. Therefore, it should be the case that only JWTs we create, with this tool, signed with a passphrase we know, can be accepted by our stack as valid. @@ -46,12 +46,12 @@ For symmetric use, that passphrase must be loaded into a GH Secret, and that sec Our JWT only lives at api.data.gov. We will put it in the `Authorization: Bearer ` header. In this way, only API requests that come through api.data.gov (meaning requests that go to api.fac.gov) will be executed by PostgREST. All other queries, from all other sources, will be rejected. -It is important that the role you choose matches the role we expect for public queries. Our schemas are attached to the role `api_fac_gov`. +It is important that the role you choose matches the role we expect for public queries. Our schemas are attached to the role `api_fac_gov`. For example: ``` -curl -X GET -H "Authorization: Bearer ${JWT}" "${API_FAC_URL}/general?limit=1" +curl -X GET -H "Authorization: Bearer ${JWT}" "${API_FAC_URL}/general?limit=1" ``` should return one item from the general view. API_FAC_URL might be `http://localhost:3000` in testing locally, or `https://api.fac.gov` when working live. @@ -72,14 +72,14 @@ checks this header, and if the correct role is present (`fac_gov_tribal_data_acc ## Standing up / tearing down -With each deployment of the stack, we should tear down and stand up the entire API. +With each deployment of the stack, we should tear down and stand up the entire API. 1. `fac drop_deprecated_schema_and_views` will tear down any deprecated APIs. Always run it. 1. `fac drop_api_schema` will tear down the active schema and everything associated with it. -2. `fac create_api_schema` will create roles and the schema. -3. `fac create_api_views` will create the views on the data. +1. `fac create_api_schema` will create roles and the schema. +1. `fac create_api_views` will create the views on the data. -With this sequence, we completely tear down old *and* current APIs, as well as associated roles. Then, we stand them up again, including all roles. This guarantees that every deploy is a complete, fresh instantiation of the API, and any changes that may have been made to views, functions, or privileges are caught. +With this sequence, we completely tear down old _and_ current APIs, as well as associated roles. Then, we stand them up again, including all roles. This guarantees that every deploy is a complete, fresh instantiation of the API, and any changes that may have been made to views, functions, or privileges are caught. In other words: the API should always be stood up from a "blank slate" in the name of stateless deploys. @@ -87,9 +87,9 @@ In other words: the API should always be stood up from a "blank slate" in the na When adding a new API version. -1. Create a folder in api/dissemination for the version name. E.g. `v1_0_1`. +1. Create a folder in api/dissemination for the version name. E.g. `v1_0_1`. 2. Copy the contents of an existing API as a starting point. -3. Update `docker-compose.yml` and `docker-compose-web.yml` to change the `PGRST_DB_SCHEMAS` key to reflect all the active schemas. +3. Update `docker-compose.yml` and `docker-compose-web.yml` to change the `PGRST_DB_SCHEMAS` key to reflect all the active schemas. 1. ADD TO THE END OF THIS LIST. The first entry is the default. Only add to the front of the list if we are certain the schema should become the new default. - 2. This is likely true of TESTED patch version bumps (v1_0_0 to v1_0_1), and *maybe* minor version bumps (v1_0_0 to v1_1_0). MAJOR bumps require change management messaging. + 2. This is likely true of TESTED patch version bumps (v1_0_0 to v1_0_1), and _maybe_ minor version bumps (v1_0_0 to v1_1_0). MAJOR bumps require change management messaging. 4. Update `APIViewTests` to make sure you're testing the right schema. (That file might want some love...) diff --git a/backend/dissemination/data-model/fac.md b/backend/dissemination/data-model/fac.md index 74d4716b0e..192aa38bda 100644 --- a/backend/dissemination/data-model/fac.md +++ b/backend/dissemination/data-model/fac.md @@ -1,4 +1,5 @@ FAC Data Dissemination Data Model + ```plantuml @startuml Data Model @@ -14,7 +15,7 @@ TABLE(General, "General") { audit_period_covered audit_type fy_start_date - fy_end_date + fy_end_date audit_year /'22 AUDITYEAR '/ auditee_ein auditee_duns @@ -28,7 +29,7 @@ TABLE(General, "General") { data_source /'GFAC or CFAC '/ auditee_address_line_1 - auditee_certify_name + auditee_certify_name auditee_certify_title auditee_city auditee_contact_name @@ -38,42 +39,42 @@ TABLE(General, "General") { auditee_phone auditee_state auditee_zip - - auditor_address_line_1 + + auditor_address_line_1 auditor_city auditor_contact_name auditor_contact_title /' 22 CPANAMETITLE '/ auditor_country auditor_email - auditor_firm_name + auditor_firm_name auditor_foreign_addr /' 22 CPAFOREIGN'/ auditor_phone auditor_state auditor_title auditor_zip - + cognizant_agency oversight_agency - initial_date_received + initial_date_received /' SK - from data key file - fac_accepted_date - The most recent date an audit report was submitted to the FAC that passed FAC screening and was accepted as a valid OMB Circular A-133 report submission. '/ - fac_accepted_date /' JM: ?ready for certification. How is this different from initial_date_received? '/ + fac_accepted_date /' JM: ?ready for certification. How is this different from initial_date_received? '/ auditee_certified_date - auditor_certified_date + auditor_certified_date date_published type_report_financial_statements special_framework - is_special_framework_required + is_special_framework_required type_report_special_purpose_framework is_going_concern is_significant_deficiency - is_material_weakness - is_material_noncompliance + is_material_weakness + is_material_noncompliance is_duplicate_reports dollar_threshold - is_low_risk + is_low_risk prior_finding_agency_list ' JM: Need to understand the following @@ -87,16 +88,16 @@ TABLE(General, "General") { is_current_or_former_findings /'22 CYFINDINGS '/ /' SK - This is a boolean field '/ ' hist_ein_subcode /' SK - EINSUBCODE is no longer in use. Added hist_ '/ entity_type /' SK - from Data key file - Self reported type of entity '/ - - + + number_months /' SK - from Data key file - Number of Months Covered by the 'Other' Audit Period'/ - is_prior_year_schedule /' SK - from Data key file -Indicate whether or not current year findings or prior year findings affecting direct funds were reported. This is a boolean field. Added is_ . + is_prior_year_schedule /' SK - from Data key file -Indicate whether or not current year findings or prior year findings affecting direct funds were reported. This is a boolean field. Added is_ . JM: the column name does not sound right - what is a schedule?'/ - + is_material_weakness_major_program /' SK - Not used since 2013. Is this hist_ ?'/ is_sd_material_weakness /' SK - from 1146 spreadsheet - Whether or not the audit disclosed any reportable condition/significant deficiency as a material weakness on financial statements. Its a Y/N field. It gets disseminated in the GEN file as MATERIALWEAKNESS'/ - + sd_material_weakness_major_program /' SK - Present in ELECAUDITHEADER. Is this different from is_material_weakness_major_program ? '/ @@ -104,9 +105,9 @@ TABLE(General, "General") { total_fed_expenditures /' SK - from 1146 Questions sheet - It is the summation of all expenditures listed on the federal awards workbook. It is not entered by the user, the workbook calculates total expenditure and it is stored here. '/ - type_audit_code /' SK - from 1146 Questions sheet - Would indicate if the audit is A133 or UG. '/ + type_audit_code /' SK - from 1146 Questions sheet - Would indicate if the audit is A133 or UG. '/ type_report_major_program /' SK - from Data key file - Type of Report Issued on the Major Program Compliance '/ - + cfac_report_id cfac_version ??needed? ' JM: Do we need CFAC DB_KEY? @@ -120,11 +121,11 @@ TABLE(General, "General") { ' hist_completed_date /' Historic data '/ ' hist_copies /' Historic data '/ ' hist_date_firewall /' Historic data '/ - ' hist_date_received_other /' Historic data '/ + ' hist_date_received_other /' Historic data '/ ' hist_component_date_received /' Historic data '/ ' hist_image /' Historic data '/ ' hist_type_of_entity /' Historic data '/ - ' hist_previous_completed_on_date /' Historic data '/ + ' hist_previous_completed_on_date /' Historic data '/ ' hist_previous_date_firewall /' Historic data '/ ' hist_previous_date_published /' Historic data '/ ' hist_reportable_condition /' Historic data '/ @@ -139,45 +140,45 @@ TABLE(Auditor, "GenAuditor") { + auditor_seq_number auditor_city auditor_contact - auditor_country - auditor_ein + auditor_country + auditor_ein auditor_email - auditor_fax - auditor_firm_name + auditor_fax + auditor_firm_name auditor_foreign_addr auditor_phone - auditor_state - auditor_street1 - auditor_title + auditor_state + auditor_street1 + auditor_title auditor_zip_code - + "VERSION" ? /' Discuss with Matt '/ } TABLE(Award, "FederalAward") { + General.report_id - + award_seq_number + + award_seq_number federal_agency_prefix - federal_award_extension - additional_award_identification + federal_award_extension + additional_award_identification federal_program_name - amount_expended + amount_expended cluster_name other_cluster_name state_cluster_name cluster_total - federal_program_total + federal_program_total is_loan loan_balance - is_direct + is_direct + + is_major + mp_audit_report_type + findings_count - is_major - mp_audit_report_type - findings_count - - passthrough_amount - is_passthrough_award + passthrough_amount + is_passthrough_award ' --need more clarity on these fields @@ -186,18 +187,18 @@ TABLE(Award, "FederalAward") { ' is_passed /' SK - This is the same as is_passthrough_award. Which field do we keep ? '/ ' subrecipient_amount /' SK - This is the same as passthrough_amount. Which field do we keep ? '/ - + ' program_name /' SK - This might be CFDAPROGRAMNAME, which is different from federal_program_name. Maybe rename to hist_cfda_program_name? Seems to be part of internal table based on 1146 - Questions sheet. '/ ' type_requirement /' SK - from 1146 Questions sheet - Its collected on form III.4.f... '/ ' not needed for now - ' hist_research_and_development - ' hist_questioned_costs2 /' Historic data '/ + ' hist_research_and_development + ' hist_questioned_costs2 /' Historic data '/ ' hist_findings /' Historic data '/ - ' hist_arra + ' hist_arra ' hist_typereoirt_mp_iverride - + } TABLE(Passthrough, "Passthrough") { @@ -212,7 +213,7 @@ TABLE(Finding, "Finding") { + Award.award_seq_number /' To be added to GFAC '/ + Award.report_id + finding_seq_number - finding_ref_number + finding_ref_number is_material_weakness is_modified_opinion is_other_findings @@ -232,7 +233,7 @@ TABLE(Note, "Note") { content note_index note_title - type_id + type_id version /' Is this the latest version? Discuss with Matt. Is this required in General? '/ } @@ -253,7 +254,7 @@ TABLE(CAPText, "CAPText") { TABLE(Revision, "Revision") { - /' Maybe needed only for Historical data' + /' Maybe needed only for Historical data' Is this needed for GFAC? - Decision to be made.'/ } diff --git a/backend/docker-compose-web.yml b/backend/docker-compose-web.yml index 1e5914ff31..535af2216d 100644 --- a/backend/docker-compose-web.yml +++ b/backend/docker-compose-web.yml @@ -1,17 +1,17 @@ --- -version: "3.7" +version: '3.7' services: db: - image: "postgres:12" + image: 'postgres:12' environment: - POSTGRES_HOST_AUTH_METHOD: "trust" + POSTGRES_HOST_AUTH_METHOD: 'trust' volumes: - postgres-data:/var/lib/postgresql/data/ ports: - - "5432:5432" + - '5432:5432' healthcheck: - test: ["CMD-SHELL", "pg_isready -d postgres -U postgres"] + test: ['CMD-SHELL', 'pg_isready -d postgres -U postgres'] interval: 10s timeout: 5s retries: 10 @@ -41,9 +41,9 @@ services: DISABLE_AUTH: ${DISABLE_AUTH:-False} PGRST_JWT_SECRET: ${PGRST_JWT_SECRET:-32_chars_fallback_secret_testing} # Fallback value for testing environments env_file: - - ".env" + - '.env' ports: - - "8000:8000" + - '8000:8000' volumes: - .:/src - /src/node_modules @@ -54,32 +54,32 @@ services: MAX_FILE_SIZE: 25M SIGNATURE_CHECKS: 1 ports: - - "9000:9000" + - '9000:9000' minio: - container_name: "minio" + container_name: 'minio' image: minio/minio command: server /tmp/minio --console-address ":9002" ports: - - "9001:9000" - - "9002:9002" + - '9001:9000' + - '9002:9002' volumes: - - "minio-vol:/tmp/minio" + - 'minio-vol:/tmp/minio' api: image: ghcr.io/gsa-tts/fac/postgrest:latest ports: - - "3000:3000" + - '3000:3000' expose: - - "3000" + - '3000' environment: PGRST_DB_URI: postgres://postgres@db:5432/postgres PGRST_OPENAPI_SERVER_PROXY_URI: http://127.0.0.1:3000 PGRST_DB_ANON_ROLE: anon - PGRST_DB_SCHEMAS: "api_v1_0_0" + PGRST_DB_SCHEMAS: 'api_v1_0_0' PGRST_JWT_SECRET: ${PGRST_JWT_SECRET:-32_chars_fallback_secret_testing} # Fallback value for testing environments depends_on: db: condition: service_healthy - + volumes: postgres-data: minio-vol: diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index f2822557af..6b78e0f563 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -1,19 +1,19 @@ -version: "3.7" +version: '3.7' services: #--------------------------------------------- # Postgres DB #--------------------------------------------- db: - image: "postgres:12" + image: 'postgres:12' environment: POSTGRES_HOST_AUTH_METHOD: trust volumes: - postgres-data:/var/lib/postgresql/data/ ports: - - "5432:5432" + - '5432:5432' healthcheck: - test: ["CMD-SHELL", "pg_isready -d postgres -U postgres"] + test: ['CMD-SHELL', 'pg_isready -d postgres -U postgres'] interval: 10s timeout: 5s retries: 10 @@ -35,7 +35,7 @@ services: web: build: context: . - dockerfile: "./${DOCKERFILE:-Dockerfile}" + dockerfile: './${DOCKERFILE:-Dockerfile}' command: /src/run.sh depends_on: db: @@ -63,9 +63,9 @@ services: ENABLE_DEBUG_TOOLBAR: false env_file: - - ".env" + - '.env' ports: - - "8000:8000" + - '8000:8000' volumes: - .:/src - /src/node_modules @@ -80,20 +80,20 @@ services: MAX_FILE_SIZE: 25M SIGNATURE_CHECKS: 1 ports: - - "9000:9000" + - '9000:9000' #--------------------------------------------- # Minio (S3 clone) #--------------------------------------------- minio: - container_name: "minio" + container_name: 'minio' image: minio/minio command: server /tmp/minio --console-address ":9002" ports: - - "9001:9000" - - "9002:9002" + - '9001:9000' + - '9002:9002' volumes: - - "minio-vol:/tmp/minio" + - 'minio-vol:/tmp/minio' #--------------------------------------------- # PostgREST API provider @@ -101,14 +101,14 @@ services: api: image: ghcr.io/gsa-tts/fac/postgrest:latest ports: - - "3000:3000" + - '3000:3000' expose: - - "3000" + - '3000' environment: PGRST_DB_URI: postgres://postgres@db:5432/postgres PGRST_OPENAPI_SERVER_PROXY_URI: http://127.0.0.1:3000 PGRST_DB_ANON_ROLE: anon - PGRST_DB_SCHEMAS: "api_v1_0_0" + PGRST_DB_SCHEMAS: 'api_v1_0_0' PGRST_JWT_SECRET: ${PGRST_JWT_SECRET:-32_chars_fallback_secret_testing} # Fallback value for testing environments depends_on: db: diff --git a/backend/manifests/task-manifest-staging.yml b/backend/manifests/task-manifest-staging.yml index ce18272892..aed11857d0 100644 --- a/backend/manifests/task-manifest-staging.yml +++ b/backend/manifests/task-manifest-staging.yml @@ -1,22 +1,22 @@ --- applications: -- name: task-runner-20 - buildpacks: - - python_buildpack - memory: 2G - path: ../ - timeout: 180 - health-check-type: process - env: - ENV: STAGING - DJANGO_BASE_URL: https://fac-staging.app.cloud.gov - services: - - fac-db - - fac-public-s3 - - fac-key-service - command: (python manage.py public_data_loader -y 20 && echo SUCCESS || echo TASK_FAIL) && sleep infinity + - name: task-runner-20 + buildpacks: + - python_buildpack + memory: 2G + path: ../ + timeout: 180 + health-check-type: process + env: + ENV: STAGING + DJANGO_BASE_URL: https://fac-staging.app.cloud.gov + services: + - fac-db + - fac-public-s3 + - fac-key-service + command: (python manage.py public_data_loader -y 20 && echo SUCCESS || echo TASK_FAIL) && sleep infinity - # run with - # cf push -f manifests/task-manifest-staging.yml --no-route - # - # This is an example task, you can modify the command to run other tasks + # run with + # cf push -f manifests/task-manifest-staging.yml --no-route + # + # This is an example task, you can modify the command to run other tasks diff --git a/backend/schemas/source/base/ClusterNames.json b/backend/schemas/source/base/ClusterNames.json index ee76bfe769..c54362eb54 100644 --- a/backend/schemas/source/base/ClusterNames.json +++ b/backend/schemas/source/base/ClusterNames.json @@ -40,4 +40,4 @@ "CDBG - ENTITLEMENT GRANTS CLUSTER", "CDBG - DISASTER RECOVERY GRANTS - PUB. L. NO. 113-2 CLUSTER" ] -} \ No newline at end of file +} diff --git a/backend/schemas/source/base/ComplianceRequirementTypes.json b/backend/schemas/source/base/ComplianceRequirementTypes.json index ed07753eff..29d8cc469c 100644 --- a/backend/schemas/source/base/ComplianceRequirementTypes.json +++ b/backend/schemas/source/base/ComplianceRequirementTypes.json @@ -1,8195 +1,8195 @@ -{ - "requirement_types": [ - "A", - "B", - "C", - "E", - "F", - "G", - "H", - "I", - "J", - "L", - "M", - "N", - "P", - "AB", - "AC", - "AE", - "AF", - "AG", - "AH", - "AI", - "AJ", - "AL", - "AM", - "AN", - "AP", - "BC", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BP", - "CE", - "CF", - "CG", - "CH", - "CI", - "CJ", - "CL", - "CM", - "CN", - "CP", - "EF", - "EG", - "EH", - "EI", - "EJ", - "EL", - "EM", - "EN", - "EP", - "FG", - "FH", - "FI", - "FJ", - "FL", - "FM", - "FN", - "FP", - "GH", - "GI", - "GJ", - "GL", - "GM", - "GN", - "GP", - "HI", - "HJ", - "HL", - "HM", - "HN", - "HP", - "IJ", - "IL", - "IM", - "IN", - "IP", - "JL", - "JM", - "JN", - "JP", - "LM", - "LN", - "LP", - "MN", - "MP", - "NP", - "ABC", - "ABE", - "ABF", - "ABG", - "ABH", - "ABI", - "ABJ", - "ABL", - "ABM", - "ABN", - "ABP", - "ACE", - "ACF", - "ACG", - "ACH", - "ACI", - "ACJ", - "ACL", - "ACM", - "ACN", - "ACP", - "AEF", - "AEG", - "AEH", - "AEI", - "AEJ", - "AEL", - "AEM", - "AEN", - "AEP", - "AFG", - "AFH", - "AFI", - "AFJ", - "AFL", - "AFM", - "AFN", - "AFP", - "AGH", - "AGI", - "AGJ", - "AGL", - "AGM", - "AGN", - "AGP", - "AHI", - "AHJ", - "AHL", - "AHM", - "AHN", - "AHP", - "AIJ", - "AIL", - "AIM", - "AIN", - "AIP", - "AJL", - "AJM", - "AJN", - "AJP", - "ALM", - "ALN", - "ALP", - "AMN", - "AMP", - "ANP", - "BCE", - "BCF", - "BCG", - "BCH", - "BCI", - "BCJ", - "BCL", - "BCM", - "BCN", - "BCP", - "BEF", - "BEG", - "BEH", - "BEI", - "BEJ", - "BEL", - "BEM", - "BEN", - "BEP", - "BFG", - "BFH", - "BFI", - "BFJ", - "BFL", - "BFM", - "BFN", - "BFP", - "BGH", - "BGI", - "BGJ", - "BGL", - "BGM", - "BGN", - "BGP", - "BHI", - "BHJ", - "BHL", - "BHM", - "BHN", - "BHP", - "BIJ", - "BIL", - "BIM", - "BIN", - "BIP", - "BJL", - "BJM", - "BJN", - "BJP", - "BLM", - "BLN", - "BLP", - "BMN", - "BMP", - "BNP", - "CEF", - "CEG", - "CEH", - "CEI", - "CEJ", - "CEL", - "CEM", - "CEN", - "CEP", - "CFG", - "CFH", - "CFI", - "CFJ", - "CFL", - "CFM", - "CFN", - "CFP", - "CGH", - "CGI", - "CGJ", - "CGL", - "CGM", - "CGN", - "CGP", - "CHI", - "CHJ", - "CHL", - "CHM", - "CHN", - "CHP", - "CIJ", - "CIL", - "CIM", - "CIN", - "CIP", - "CJL", - "CJM", - "CJN", - "CJP", - "CLM", - "CLN", - "CLP", - "CMN", - "CMP", - "CNP", - "EFG", - "EFH", - "EFI", - "EFJ", - "EFL", - "EFM", - "EFN", - "EFP", - "EGH", - "EGI", - "EGJ", - "EGL", - "EGM", - "EGN", - "EGP", - "EHI", - "EHJ", - "EHL", - "EHM", - "EHN", - "EHP", - "EIJ", - "EIL", - "EIM", - "EIN", - "EIP", - "EJL", - "EJM", - "EJN", - "EJP", - "ELM", - "ELN", - "ELP", - "EMN", - "EMP", - "ENP", - "FGH", - "FGI", - "FGJ", - "FGL", - "FGM", - "FGN", - "FGP", - "FHI", - "FHJ", - "FHL", - "FHM", - "FHN", - "FHP", - "FIJ", - "FIL", - "FIM", - "FIN", - "FIP", - "FJL", - "FJM", - "FJN", - "FJP", - "FLM", - "FLN", - "FLP", - "FMN", - "FMP", - "FNP", - "GHI", - "GHJ", - "GHL", - "GHM", - "GHN", - "GHP", - "GIJ", - "GIL", - "GIM", - "GIN", - "GIP", - "GJL", - "GJM", - "GJN", - "GJP", - "GLM", - "GLN", - "GLP", - "GMN", - "GMP", - "GNP", - "HIJ", - "HIL", - "HIM", - "HIN", - "HIP", - "HJL", - "HJM", - "HJN", - "HJP", - "HLM", - "HLN", - "HLP", - "HMN", - "HMP", - "HNP", - "IJL", - "IJM", - "IJN", - "IJP", - "ILM", - "ILN", - "ILP", - "IMN", - "IMP", - "INP", - "JLM", - "JLN", - "JLP", - "JMN", - "JMP", - "JNP", - "LMN", - "LMP", - "LNP", - "MNP", - "ABCE", - "ABCF", - "ABCG", - "ABCH", - "ABCI", - "ABCJ", - "ABCL", - "ABCM", - "ABCN", - "ABCP", - "ABEF", - "ABEG", - "ABEH", - "ABEI", - "ABEJ", - "ABEL", - "ABEM", - "ABEN", - "ABEP", - "ABFG", - "ABFH", - "ABFI", - "ABFJ", - "ABFL", - "ABFM", - "ABFN", - "ABFP", - "ABGH", - "ABGI", - "ABGJ", - "ABGL", - "ABGM", - "ABGN", - "ABGP", - "ABHI", - "ABHJ", - "ABHL", - "ABHM", - "ABHN", - "ABHP", - "ABIJ", - "ABIL", - "ABIM", - "ABIN", - "ABIP", - "ABJL", - "ABJM", - "ABJN", - "ABJP", - "ABLM", - "ABLN", - "ABLP", - "ABMN", - "ABMP", - "ABNP", - "ACEF", - "ACEG", - "ACEH", - "ACEI", - "ACEJ", - "ACEL", - "ACEM", - "ACEN", - "ACEP", - "ACFG", - "ACFH", - "ACFI", - "ACFJ", - "ACFL", - "ACFM", - "ACFN", - "ACFP", - "ACGH", - "ACGI", - "ACGJ", - "ACGL", - "ACGM", - "ACGN", - "ACGP", - "ACHI", - "ACHJ", - "ACHL", - "ACHM", - "ACHN", - "ACHP", - "ACIJ", - "ACIL", - "ACIM", - "ACIN", - "ACIP", - "ACJL", - "ACJM", - "ACJN", - "ACJP", - "ACLM", - "ACLN", - "ACLP", - "ACMN", - "ACMP", - "ACNP", - "AEFG", - "AEFH", - "AEFI", - "AEFJ", - "AEFL", - "AEFM", - "AEFN", - "AEFP", - "AEGH", - "AEGI", - "AEGJ", - "AEGL", - "AEGM", - "AEGN", - "AEGP", - "AEHI", - "AEHJ", - "AEHL", - "AEHM", - "AEHN", - "AEHP", - "AEIJ", - "AEIL", - "AEIM", - "AEIN", - "AEIP", - "AEJL", - "AEJM", - "AEJN", - "AEJP", - "AELM", - "AELN", - "AELP", - "AEMN", - "AEMP", - "AENP", - "AFGH", - "AFGI", - "AFGJ", - "AFGL", - "AFGM", - "AFGN", - "AFGP", - "AFHI", - "AFHJ", - "AFHL", - "AFHM", - "AFHN", - "AFHP", - "AFIJ", - "AFIL", - "AFIM", - "AFIN", - "AFIP", - "AFJL", - "AFJM", - "AFJN", - "AFJP", - "AFLM", - "AFLN", - "AFLP", - "AFMN", - "AFMP", - "AFNP", - "AGHI", - "AGHJ", - "AGHL", - "AGHM", - "AGHN", - "AGHP", - "AGIJ", - "AGIL", - "AGIM", - "AGIN", - "AGIP", - "AGJL", - "AGJM", - "AGJN", - "AGJP", - "AGLM", - "AGLN", - "AGLP", - "AGMN", - "AGMP", - "AGNP", - "AHIJ", - "AHIL", - "AHIM", - "AHIN", - "AHIP", - "AHJL", - "AHJM", - "AHJN", - "AHJP", - "AHLM", - "AHLN", - "AHLP", - "AHMN", - "AHMP", - "AHNP", - "AIJL", - "AIJM", - "AIJN", - "AIJP", - "AILM", - "AILN", - "AILP", - "AIMN", - "AIMP", - "AINP", - "AJLM", - "AJLN", - "AJLP", - "AJMN", - "AJMP", - "AJNP", - "ALMN", - "ALMP", - "ALNP", - "AMNP", - "BCEF", - "BCEG", - "BCEH", - "BCEI", - "BCEJ", - "BCEL", - "BCEM", - "BCEN", - "BCEP", - "BCFG", - "BCFH", - "BCFI", - "BCFJ", - "BCFL", - "BCFM", - "BCFN", - "BCFP", - "BCGH", - "BCGI", - "BCGJ", - "BCGL", - "BCGM", - "BCGN", - "BCGP", - "BCHI", - "BCHJ", - "BCHL", - "BCHM", - "BCHN", - "BCHP", - "BCIJ", - "BCIL", - "BCIM", - "BCIN", - "BCIP", - "BCJL", - "BCJM", - "BCJN", - "BCJP", - "BCLM", - "BCLN", - "BCLP", - "BCMN", - "BCMP", - "BCNP", - "BEFG", - "BEFH", - "BEFI", - "BEFJ", - "BEFL", - "BEFM", - "BEFN", - "BEFP", - "BEGH", - "BEGI", - "BEGJ", - "BEGL", - "BEGM", - "BEGN", - "BEGP", - "BEHI", - "BEHJ", - "BEHL", - "BEHM", - "BEHN", - "BEHP", - "BEIJ", - "BEIL", - "BEIM", - "BEIN", - "BEIP", - "BEJL", - "BEJM", - "BEJN", - "BEJP", - "BELM", - "BELN", - "BELP", - "BEMN", - "BEMP", - "BENP", - "BFGH", - "BFGI", - "BFGJ", - "BFGL", - "BFGM", - "BFGN", - "BFGP", - "BFHI", - "BFHJ", - "BFHL", - "BFHM", - "BFHN", - "BFHP", - "BFIJ", - "BFIL", - "BFIM", - "BFIN", - "BFIP", - "BFJL", - "BFJM", - "BFJN", - "BFJP", - "BFLM", - "BFLN", - "BFLP", - "BFMN", - "BFMP", - "BFNP", - "BGHI", - "BGHJ", - "BGHL", - "BGHM", - "BGHN", - "BGHP", - "BGIJ", - "BGIL", - "BGIM", - "BGIN", - "BGIP", - "BGJL", - "BGJM", - "BGJN", - "BGJP", - "BGLM", - "BGLN", - "BGLP", - "BGMN", - "BGMP", - "BGNP", - "BHIJ", - "BHIL", - "BHIM", - "BHIN", - "BHIP", - "BHJL", - "BHJM", - "BHJN", - "BHJP", - "BHLM", - "BHLN", - "BHLP", - "BHMN", - "BHMP", - "BHNP", - "BIJL", - "BIJM", - "BIJN", - "BIJP", - "BILM", - "BILN", - "BILP", - "BIMN", - "BIMP", - "BINP", - "BJLM", - "BJLN", - "BJLP", - "BJMN", - "BJMP", - "BJNP", - "BLMN", - "BLMP", - "BLNP", - "BMNP", - "CEFG", - "CEFH", - "CEFI", - "CEFJ", - "CEFL", - "CEFM", - "CEFN", - "CEFP", - "CEGH", - "CEGI", - "CEGJ", - "CEGL", - "CEGM", - "CEGN", - "CEGP", - "CEHI", - "CEHJ", - "CEHL", - "CEHM", - "CEHN", - "CEHP", - "CEIJ", - "CEIL", - "CEIM", - "CEIN", - "CEIP", - "CEJL", - "CEJM", - "CEJN", - "CEJP", - "CELM", - "CELN", - "CELP", - "CEMN", - "CEMP", - "CENP", - "CFGH", - "CFGI", - "CFGJ", - "CFGL", - "CFGM", - "CFGN", - "CFGP", - "CFHI", - "CFHJ", - "CFHL", - "CFHM", - "CFHN", - "CFHP", - "CFIJ", - "CFIL", - "CFIM", - "CFIN", - "CFIP", - "CFJL", - "CFJM", - "CFJN", - "CFJP", - "CFLM", - "CFLN", - "CFLP", - "CFMN", - "CFMP", - "CFNP", - "CGHI", - "CGHJ", - "CGHL", - "CGHM", - "CGHN", - "CGHP", - "CGIJ", - "CGIL", - "CGIM", - "CGIN", - "CGIP", - "CGJL", - "CGJM", - "CGJN", - "CGJP", - "CGLM", - "CGLN", - "CGLP", - "CGMN", - "CGMP", - "CGNP", - "CHIJ", - "CHIL", - "CHIM", - "CHIN", - "CHIP", - "CHJL", - "CHJM", - "CHJN", - "CHJP", - "CHLM", - "CHLN", - "CHLP", - "CHMN", - "CHMP", - "CHNP", - "CIJL", - "CIJM", - "CIJN", - "CIJP", - "CILM", - "CILN", - "CILP", - "CIMN", - "CIMP", - "CINP", - "CJLM", - "CJLN", - "CJLP", - "CJMN", - "CJMP", - "CJNP", - "CLMN", - "CLMP", - "CLNP", - "CMNP", - "EFGH", - "EFGI", - "EFGJ", - "EFGL", - "EFGM", - "EFGN", - "EFGP", - "EFHI", - "EFHJ", - "EFHL", - "EFHM", - "EFHN", - "EFHP", - "EFIJ", - "EFIL", - "EFIM", - "EFIN", - "EFIP", - "EFJL", - "EFJM", - "EFJN", - "EFJP", - "EFLM", - "EFLN", - "EFLP", - "EFMN", - "EFMP", - "EFNP", - "EGHI", - "EGHJ", - "EGHL", - "EGHM", - "EGHN", - "EGHP", - "EGIJ", - "EGIL", - "EGIM", - "EGIN", - "EGIP", - "EGJL", - "EGJM", - "EGJN", - "EGJP", - "EGLM", - "EGLN", - "EGLP", - "EGMN", - "EGMP", - "EGNP", - "EHIJ", - "EHIL", - "EHIM", - "EHIN", - "EHIP", - "EHJL", - "EHJM", - "EHJN", - "EHJP", - "EHLM", - "EHLN", - "EHLP", - "EHMN", - "EHMP", - "EHNP", - "EIJL", - "EIJM", - "EIJN", - "EIJP", - "EILM", - "EILN", - "EILP", - "EIMN", - "EIMP", - "EINP", - "EJLM", - "EJLN", - "EJLP", - "EJMN", - "EJMP", - "EJNP", - "ELMN", - "ELMP", - "ELNP", - "EMNP", - "FGHI", - "FGHJ", - "FGHL", - "FGHM", - "FGHN", - "FGHP", - "FGIJ", - "FGIL", - "FGIM", - "FGIN", - "FGIP", - "FGJL", - "FGJM", - "FGJN", - "FGJP", - "FGLM", - "FGLN", - "FGLP", - "FGMN", - "FGMP", - "FGNP", - "FHIJ", - "FHIL", - "FHIM", - "FHIN", - "FHIP", - "FHJL", - "FHJM", - "FHJN", - "FHJP", - "FHLM", - "FHLN", - "FHLP", - "FHMN", - "FHMP", - "FHNP", - "FIJL", - "FIJM", - "FIJN", - "FIJP", - "FILM", - "FILN", - "FILP", - "FIMN", - "FIMP", - "FINP", - "FJLM", - "FJLN", - "FJLP", - "FJMN", - "FJMP", - "FJNP", - "FLMN", - "FLMP", - "FLNP", - "FMNP", - "GHIJ", - "GHIL", - "GHIM", - "GHIN", - "GHIP", - "GHJL", - "GHJM", - "GHJN", - "GHJP", - "GHLM", - "GHLN", - "GHLP", - "GHMN", - "GHMP", - "GHNP", - "GIJL", - "GIJM", - "GIJN", - "GIJP", - "GILM", - "GILN", - "GILP", - "GIMN", - "GIMP", - "GINP", - "GJLM", - "GJLN", - "GJLP", - "GJMN", - "GJMP", - "GJNP", - "GLMN", - "GLMP", - "GLNP", - "GMNP", - "HIJL", - "HIJM", - "HIJN", - "HIJP", - "HILM", - "HILN", - "HILP", - "HIMN", - "HIMP", - "HINP", - "HJLM", - "HJLN", - "HJLP", - "HJMN", - "HJMP", - "HJNP", - "HLMN", - "HLMP", - "HLNP", - "HMNP", - "IJLM", - "IJLN", - "IJLP", - "IJMN", - "IJMP", - "IJNP", - "ILMN", - "ILMP", - "ILNP", - "IMNP", - "JLMN", - "JLMP", - "JLNP", - "JMNP", - "LMNP", - "ABCEF", - "ABCEG", - "ABCEH", - "ABCEI", - "ABCEJ", - "ABCEL", - "ABCEM", - "ABCEN", - "ABCEP", - "ABCFG", - "ABCFH", - "ABCFI", - "ABCFJ", - "ABCFL", - "ABCFM", - "ABCFN", - "ABCFP", - "ABCGH", - "ABCGI", - "ABCGJ", - "ABCGL", - "ABCGM", - "ABCGN", - "ABCGP", - "ABCHI", - "ABCHJ", - "ABCHL", - "ABCHM", - "ABCHN", - "ABCHP", - "ABCIJ", - "ABCIL", - "ABCIM", - "ABCIN", - "ABCIP", - "ABCJL", - "ABCJM", - "ABCJN", - "ABCJP", - "ABCLM", - "ABCLN", - "ABCLP", - "ABCMN", - "ABCMP", - "ABCNP", - "ABEFG", - "ABEFH", - "ABEFI", - "ABEFJ", - "ABEFL", - "ABEFM", - "ABEFN", - "ABEFP", - "ABEGH", - "ABEGI", - "ABEGJ", - "ABEGL", - "ABEGM", - "ABEGN", - "ABEGP", - "ABEHI", - "ABEHJ", - "ABEHL", - "ABEHM", - "ABEHN", - "ABEHP", - "ABEIJ", - "ABEIL", - "ABEIM", - "ABEIN", - "ABEIP", - "ABEJL", - "ABEJM", - "ABEJN", - "ABEJP", - "ABELM", - "ABELN", - "ABELP", - "ABEMN", - "ABEMP", - "ABENP", - "ABFGH", - "ABFGI", - "ABFGJ", - "ABFGL", - "ABFGM", - "ABFGN", - "ABFGP", - "ABFHI", - "ABFHJ", - "ABFHL", - "ABFHM", - "ABFHN", - "ABFHP", - "ABFIJ", - "ABFIL", - "ABFIM", - "ABFIN", - "ABFIP", - "ABFJL", - "ABFJM", - "ABFJN", - "ABFJP", - "ABFLM", - "ABFLN", - "ABFLP", - "ABFMN", - "ABFMP", - "ABFNP", - "ABGHI", - "ABGHJ", - "ABGHL", - "ABGHM", - "ABGHN", - "ABGHP", - "ABGIJ", - "ABGIL", - "ABGIM", - "ABGIN", - "ABGIP", - "ABGJL", - "ABGJM", - "ABGJN", - "ABGJP", - "ABGLM", - "ABGLN", - "ABGLP", - "ABGMN", - "ABGMP", - "ABGNP", - "ABHIJ", - "ABHIL", - "ABHIM", - "ABHIN", - "ABHIP", - "ABHJL", - "ABHJM", - "ABHJN", - "ABHJP", - "ABHLM", - "ABHLN", - "ABHLP", - "ABHMN", - "ABHMP", - "ABHNP", - "ABIJL", - "ABIJM", - "ABIJN", - "ABIJP", - "ABILM", - "ABILN", - "ABILP", - "ABIMN", - "ABIMP", - "ABINP", - "ABJLM", - "ABJLN", - "ABJLP", - "ABJMN", - "ABJMP", - "ABJNP", - "ABLMN", - "ABLMP", - "ABLNP", - "ABMNP", - "ACEFG", - "ACEFH", - "ACEFI", - "ACEFJ", - "ACEFL", - "ACEFM", - "ACEFN", - "ACEFP", - "ACEGH", - "ACEGI", - "ACEGJ", - "ACEGL", - "ACEGM", - "ACEGN", - "ACEGP", - "ACEHI", - "ACEHJ", - "ACEHL", - "ACEHM", - "ACEHN", - "ACEHP", - "ACEIJ", - "ACEIL", - "ACEIM", - "ACEIN", - "ACEIP", - "ACEJL", - "ACEJM", - "ACEJN", - "ACEJP", - "ACELM", - "ACELN", - "ACELP", - "ACEMN", - "ACEMP", - "ACENP", - "ACFGH", - "ACFGI", - "ACFGJ", - "ACFGL", - "ACFGM", - "ACFGN", - "ACFGP", - "ACFHI", - "ACFHJ", - "ACFHL", - "ACFHM", - "ACFHN", - "ACFHP", - "ACFIJ", - "ACFIL", - "ACFIM", - "ACFIN", - "ACFIP", - "ACFJL", - "ACFJM", - "ACFJN", - "ACFJP", - "ACFLM", - "ACFLN", - "ACFLP", - "ACFMN", - "ACFMP", - "ACFNP", - "ACGHI", - "ACGHJ", - "ACGHL", - "ACGHM", - "ACGHN", - "ACGHP", - "ACGIJ", - "ACGIL", - "ACGIM", - "ACGIN", - "ACGIP", - "ACGJL", - "ACGJM", - "ACGJN", - "ACGJP", - "ACGLM", - "ACGLN", - "ACGLP", - "ACGMN", - "ACGMP", - "ACGNP", - "ACHIJ", - "ACHIL", - "ACHIM", - "ACHIN", - "ACHIP", - "ACHJL", - "ACHJM", - "ACHJN", - "ACHJP", - "ACHLM", - "ACHLN", - "ACHLP", - "ACHMN", - "ACHMP", - "ACHNP", - "ACIJL", - "ACIJM", - "ACIJN", - "ACIJP", - "ACILM", - "ACILN", - "ACILP", - "ACIMN", - "ACIMP", - "ACINP", - "ACJLM", - "ACJLN", - "ACJLP", - "ACJMN", - "ACJMP", - "ACJNP", - "ACLMN", - "ACLMP", - "ACLNP", - "ACMNP", - "AEFGH", - "AEFGI", - "AEFGJ", - "AEFGL", - "AEFGM", - "AEFGN", - "AEFGP", - "AEFHI", - "AEFHJ", - "AEFHL", - "AEFHM", - "AEFHN", - "AEFHP", - "AEFIJ", - "AEFIL", - "AEFIM", - "AEFIN", - "AEFIP", - "AEFJL", - "AEFJM", - "AEFJN", - "AEFJP", - "AEFLM", - "AEFLN", - "AEFLP", - "AEFMN", - "AEFMP", - "AEFNP", - "AEGHI", - "AEGHJ", - "AEGHL", - "AEGHM", - "AEGHN", - "AEGHP", - "AEGIJ", - "AEGIL", - "AEGIM", - "AEGIN", - "AEGIP", - "AEGJL", - "AEGJM", - "AEGJN", - "AEGJP", - "AEGLM", - "AEGLN", - "AEGLP", - "AEGMN", - "AEGMP", - "AEGNP", - "AEHIJ", - "AEHIL", - "AEHIM", - "AEHIN", - "AEHIP", - "AEHJL", - "AEHJM", - "AEHJN", - "AEHJP", - "AEHLM", - "AEHLN", - "AEHLP", - "AEHMN", - "AEHMP", - "AEHNP", - "AEIJL", - "AEIJM", - "AEIJN", - "AEIJP", - "AEILM", - "AEILN", - "AEILP", - "AEIMN", - "AEIMP", - "AEINP", - "AEJLM", - "AEJLN", - "AEJLP", - "AEJMN", - "AEJMP", - "AEJNP", - "AELMN", - "AELMP", - "AELNP", - "AEMNP", - "AFGHI", - "AFGHJ", - "AFGHL", - "AFGHM", - "AFGHN", - "AFGHP", - "AFGIJ", - "AFGIL", - "AFGIM", - "AFGIN", - "AFGIP", - "AFGJL", - "AFGJM", - "AFGJN", - "AFGJP", - "AFGLM", - "AFGLN", - "AFGLP", - "AFGMN", - "AFGMP", - "AFGNP", - "AFHIJ", - "AFHIL", - "AFHIM", - "AFHIN", - "AFHIP", - "AFHJL", - "AFHJM", - "AFHJN", - "AFHJP", - "AFHLM", - "AFHLN", - "AFHLP", - "AFHMN", - "AFHMP", - "AFHNP", - "AFIJL", - "AFIJM", - "AFIJN", - "AFIJP", - "AFILM", - "AFILN", - "AFILP", - "AFIMN", - "AFIMP", - "AFINP", - "AFJLM", - "AFJLN", - "AFJLP", - "AFJMN", - "AFJMP", - "AFJNP", - "AFLMN", - "AFLMP", - "AFLNP", - "AFMNP", - "AGHIJ", - "AGHIL", - "AGHIM", - "AGHIN", - "AGHIP", - "AGHJL", - "AGHJM", - "AGHJN", - "AGHJP", - "AGHLM", - "AGHLN", - "AGHLP", - "AGHMN", - "AGHMP", - "AGHNP", - "AGIJL", - "AGIJM", - "AGIJN", - "AGIJP", - "AGILM", - "AGILN", - "AGILP", - "AGIMN", - "AGIMP", - "AGINP", - "AGJLM", - "AGJLN", - "AGJLP", - "AGJMN", - "AGJMP", - "AGJNP", - "AGLMN", - "AGLMP", - "AGLNP", - "AGMNP", - "AHIJL", - "AHIJM", - "AHIJN", - "AHIJP", - "AHILM", - "AHILN", - "AHILP", - "AHIMN", - "AHIMP", - "AHINP", - "AHJLM", - "AHJLN", - "AHJLP", - "AHJMN", - "AHJMP", - "AHJNP", - "AHLMN", - "AHLMP", - "AHLNP", - "AHMNP", - "AIJLM", - "AIJLN", - "AIJLP", - "AIJMN", - "AIJMP", - "AIJNP", - "AILMN", - "AILMP", - "AILNP", - "AIMNP", - "AJLMN", - "AJLMP", - "AJLNP", - "AJMNP", - "ALMNP", - "BCEFG", - "BCEFH", - "BCEFI", - "BCEFJ", - "BCEFL", - "BCEFM", - "BCEFN", - "BCEFP", - "BCEGH", - "BCEGI", - "BCEGJ", - "BCEGL", - "BCEGM", - "BCEGN", - "BCEGP", - "BCEHI", - "BCEHJ", - "BCEHL", - "BCEHM", - "BCEHN", - "BCEHP", - "BCEIJ", - "BCEIL", - "BCEIM", - "BCEIN", - "BCEIP", - "BCEJL", - "BCEJM", - "BCEJN", - "BCEJP", - "BCELM", - "BCELN", - "BCELP", - "BCEMN", - "BCEMP", - "BCENP", - "BCFGH", - "BCFGI", - "BCFGJ", - "BCFGL", - "BCFGM", - "BCFGN", - "BCFGP", - "BCFHI", - "BCFHJ", - "BCFHL", - "BCFHM", - "BCFHN", - "BCFHP", - "BCFIJ", - "BCFIL", - "BCFIM", - "BCFIN", - "BCFIP", - "BCFJL", - "BCFJM", - "BCFJN", - "BCFJP", - "BCFLM", - "BCFLN", - "BCFLP", - "BCFMN", - "BCFMP", - "BCFNP", - "BCGHI", - "BCGHJ", - "BCGHL", - "BCGHM", - "BCGHN", - "BCGHP", - "BCGIJ", - "BCGIL", - "BCGIM", - "BCGIN", - "BCGIP", - "BCGJL", - "BCGJM", - "BCGJN", - "BCGJP", - "BCGLM", - "BCGLN", - "BCGLP", - "BCGMN", - "BCGMP", - "BCGNP", - "BCHIJ", - "BCHIL", - "BCHIM", - "BCHIN", - "BCHIP", - "BCHJL", - "BCHJM", - "BCHJN", - "BCHJP", - "BCHLM", - "BCHLN", - "BCHLP", - "BCHMN", - "BCHMP", - "BCHNP", - "BCIJL", - "BCIJM", - "BCIJN", - "BCIJP", - "BCILM", - "BCILN", - "BCILP", - "BCIMN", - "BCIMP", - "BCINP", - "BCJLM", - "BCJLN", - "BCJLP", - "BCJMN", - "BCJMP", - "BCJNP", - "BCLMN", - "BCLMP", - "BCLNP", - "BCMNP", - "BEFGH", - "BEFGI", - "BEFGJ", - "BEFGL", - "BEFGM", - "BEFGN", - "BEFGP", - "BEFHI", - "BEFHJ", - "BEFHL", - "BEFHM", - "BEFHN", - "BEFHP", - "BEFIJ", - "BEFIL", - "BEFIM", - "BEFIN", - "BEFIP", - "BEFJL", - "BEFJM", - "BEFJN", - "BEFJP", - "BEFLM", - "BEFLN", - "BEFLP", - "BEFMN", - "BEFMP", - "BEFNP", - "BEGHI", - "BEGHJ", - "BEGHL", - "BEGHM", - "BEGHN", - "BEGHP", - "BEGIJ", - "BEGIL", - "BEGIM", - "BEGIN", - "BEGIP", - "BEGJL", - "BEGJM", - "BEGJN", - "BEGJP", - "BEGLM", - "BEGLN", - "BEGLP", - "BEGMN", - "BEGMP", - "BEGNP", - "BEHIJ", - "BEHIL", - "BEHIM", - "BEHIN", - "BEHIP", - "BEHJL", - "BEHJM", - "BEHJN", - "BEHJP", - "BEHLM", - "BEHLN", - "BEHLP", - "BEHMN", - "BEHMP", - "BEHNP", - "BEIJL", - "BEIJM", - "BEIJN", - "BEIJP", - "BEILM", - "BEILN", - "BEILP", - "BEIMN", - "BEIMP", - "BEINP", - "BEJLM", - "BEJLN", - "BEJLP", - "BEJMN", - "BEJMP", - "BEJNP", - "BELMN", - "BELMP", - "BELNP", - "BEMNP", - "BFGHI", - "BFGHJ", - "BFGHL", - "BFGHM", - "BFGHN", - "BFGHP", - "BFGIJ", - "BFGIL", - "BFGIM", - "BFGIN", - "BFGIP", - "BFGJL", - "BFGJM", - "BFGJN", - "BFGJP", - "BFGLM", - "BFGLN", - "BFGLP", - "BFGMN", - "BFGMP", - "BFGNP", - "BFHIJ", - "BFHIL", - "BFHIM", - "BFHIN", - "BFHIP", - "BFHJL", - "BFHJM", - "BFHJN", - "BFHJP", - "BFHLM", - "BFHLN", - "BFHLP", - "BFHMN", - "BFHMP", - "BFHNP", - "BFIJL", - "BFIJM", - "BFIJN", - "BFIJP", - "BFILM", - "BFILN", - "BFILP", - "BFIMN", - "BFIMP", - "BFINP", - "BFJLM", - "BFJLN", - "BFJLP", - "BFJMN", - "BFJMP", - "BFJNP", - "BFLMN", - "BFLMP", - "BFLNP", - "BFMNP", - "BGHIJ", - "BGHIL", - "BGHIM", - "BGHIN", - "BGHIP", - "BGHJL", - "BGHJM", - "BGHJN", - "BGHJP", - "BGHLM", - "BGHLN", - "BGHLP", - "BGHMN", - "BGHMP", - "BGHNP", - "BGIJL", - "BGIJM", - "BGIJN", - "BGIJP", - "BGILM", - "BGILN", - "BGILP", - "BGIMN", - "BGIMP", - "BGINP", - "BGJLM", - "BGJLN", - "BGJLP", - "BGJMN", - "BGJMP", - "BGJNP", - "BGLMN", - "BGLMP", - "BGLNP", - "BGMNP", - "BHIJL", - "BHIJM", - "BHIJN", - "BHIJP", - "BHILM", - "BHILN", - "BHILP", - "BHIMN", - "BHIMP", - "BHINP", - "BHJLM", - "BHJLN", - "BHJLP", - "BHJMN", - "BHJMP", - "BHJNP", - "BHLMN", - "BHLMP", - "BHLNP", - "BHMNP", - "BIJLM", - "BIJLN", - "BIJLP", - "BIJMN", - "BIJMP", - "BIJNP", - "BILMN", - "BILMP", - "BILNP", - "BIMNP", - "BJLMN", - "BJLMP", - "BJLNP", - "BJMNP", - "BLMNP", - "CEFGH", - "CEFGI", - "CEFGJ", - "CEFGL", - "CEFGM", - "CEFGN", - "CEFGP", - "CEFHI", - "CEFHJ", - "CEFHL", - "CEFHM", - "CEFHN", - "CEFHP", - "CEFIJ", - "CEFIL", - "CEFIM", - "CEFIN", - "CEFIP", - "CEFJL", - "CEFJM", - "CEFJN", - "CEFJP", - "CEFLM", - "CEFLN", - "CEFLP", - "CEFMN", - "CEFMP", - "CEFNP", - "CEGHI", - "CEGHJ", - "CEGHL", - "CEGHM", - "CEGHN", - "CEGHP", - "CEGIJ", - "CEGIL", - "CEGIM", - "CEGIN", - "CEGIP", - "CEGJL", - "CEGJM", - "CEGJN", - "CEGJP", - "CEGLM", - "CEGLN", - "CEGLP", - "CEGMN", - "CEGMP", - "CEGNP", - "CEHIJ", - "CEHIL", - "CEHIM", - "CEHIN", - "CEHIP", - "CEHJL", - "CEHJM", - "CEHJN", - "CEHJP", - "CEHLM", - "CEHLN", - "CEHLP", - "CEHMN", - "CEHMP", - "CEHNP", - "CEIJL", - "CEIJM", - "CEIJN", - "CEIJP", - "CEILM", - "CEILN", - "CEILP", - "CEIMN", - "CEIMP", - "CEINP", - "CEJLM", - "CEJLN", - "CEJLP", - "CEJMN", - "CEJMP", - "CEJNP", - "CELMN", - "CELMP", - "CELNP", - "CEMNP", - "CFGHI", - "CFGHJ", - "CFGHL", - "CFGHM", - "CFGHN", - "CFGHP", - "CFGIJ", - "CFGIL", - "CFGIM", - "CFGIN", - "CFGIP", - "CFGJL", - "CFGJM", - "CFGJN", - "CFGJP", - "CFGLM", - "CFGLN", - "CFGLP", - "CFGMN", - "CFGMP", - "CFGNP", - "CFHIJ", - "CFHIL", - "CFHIM", - "CFHIN", - "CFHIP", - "CFHJL", - "CFHJM", - "CFHJN", - "CFHJP", - "CFHLM", - "CFHLN", - "CFHLP", - "CFHMN", - "CFHMP", - "CFHNP", - "CFIJL", - "CFIJM", - "CFIJN", - "CFIJP", - "CFILM", - "CFILN", - "CFILP", - "CFIMN", - "CFIMP", - "CFINP", - "CFJLM", - "CFJLN", - "CFJLP", - "CFJMN", - "CFJMP", - "CFJNP", - "CFLMN", - "CFLMP", - "CFLNP", - "CFMNP", - "CGHIJ", - "CGHIL", - "CGHIM", - "CGHIN", - "CGHIP", - "CGHJL", - "CGHJM", - "CGHJN", - "CGHJP", - "CGHLM", - "CGHLN", - "CGHLP", - "CGHMN", - "CGHMP", - "CGHNP", - "CGIJL", - "CGIJM", - "CGIJN", - "CGIJP", - "CGILM", - "CGILN", - "CGILP", - "CGIMN", - "CGIMP", - "CGINP", - "CGJLM", - "CGJLN", - "CGJLP", - "CGJMN", - "CGJMP", - "CGJNP", - "CGLMN", - "CGLMP", - "CGLNP", - "CGMNP", - "CHIJL", - "CHIJM", - "CHIJN", - "CHIJP", - "CHILM", - "CHILN", - "CHILP", - "CHIMN", - "CHIMP", - "CHINP", - "CHJLM", - "CHJLN", - "CHJLP", - "CHJMN", - "CHJMP", - "CHJNP", - "CHLMN", - "CHLMP", - "CHLNP", - "CHMNP", - "CIJLM", - "CIJLN", - "CIJLP", - "CIJMN", - "CIJMP", - "CIJNP", - "CILMN", - "CILMP", - "CILNP", - "CIMNP", - "CJLMN", - "CJLMP", - "CJLNP", - "CJMNP", - "CLMNP", - "EFGHI", - "EFGHJ", - "EFGHL", - "EFGHM", - "EFGHN", - "EFGHP", - "EFGIJ", - "EFGIL", - "EFGIM", - "EFGIN", - "EFGIP", - "EFGJL", - "EFGJM", - "EFGJN", - "EFGJP", - "EFGLM", - "EFGLN", - "EFGLP", - "EFGMN", - "EFGMP", - "EFGNP", - "EFHIJ", - "EFHIL", - "EFHIM", - "EFHIN", - "EFHIP", - "EFHJL", - "EFHJM", - "EFHJN", - "EFHJP", - "EFHLM", - "EFHLN", - "EFHLP", - "EFHMN", - "EFHMP", - "EFHNP", - "EFIJL", - "EFIJM", - "EFIJN", - "EFIJP", - "EFILM", - "EFILN", - "EFILP", - "EFIMN", - "EFIMP", - "EFINP", - "EFJLM", - "EFJLN", - "EFJLP", - "EFJMN", - "EFJMP", - "EFJNP", - "EFLMN", - "EFLMP", - "EFLNP", - "EFMNP", - "EGHIJ", - "EGHIL", - "EGHIM", - "EGHIN", - "EGHIP", - "EGHJL", - "EGHJM", - "EGHJN", - "EGHJP", - "EGHLM", - "EGHLN", - "EGHLP", - "EGHMN", - "EGHMP", - "EGHNP", - "EGIJL", - "EGIJM", - "EGIJN", - "EGIJP", - "EGILM", - "EGILN", - "EGILP", - "EGIMN", - "EGIMP", - "EGINP", - "EGJLM", - "EGJLN", - "EGJLP", - "EGJMN", - "EGJMP", - "EGJNP", - "EGLMN", - "EGLMP", - "EGLNP", - "EGMNP", - "EHIJL", - "EHIJM", - "EHIJN", - "EHIJP", - "EHILM", - "EHILN", - "EHILP", - "EHIMN", - "EHIMP", - "EHINP", - "EHJLM", - "EHJLN", - "EHJLP", - "EHJMN", - "EHJMP", - "EHJNP", - "EHLMN", - "EHLMP", - "EHLNP", - "EHMNP", - "EIJLM", - "EIJLN", - "EIJLP", - "EIJMN", - "EIJMP", - "EIJNP", - "EILMN", - "EILMP", - "EILNP", - "EIMNP", - "EJLMN", - "EJLMP", - "EJLNP", - "EJMNP", - "ELMNP", - "FGHIJ", - "FGHIL", - "FGHIM", - "FGHIN", - "FGHIP", - "FGHJL", - "FGHJM", - "FGHJN", - "FGHJP", - "FGHLM", - "FGHLN", - "FGHLP", - "FGHMN", - "FGHMP", - "FGHNP", - "FGIJL", - "FGIJM", - "FGIJN", - "FGIJP", - "FGILM", - "FGILN", - "FGILP", - "FGIMN", - "FGIMP", - "FGINP", - "FGJLM", - "FGJLN", - "FGJLP", - "FGJMN", - "FGJMP", - "FGJNP", - "FGLMN", - "FGLMP", - "FGLNP", - "FGMNP", - "FHIJL", - "FHIJM", - "FHIJN", - "FHIJP", - "FHILM", - "FHILN", - "FHILP", - "FHIMN", - "FHIMP", - "FHINP", - "FHJLM", - "FHJLN", - "FHJLP", - "FHJMN", - "FHJMP", - "FHJNP", - "FHLMN", - "FHLMP", - "FHLNP", - "FHMNP", - "FIJLM", - "FIJLN", - "FIJLP", - "FIJMN", - "FIJMP", - "FIJNP", - "FILMN", - "FILMP", - "FILNP", - "FIMNP", - "FJLMN", - "FJLMP", - "FJLNP", - "FJMNP", - "FLMNP", - "GHIJL", - "GHIJM", - "GHIJN", - "GHIJP", - "GHILM", - "GHILN", - "GHILP", - "GHIMN", - "GHIMP", - "GHINP", - "GHJLM", - "GHJLN", - "GHJLP", - "GHJMN", - "GHJMP", - "GHJNP", - "GHLMN", - "GHLMP", - "GHLNP", - "GHMNP", - "GIJLM", - "GIJLN", - "GIJLP", - "GIJMN", - "GIJMP", - "GIJNP", - "GILMN", - "GILMP", - "GILNP", - "GIMNP", - "GJLMN", - "GJLMP", - "GJLNP", - "GJMNP", - "GLMNP", - "HIJLM", - "HIJLN", - "HIJLP", - "HIJMN", - "HIJMP", - "HIJNP", - "HILMN", - "HILMP", - "HILNP", - "HIMNP", - "HJLMN", - "HJLMP", - "HJLNP", - "HJMNP", - "HLMNP", - "IJLMN", - "IJLMP", - "IJLNP", - "IJMNP", - "ILMNP", - "JLMNP", - "ABCEFG", - "ABCEFH", - "ABCEFI", - "ABCEFJ", - "ABCEFL", - "ABCEFM", - "ABCEFN", - "ABCEFP", - "ABCEGH", - "ABCEGI", - "ABCEGJ", - "ABCEGL", - "ABCEGM", - "ABCEGN", - "ABCEGP", - "ABCEHI", - "ABCEHJ", - "ABCEHL", - "ABCEHM", - "ABCEHN", - "ABCEHP", - "ABCEIJ", - "ABCEIL", - "ABCEIM", - "ABCEIN", - "ABCEIP", - "ABCEJL", - "ABCEJM", - "ABCEJN", - "ABCEJP", - "ABCELM", - "ABCELN", - "ABCELP", - "ABCEMN", - "ABCEMP", - "ABCENP", - "ABCFGH", - "ABCFGI", - "ABCFGJ", - "ABCFGL", - "ABCFGM", - "ABCFGN", - "ABCFGP", - "ABCFHI", - "ABCFHJ", - "ABCFHL", - "ABCFHM", - "ABCFHN", - "ABCFHP", - "ABCFIJ", - "ABCFIL", - "ABCFIM", - "ABCFIN", - "ABCFIP", - "ABCFJL", - "ABCFJM", - "ABCFJN", - "ABCFJP", - "ABCFLM", - "ABCFLN", - "ABCFLP", - "ABCFMN", - "ABCFMP", - "ABCFNP", - "ABCGHI", - "ABCGHJ", - "ABCGHL", - "ABCGHM", - "ABCGHN", - "ABCGHP", - "ABCGIJ", - "ABCGIL", - "ABCGIM", - "ABCGIN", - "ABCGIP", - "ABCGJL", - "ABCGJM", - "ABCGJN", - "ABCGJP", - "ABCGLM", - "ABCGLN", - "ABCGLP", - "ABCGMN", - "ABCGMP", - "ABCGNP", - "ABCHIJ", - "ABCHIL", - "ABCHIM", - "ABCHIN", - "ABCHIP", - "ABCHJL", - "ABCHJM", - "ABCHJN", - "ABCHJP", - "ABCHLM", - "ABCHLN", - "ABCHLP", - "ABCHMN", - "ABCHMP", - "ABCHNP", - "ABCIJL", - "ABCIJM", - "ABCIJN", - "ABCIJP", - "ABCILM", - "ABCILN", - "ABCILP", - "ABCIMN", - "ABCIMP", - "ABCINP", - "ABCJLM", - "ABCJLN", - "ABCJLP", - "ABCJMN", - "ABCJMP", - "ABCJNP", - "ABCLMN", - "ABCLMP", - "ABCLNP", - "ABCMNP", - "ABEFGH", - "ABEFGI", - "ABEFGJ", - "ABEFGL", - "ABEFGM", - "ABEFGN", - "ABEFGP", - "ABEFHI", - "ABEFHJ", - "ABEFHL", - "ABEFHM", - "ABEFHN", - "ABEFHP", - "ABEFIJ", - "ABEFIL", - "ABEFIM", - "ABEFIN", - "ABEFIP", - "ABEFJL", - "ABEFJM", - "ABEFJN", - "ABEFJP", - "ABEFLM", - "ABEFLN", - "ABEFLP", - "ABEFMN", - "ABEFMP", - "ABEFNP", - "ABEGHI", - "ABEGHJ", - "ABEGHL", - "ABEGHM", - "ABEGHN", - "ABEGHP", - "ABEGIJ", - "ABEGIL", - "ABEGIM", - "ABEGIN", - "ABEGIP", - "ABEGJL", - "ABEGJM", - "ABEGJN", - "ABEGJP", - "ABEGLM", - "ABEGLN", - "ABEGLP", - "ABEGMN", - "ABEGMP", - "ABEGNP", - "ABEHIJ", - "ABEHIL", - "ABEHIM", - "ABEHIN", - "ABEHIP", - "ABEHJL", - "ABEHJM", - "ABEHJN", - "ABEHJP", - "ABEHLM", - "ABEHLN", - "ABEHLP", - "ABEHMN", - "ABEHMP", - "ABEHNP", - "ABEIJL", - "ABEIJM", - "ABEIJN", - "ABEIJP", - "ABEILM", - "ABEILN", - "ABEILP", - "ABEIMN", - "ABEIMP", - "ABEINP", - "ABEJLM", - "ABEJLN", - "ABEJLP", - "ABEJMN", - "ABEJMP", - "ABEJNP", - "ABELMN", - "ABELMP", - "ABELNP", - "ABEMNP", - "ABFGHI", - "ABFGHJ", - "ABFGHL", - "ABFGHM", - "ABFGHN", - "ABFGHP", - "ABFGIJ", - "ABFGIL", - "ABFGIM", - "ABFGIN", - "ABFGIP", - "ABFGJL", - "ABFGJM", - "ABFGJN", - "ABFGJP", - "ABFGLM", - "ABFGLN", - "ABFGLP", - "ABFGMN", - "ABFGMP", - "ABFGNP", - "ABFHIJ", - "ABFHIL", - "ABFHIM", - "ABFHIN", - "ABFHIP", - "ABFHJL", - "ABFHJM", - "ABFHJN", - "ABFHJP", - "ABFHLM", - "ABFHLN", - "ABFHLP", - "ABFHMN", - "ABFHMP", - "ABFHNP", - "ABFIJL", - "ABFIJM", - "ABFIJN", - "ABFIJP", - "ABFILM", - "ABFILN", - "ABFILP", - "ABFIMN", - "ABFIMP", - "ABFINP", - "ABFJLM", - "ABFJLN", - "ABFJLP", - "ABFJMN", - "ABFJMP", - "ABFJNP", - "ABFLMN", - "ABFLMP", - "ABFLNP", - "ABFMNP", - "ABGHIJ", - "ABGHIL", - "ABGHIM", - "ABGHIN", - "ABGHIP", - "ABGHJL", - "ABGHJM", - "ABGHJN", - "ABGHJP", - "ABGHLM", - "ABGHLN", - "ABGHLP", - "ABGHMN", - "ABGHMP", - "ABGHNP", - "ABGIJL", - "ABGIJM", - "ABGIJN", - "ABGIJP", - "ABGILM", - "ABGILN", - "ABGILP", - "ABGIMN", - "ABGIMP", - "ABGINP", - "ABGJLM", - "ABGJLN", - "ABGJLP", - "ABGJMN", - "ABGJMP", - "ABGJNP", - "ABGLMN", - "ABGLMP", - "ABGLNP", - "ABGMNP", - "ABHIJL", - "ABHIJM", - "ABHIJN", - "ABHIJP", - "ABHILM", - "ABHILN", - "ABHILP", - "ABHIMN", - "ABHIMP", - "ABHINP", - "ABHJLM", - "ABHJLN", - "ABHJLP", - "ABHJMN", - "ABHJMP", - "ABHJNP", - "ABHLMN", - "ABHLMP", - "ABHLNP", - "ABHMNP", - "ABIJLM", - "ABIJLN", - "ABIJLP", - "ABIJMN", - "ABIJMP", - "ABIJNP", - "ABILMN", - "ABILMP", - "ABILNP", - "ABIMNP", - "ABJLMN", - "ABJLMP", - "ABJLNP", - "ABJMNP", - "ABLMNP", - "ACEFGH", - "ACEFGI", - "ACEFGJ", - "ACEFGL", - "ACEFGM", - "ACEFGN", - "ACEFGP", - "ACEFHI", - "ACEFHJ", - "ACEFHL", - "ACEFHM", - "ACEFHN", - "ACEFHP", - "ACEFIJ", - "ACEFIL", - "ACEFIM", - "ACEFIN", - "ACEFIP", - "ACEFJL", - "ACEFJM", - "ACEFJN", - "ACEFJP", - "ACEFLM", - "ACEFLN", - "ACEFLP", - "ACEFMN", - "ACEFMP", - "ACEFNP", - "ACEGHI", - "ACEGHJ", - "ACEGHL", - "ACEGHM", - "ACEGHN", - "ACEGHP", - "ACEGIJ", - "ACEGIL", - "ACEGIM", - "ACEGIN", - "ACEGIP", - "ACEGJL", - "ACEGJM", - "ACEGJN", - "ACEGJP", - "ACEGLM", - "ACEGLN", - "ACEGLP", - "ACEGMN", - "ACEGMP", - "ACEGNP", - "ACEHIJ", - "ACEHIL", - "ACEHIM", - "ACEHIN", - "ACEHIP", - "ACEHJL", - "ACEHJM", - "ACEHJN", - "ACEHJP", - "ACEHLM", - "ACEHLN", - "ACEHLP", - "ACEHMN", - "ACEHMP", - "ACEHNP", - "ACEIJL", - "ACEIJM", - "ACEIJN", - "ACEIJP", - "ACEILM", - "ACEILN", - "ACEILP", - "ACEIMN", - "ACEIMP", - "ACEINP", - "ACEJLM", - "ACEJLN", - "ACEJLP", - "ACEJMN", - "ACEJMP", - "ACEJNP", - "ACELMN", - "ACELMP", - "ACELNP", - "ACEMNP", - "ACFGHI", - "ACFGHJ", - "ACFGHL", - "ACFGHM", - "ACFGHN", - "ACFGHP", - "ACFGIJ", - "ACFGIL", - "ACFGIM", - "ACFGIN", - "ACFGIP", - "ACFGJL", - "ACFGJM", - "ACFGJN", - "ACFGJP", - "ACFGLM", - "ACFGLN", - "ACFGLP", - "ACFGMN", - "ACFGMP", - "ACFGNP", - "ACFHIJ", - "ACFHIL", - "ACFHIM", - "ACFHIN", - "ACFHIP", - "ACFHJL", - "ACFHJM", - "ACFHJN", - "ACFHJP", - "ACFHLM", - "ACFHLN", - "ACFHLP", - "ACFHMN", - "ACFHMP", - "ACFHNP", - "ACFIJL", - "ACFIJM", - "ACFIJN", - "ACFIJP", - "ACFILM", - "ACFILN", - "ACFILP", - "ACFIMN", - "ACFIMP", - "ACFINP", - "ACFJLM", - "ACFJLN", - "ACFJLP", - "ACFJMN", - "ACFJMP", - "ACFJNP", - "ACFLMN", - "ACFLMP", - "ACFLNP", - "ACFMNP", - "ACGHIJ", - "ACGHIL", - "ACGHIM", - "ACGHIN", - "ACGHIP", - "ACGHJL", - "ACGHJM", - "ACGHJN", - "ACGHJP", - "ACGHLM", - "ACGHLN", - "ACGHLP", - "ACGHMN", - "ACGHMP", - "ACGHNP", - "ACGIJL", - "ACGIJM", - "ACGIJN", - "ACGIJP", - "ACGILM", - "ACGILN", - "ACGILP", - "ACGIMN", - "ACGIMP", - "ACGINP", - "ACGJLM", - "ACGJLN", - "ACGJLP", - "ACGJMN", - "ACGJMP", - "ACGJNP", - "ACGLMN", - "ACGLMP", - "ACGLNP", - "ACGMNP", - "ACHIJL", - "ACHIJM", - "ACHIJN", - "ACHIJP", - "ACHILM", - "ACHILN", - "ACHILP", - "ACHIMN", - "ACHIMP", - "ACHINP", - "ACHJLM", - "ACHJLN", - "ACHJLP", - "ACHJMN", - "ACHJMP", - "ACHJNP", - "ACHLMN", - "ACHLMP", - "ACHLNP", - "ACHMNP", - "ACIJLM", - "ACIJLN", - "ACIJLP", - "ACIJMN", - "ACIJMP", - "ACIJNP", - "ACILMN", - "ACILMP", - "ACILNP", - "ACIMNP", - "ACJLMN", - "ACJLMP", - "ACJLNP", - "ACJMNP", - "ACLMNP", - "AEFGHI", - "AEFGHJ", - "AEFGHL", - "AEFGHM", - "AEFGHN", - "AEFGHP", - "AEFGIJ", - "AEFGIL", - "AEFGIM", - "AEFGIN", - "AEFGIP", - "AEFGJL", - "AEFGJM", - "AEFGJN", - "AEFGJP", - "AEFGLM", - "AEFGLN", - "AEFGLP", - "AEFGMN", - "AEFGMP", - "AEFGNP", - "AEFHIJ", - "AEFHIL", - "AEFHIM", - "AEFHIN", - "AEFHIP", - "AEFHJL", - "AEFHJM", - "AEFHJN", - "AEFHJP", - "AEFHLM", - "AEFHLN", - "AEFHLP", - "AEFHMN", - "AEFHMP", - "AEFHNP", - "AEFIJL", - "AEFIJM", - "AEFIJN", - "AEFIJP", - "AEFILM", - "AEFILN", - "AEFILP", - "AEFIMN", - "AEFIMP", - "AEFINP", - "AEFJLM", - "AEFJLN", - "AEFJLP", - "AEFJMN", - "AEFJMP", - "AEFJNP", - "AEFLMN", - "AEFLMP", - "AEFLNP", - "AEFMNP", - "AEGHIJ", - "AEGHIL", - "AEGHIM", - "AEGHIN", - "AEGHIP", - "AEGHJL", - "AEGHJM", - "AEGHJN", - "AEGHJP", - "AEGHLM", - "AEGHLN", - "AEGHLP", - "AEGHMN", - "AEGHMP", - "AEGHNP", - "AEGIJL", - "AEGIJM", - "AEGIJN", - "AEGIJP", - "AEGILM", - "AEGILN", - "AEGILP", - "AEGIMN", - "AEGIMP", - "AEGINP", - "AEGJLM", - "AEGJLN", - "AEGJLP", - "AEGJMN", - "AEGJMP", - "AEGJNP", - "AEGLMN", - "AEGLMP", - "AEGLNP", - "AEGMNP", - "AEHIJL", - "AEHIJM", - "AEHIJN", - "AEHIJP", - "AEHILM", - "AEHILN", - "AEHILP", - "AEHIMN", - "AEHIMP", - "AEHINP", - "AEHJLM", - "AEHJLN", - "AEHJLP", - "AEHJMN", - "AEHJMP", - "AEHJNP", - "AEHLMN", - "AEHLMP", - "AEHLNP", - "AEHMNP", - "AEIJLM", - "AEIJLN", - "AEIJLP", - "AEIJMN", - "AEIJMP", - "AEIJNP", - "AEILMN", - "AEILMP", - "AEILNP", - "AEIMNP", - "AEJLMN", - "AEJLMP", - "AEJLNP", - "AEJMNP", - "AELMNP", - "AFGHIJ", - "AFGHIL", - "AFGHIM", - "AFGHIN", - "AFGHIP", - "AFGHJL", - "AFGHJM", - "AFGHJN", - "AFGHJP", - "AFGHLM", - "AFGHLN", - "AFGHLP", - "AFGHMN", - "AFGHMP", - "AFGHNP", - "AFGIJL", - "AFGIJM", - "AFGIJN", - "AFGIJP", - "AFGILM", - "AFGILN", - "AFGILP", - "AFGIMN", - "AFGIMP", - "AFGINP", - "AFGJLM", - "AFGJLN", - "AFGJLP", - "AFGJMN", - "AFGJMP", - "AFGJNP", - "AFGLMN", - "AFGLMP", - "AFGLNP", - "AFGMNP", - "AFHIJL", - "AFHIJM", - "AFHIJN", - "AFHIJP", - "AFHILM", - "AFHILN", - "AFHILP", - "AFHIMN", - "AFHIMP", - "AFHINP", - "AFHJLM", - "AFHJLN", - "AFHJLP", - "AFHJMN", - "AFHJMP", - "AFHJNP", - "AFHLMN", - "AFHLMP", - "AFHLNP", - "AFHMNP", - "AFIJLM", - "AFIJLN", - "AFIJLP", - "AFIJMN", - "AFIJMP", - "AFIJNP", - "AFILMN", - "AFILMP", - "AFILNP", - "AFIMNP", - "AFJLMN", - "AFJLMP", - "AFJLNP", - "AFJMNP", - "AFLMNP", - "AGHIJL", - "AGHIJM", - "AGHIJN", - "AGHIJP", - "AGHILM", - "AGHILN", - "AGHILP", - "AGHIMN", - "AGHIMP", - "AGHINP", - "AGHJLM", - "AGHJLN", - "AGHJLP", - "AGHJMN", - "AGHJMP", - "AGHJNP", - "AGHLMN", - "AGHLMP", - "AGHLNP", - "AGHMNP", - "AGIJLM", - "AGIJLN", - "AGIJLP", - "AGIJMN", - "AGIJMP", - "AGIJNP", - "AGILMN", - "AGILMP", - "AGILNP", - "AGIMNP", - "AGJLMN", - "AGJLMP", - "AGJLNP", - "AGJMNP", - "AGLMNP", - "AHIJLM", - "AHIJLN", - "AHIJLP", - "AHIJMN", - "AHIJMP", - "AHIJNP", - "AHILMN", - "AHILMP", - "AHILNP", - "AHIMNP", - "AHJLMN", - "AHJLMP", - "AHJLNP", - "AHJMNP", - "AHLMNP", - "AIJLMN", - "AIJLMP", - "AIJLNP", - "AIJMNP", - "AILMNP", - "AJLMNP", - "BCEFGH", - "BCEFGI", - "BCEFGJ", - "BCEFGL", - "BCEFGM", - "BCEFGN", - "BCEFGP", - "BCEFHI", - "BCEFHJ", - "BCEFHL", - "BCEFHM", - "BCEFHN", - "BCEFHP", - "BCEFIJ", - "BCEFIL", - "BCEFIM", - "BCEFIN", - "BCEFIP", - "BCEFJL", - "BCEFJM", - "BCEFJN", - "BCEFJP", - "BCEFLM", - "BCEFLN", - "BCEFLP", - "BCEFMN", - "BCEFMP", - "BCEFNP", - "BCEGHI", - "BCEGHJ", - "BCEGHL", - "BCEGHM", - "BCEGHN", - "BCEGHP", - "BCEGIJ", - "BCEGIL", - "BCEGIM", - "BCEGIN", - "BCEGIP", - "BCEGJL", - "BCEGJM", - "BCEGJN", - "BCEGJP", - "BCEGLM", - "BCEGLN", - "BCEGLP", - "BCEGMN", - "BCEGMP", - "BCEGNP", - "BCEHIJ", - "BCEHIL", - "BCEHIM", - "BCEHIN", - "BCEHIP", - "BCEHJL", - "BCEHJM", - "BCEHJN", - "BCEHJP", - "BCEHLM", - "BCEHLN", - "BCEHLP", - "BCEHMN", - "BCEHMP", - "BCEHNP", - "BCEIJL", - "BCEIJM", - "BCEIJN", - "BCEIJP", - "BCEILM", - "BCEILN", - "BCEILP", - "BCEIMN", - "BCEIMP", - "BCEINP", - "BCEJLM", - "BCEJLN", - "BCEJLP", - "BCEJMN", - "BCEJMP", - "BCEJNP", - "BCELMN", - "BCELMP", - "BCELNP", - "BCEMNP", - "BCFGHI", - "BCFGHJ", - "BCFGHL", - "BCFGHM", - "BCFGHN", - "BCFGHP", - "BCFGIJ", - "BCFGIL", - "BCFGIM", - "BCFGIN", - "BCFGIP", - "BCFGJL", - "BCFGJM", - "BCFGJN", - "BCFGJP", - "BCFGLM", - "BCFGLN", - "BCFGLP", - "BCFGMN", - "BCFGMP", - "BCFGNP", - "BCFHIJ", - "BCFHIL", - "BCFHIM", - "BCFHIN", - "BCFHIP", - "BCFHJL", - "BCFHJM", - "BCFHJN", - "BCFHJP", - "BCFHLM", - "BCFHLN", - "BCFHLP", - "BCFHMN", - "BCFHMP", - "BCFHNP", - "BCFIJL", - "BCFIJM", - "BCFIJN", - "BCFIJP", - "BCFILM", - "BCFILN", - "BCFILP", - "BCFIMN", - "BCFIMP", - "BCFINP", - "BCFJLM", - "BCFJLN", - "BCFJLP", - "BCFJMN", - "BCFJMP", - "BCFJNP", - "BCFLMN", - "BCFLMP", - "BCFLNP", - "BCFMNP", - "BCGHIJ", - "BCGHIL", - "BCGHIM", - "BCGHIN", - "BCGHIP", - "BCGHJL", - "BCGHJM", - "BCGHJN", - "BCGHJP", - "BCGHLM", - "BCGHLN", - "BCGHLP", - "BCGHMN", - "BCGHMP", - "BCGHNP", - "BCGIJL", - "BCGIJM", - "BCGIJN", - "BCGIJP", - "BCGILM", - "BCGILN", - "BCGILP", - "BCGIMN", - "BCGIMP", - "BCGINP", - "BCGJLM", - "BCGJLN", - "BCGJLP", - "BCGJMN", - "BCGJMP", - "BCGJNP", - "BCGLMN", - "BCGLMP", - "BCGLNP", - "BCGMNP", - "BCHIJL", - "BCHIJM", - "BCHIJN", - "BCHIJP", - "BCHILM", - "BCHILN", - "BCHILP", - "BCHIMN", - "BCHIMP", - "BCHINP", - "BCHJLM", - "BCHJLN", - "BCHJLP", - "BCHJMN", - "BCHJMP", - "BCHJNP", - "BCHLMN", - "BCHLMP", - "BCHLNP", - "BCHMNP", - "BCIJLM", - "BCIJLN", - "BCIJLP", - "BCIJMN", - "BCIJMP", - "BCIJNP", - "BCILMN", - "BCILMP", - "BCILNP", - "BCIMNP", - "BCJLMN", - "BCJLMP", - "BCJLNP", - "BCJMNP", - "BCLMNP", - "BEFGHI", - "BEFGHJ", - "BEFGHL", - "BEFGHM", - "BEFGHN", - "BEFGHP", - "BEFGIJ", - "BEFGIL", - "BEFGIM", - "BEFGIN", - "BEFGIP", - "BEFGJL", - "BEFGJM", - "BEFGJN", - "BEFGJP", - "BEFGLM", - "BEFGLN", - "BEFGLP", - "BEFGMN", - "BEFGMP", - "BEFGNP", - "BEFHIJ", - "BEFHIL", - "BEFHIM", - "BEFHIN", - "BEFHIP", - "BEFHJL", - "BEFHJM", - "BEFHJN", - "BEFHJP", - "BEFHLM", - "BEFHLN", - "BEFHLP", - "BEFHMN", - "BEFHMP", - "BEFHNP", - "BEFIJL", - "BEFIJM", - "BEFIJN", - "BEFIJP", - "BEFILM", - "BEFILN", - "BEFILP", - "BEFIMN", - "BEFIMP", - "BEFINP", - "BEFJLM", - "BEFJLN", - "BEFJLP", - "BEFJMN", - "BEFJMP", - "BEFJNP", - "BEFLMN", - "BEFLMP", - "BEFLNP", - "BEFMNP", - "BEGHIJ", - "BEGHIL", - "BEGHIM", - "BEGHIN", - "BEGHIP", - "BEGHJL", - "BEGHJM", - "BEGHJN", - "BEGHJP", - "BEGHLM", - "BEGHLN", - "BEGHLP", - "BEGHMN", - "BEGHMP", - "BEGHNP", - "BEGIJL", - "BEGIJM", - "BEGIJN", - "BEGIJP", - "BEGILM", - "BEGILN", - "BEGILP", - "BEGIMN", - "BEGIMP", - "BEGINP", - "BEGJLM", - "BEGJLN", - "BEGJLP", - "BEGJMN", - "BEGJMP", - "BEGJNP", - "BEGLMN", - "BEGLMP", - "BEGLNP", - "BEGMNP", - "BEHIJL", - "BEHIJM", - "BEHIJN", - "BEHIJP", - "BEHILM", - "BEHILN", - "BEHILP", - "BEHIMN", - "BEHIMP", - "BEHINP", - "BEHJLM", - "BEHJLN", - "BEHJLP", - "BEHJMN", - "BEHJMP", - "BEHJNP", - "BEHLMN", - "BEHLMP", - "BEHLNP", - "BEHMNP", - "BEIJLM", - "BEIJLN", - "BEIJLP", - "BEIJMN", - "BEIJMP", - "BEIJNP", - "BEILMN", - "BEILMP", - "BEILNP", - "BEIMNP", - "BEJLMN", - "BEJLMP", - "BEJLNP", - "BEJMNP", - "BELMNP", - "BFGHIJ", - "BFGHIL", - "BFGHIM", - "BFGHIN", - "BFGHIP", - "BFGHJL", - "BFGHJM", - "BFGHJN", - "BFGHJP", - "BFGHLM", - "BFGHLN", - "BFGHLP", - "BFGHMN", - "BFGHMP", - "BFGHNP", - "BFGIJL", - "BFGIJM", - "BFGIJN", - "BFGIJP", - "BFGILM", - "BFGILN", - "BFGILP", - "BFGIMN", - "BFGIMP", - "BFGINP", - "BFGJLM", - "BFGJLN", - "BFGJLP", - "BFGJMN", - "BFGJMP", - "BFGJNP", - "BFGLMN", - "BFGLMP", - "BFGLNP", - "BFGMNP", - "BFHIJL", - "BFHIJM", - "BFHIJN", - "BFHIJP", - "BFHILM", - "BFHILN", - "BFHILP", - "BFHIMN", - "BFHIMP", - "BFHINP", - "BFHJLM", - "BFHJLN", - "BFHJLP", - "BFHJMN", - "BFHJMP", - "BFHJNP", - "BFHLMN", - "BFHLMP", - "BFHLNP", - "BFHMNP", - "BFIJLM", - "BFIJLN", - "BFIJLP", - "BFIJMN", - "BFIJMP", - "BFIJNP", - "BFILMN", - "BFILMP", - "BFILNP", - "BFIMNP", - "BFJLMN", - "BFJLMP", - "BFJLNP", - "BFJMNP", - "BFLMNP", - "BGHIJL", - "BGHIJM", - "BGHIJN", - "BGHIJP", - "BGHILM", - "BGHILN", - "BGHILP", - "BGHIMN", - "BGHIMP", - "BGHINP", - "BGHJLM", - "BGHJLN", - "BGHJLP", - "BGHJMN", - "BGHJMP", - "BGHJNP", - "BGHLMN", - "BGHLMP", - "BGHLNP", - "BGHMNP", - "BGIJLM", - "BGIJLN", - "BGIJLP", - "BGIJMN", - "BGIJMP", - "BGIJNP", - "BGILMN", - "BGILMP", - "BGILNP", - "BGIMNP", - "BGJLMN", - "BGJLMP", - "BGJLNP", - "BGJMNP", - "BGLMNP", - "BHIJLM", - "BHIJLN", - "BHIJLP", - "BHIJMN", - "BHIJMP", - "BHIJNP", - "BHILMN", - "BHILMP", - "BHILNP", - "BHIMNP", - "BHJLMN", - "BHJLMP", - "BHJLNP", - "BHJMNP", - "BHLMNP", - "BIJLMN", - "BIJLMP", - "BIJLNP", - "BIJMNP", - "BILMNP", - "BJLMNP", - "CEFGHI", - "CEFGHJ", - "CEFGHL", - "CEFGHM", - "CEFGHN", - "CEFGHP", - "CEFGIJ", - "CEFGIL", - "CEFGIM", - "CEFGIN", - "CEFGIP", - "CEFGJL", - "CEFGJM", - "CEFGJN", - "CEFGJP", - "CEFGLM", - "CEFGLN", - "CEFGLP", - "CEFGMN", - "CEFGMP", - "CEFGNP", - "CEFHIJ", - "CEFHIL", - "CEFHIM", - "CEFHIN", - "CEFHIP", - "CEFHJL", - "CEFHJM", - "CEFHJN", - "CEFHJP", - "CEFHLM", - "CEFHLN", - "CEFHLP", - "CEFHMN", - "CEFHMP", - "CEFHNP", - "CEFIJL", - "CEFIJM", - "CEFIJN", - "CEFIJP", - "CEFILM", - "CEFILN", - "CEFILP", - "CEFIMN", - "CEFIMP", - "CEFINP", - "CEFJLM", - "CEFJLN", - "CEFJLP", - "CEFJMN", - "CEFJMP", - "CEFJNP", - "CEFLMN", - "CEFLMP", - "CEFLNP", - "CEFMNP", - "CEGHIJ", - "CEGHIL", - "CEGHIM", - "CEGHIN", - "CEGHIP", - "CEGHJL", - "CEGHJM", - "CEGHJN", - "CEGHJP", - "CEGHLM", - "CEGHLN", - "CEGHLP", - "CEGHMN", - "CEGHMP", - "CEGHNP", - "CEGIJL", - "CEGIJM", - "CEGIJN", - "CEGIJP", - "CEGILM", - "CEGILN", - "CEGILP", - "CEGIMN", - "CEGIMP", - "CEGINP", - "CEGJLM", - "CEGJLN", - "CEGJLP", - "CEGJMN", - "CEGJMP", - "CEGJNP", - "CEGLMN", - "CEGLMP", - "CEGLNP", - "CEGMNP", - "CEHIJL", - "CEHIJM", - "CEHIJN", - "CEHIJP", - "CEHILM", - "CEHILN", - "CEHILP", - "CEHIMN", - "CEHIMP", - "CEHINP", - "CEHJLM", - "CEHJLN", - "CEHJLP", - "CEHJMN", - "CEHJMP", - "CEHJNP", - "CEHLMN", - "CEHLMP", - "CEHLNP", - "CEHMNP", - "CEIJLM", - "CEIJLN", - "CEIJLP", - "CEIJMN", - "CEIJMP", - "CEIJNP", - "CEILMN", - "CEILMP", - "CEILNP", - "CEIMNP", - "CEJLMN", - "CEJLMP", - "CEJLNP", - "CEJMNP", - "CELMNP", - "CFGHIJ", - "CFGHIL", - "CFGHIM", - "CFGHIN", - "CFGHIP", - "CFGHJL", - "CFGHJM", - "CFGHJN", - "CFGHJP", - "CFGHLM", - "CFGHLN", - "CFGHLP", - "CFGHMN", - "CFGHMP", - "CFGHNP", - "CFGIJL", - "CFGIJM", - "CFGIJN", - "CFGIJP", - "CFGILM", - "CFGILN", - "CFGILP", - "CFGIMN", - "CFGIMP", - "CFGINP", - "CFGJLM", - "CFGJLN", - "CFGJLP", - "CFGJMN", - "CFGJMP", - "CFGJNP", - "CFGLMN", - "CFGLMP", - "CFGLNP", - "CFGMNP", - "CFHIJL", - "CFHIJM", - "CFHIJN", - "CFHIJP", - "CFHILM", - "CFHILN", - "CFHILP", - "CFHIMN", - "CFHIMP", - "CFHINP", - "CFHJLM", - "CFHJLN", - "CFHJLP", - "CFHJMN", - "CFHJMP", - "CFHJNP", - "CFHLMN", - "CFHLMP", - "CFHLNP", - "CFHMNP", - "CFIJLM", - "CFIJLN", - "CFIJLP", - "CFIJMN", - "CFIJMP", - "CFIJNP", - "CFILMN", - "CFILMP", - "CFILNP", - "CFIMNP", - "CFJLMN", - "CFJLMP", - "CFJLNP", - "CFJMNP", - "CFLMNP", - "CGHIJL", - "CGHIJM", - "CGHIJN", - "CGHIJP", - "CGHILM", - "CGHILN", - "CGHILP", - "CGHIMN", - "CGHIMP", - "CGHINP", - "CGHJLM", - "CGHJLN", - "CGHJLP", - "CGHJMN", - "CGHJMP", - "CGHJNP", - "CGHLMN", - "CGHLMP", - "CGHLNP", - "CGHMNP", - "CGIJLM", - "CGIJLN", - "CGIJLP", - "CGIJMN", - "CGIJMP", - "CGIJNP", - "CGILMN", - "CGILMP", - "CGILNP", - "CGIMNP", - "CGJLMN", - "CGJLMP", - "CGJLNP", - "CGJMNP", - "CGLMNP", - "CHIJLM", - "CHIJLN", - "CHIJLP", - "CHIJMN", - "CHIJMP", - "CHIJNP", - "CHILMN", - "CHILMP", - "CHILNP", - "CHIMNP", - "CHJLMN", - "CHJLMP", - "CHJLNP", - "CHJMNP", - "CHLMNP", - "CIJLMN", - "CIJLMP", - "CIJLNP", - "CIJMNP", - "CILMNP", - "CJLMNP", - "EFGHIJ", - "EFGHIL", - "EFGHIM", - "EFGHIN", - "EFGHIP", - "EFGHJL", - "EFGHJM", - "EFGHJN", - "EFGHJP", - "EFGHLM", - "EFGHLN", - "EFGHLP", - "EFGHMN", - "EFGHMP", - "EFGHNP", - "EFGIJL", - "EFGIJM", - "EFGIJN", - "EFGIJP", - "EFGILM", - "EFGILN", - "EFGILP", - "EFGIMN", - "EFGIMP", - "EFGINP", - "EFGJLM", - "EFGJLN", - "EFGJLP", - "EFGJMN", - "EFGJMP", - "EFGJNP", - "EFGLMN", - "EFGLMP", - "EFGLNP", - "EFGMNP", - "EFHIJL", - "EFHIJM", - "EFHIJN", - "EFHIJP", - "EFHILM", - "EFHILN", - "EFHILP", - "EFHIMN", - "EFHIMP", - "EFHINP", - "EFHJLM", - "EFHJLN", - "EFHJLP", - "EFHJMN", - "EFHJMP", - "EFHJNP", - "EFHLMN", - "EFHLMP", - "EFHLNP", - "EFHMNP", - "EFIJLM", - "EFIJLN", - "EFIJLP", - "EFIJMN", - "EFIJMP", - "EFIJNP", - "EFILMN", - "EFILMP", - "EFILNP", - "EFIMNP", - "EFJLMN", - "EFJLMP", - "EFJLNP", - "EFJMNP", - "EFLMNP", - "EGHIJL", - "EGHIJM", - "EGHIJN", - "EGHIJP", - "EGHILM", - "EGHILN", - "EGHILP", - "EGHIMN", - "EGHIMP", - "EGHINP", - "EGHJLM", - "EGHJLN", - "EGHJLP", - "EGHJMN", - "EGHJMP", - "EGHJNP", - "EGHLMN", - "EGHLMP", - "EGHLNP", - "EGHMNP", - "EGIJLM", - "EGIJLN", - "EGIJLP", - "EGIJMN", - "EGIJMP", - "EGIJNP", - "EGILMN", - "EGILMP", - "EGILNP", - "EGIMNP", - "EGJLMN", - "EGJLMP", - "EGJLNP", - "EGJMNP", - "EGLMNP", - "EHIJLM", - "EHIJLN", - "EHIJLP", - "EHIJMN", - "EHIJMP", - "EHIJNP", - "EHILMN", - "EHILMP", - "EHILNP", - "EHIMNP", - "EHJLMN", - "EHJLMP", - "EHJLNP", - "EHJMNP", - "EHLMNP", - "EIJLMN", - "EIJLMP", - "EIJLNP", - "EIJMNP", - "EILMNP", - "EJLMNP", - "FGHIJL", - "FGHIJM", - "FGHIJN", - "FGHIJP", - "FGHILM", - "FGHILN", - "FGHILP", - "FGHIMN", - "FGHIMP", - "FGHINP", - "FGHJLM", - "FGHJLN", - "FGHJLP", - "FGHJMN", - "FGHJMP", - "FGHJNP", - "FGHLMN", - "FGHLMP", - "FGHLNP", - "FGHMNP", - "FGIJLM", - "FGIJLN", - "FGIJLP", - "FGIJMN", - "FGIJMP", - "FGIJNP", - "FGILMN", - "FGILMP", - "FGILNP", - "FGIMNP", - "FGJLMN", - "FGJLMP", - "FGJLNP", - "FGJMNP", - "FGLMNP", - "FHIJLM", - "FHIJLN", - "FHIJLP", - "FHIJMN", - "FHIJMP", - "FHIJNP", - "FHILMN", - "FHILMP", - "FHILNP", - "FHIMNP", - "FHJLMN", - "FHJLMP", - "FHJLNP", - "FHJMNP", - "FHLMNP", - "FIJLMN", - "FIJLMP", - "FIJLNP", - "FIJMNP", - "FILMNP", - "FJLMNP", - "GHIJLM", - "GHIJLN", - "GHIJLP", - "GHIJMN", - "GHIJMP", - "GHIJNP", - "GHILMN", - "GHILMP", - "GHILNP", - "GHIMNP", - "GHJLMN", - "GHJLMP", - "GHJLNP", - "GHJMNP", - "GHLMNP", - "GIJLMN", - "GIJLMP", - "GIJLNP", - "GIJMNP", - "GILMNP", - "GJLMNP", - "HIJLMN", - "HIJLMP", - "HIJLNP", - "HIJMNP", - "HILMNP", - "HJLMNP", - "IJLMNP", - "ABCEFGH", - "ABCEFGI", - "ABCEFGJ", - "ABCEFGL", - "ABCEFGM", - "ABCEFGN", - "ABCEFGP", - "ABCEFHI", - "ABCEFHJ", - "ABCEFHL", - "ABCEFHM", - "ABCEFHN", - "ABCEFHP", - "ABCEFIJ", - "ABCEFIL", - "ABCEFIM", - "ABCEFIN", - "ABCEFIP", - "ABCEFJL", - "ABCEFJM", - "ABCEFJN", - "ABCEFJP", - "ABCEFLM", - "ABCEFLN", - "ABCEFLP", - "ABCEFMN", - "ABCEFMP", - "ABCEFNP", - "ABCEGHI", - "ABCEGHJ", - "ABCEGHL", - "ABCEGHM", - "ABCEGHN", - "ABCEGHP", - "ABCEGIJ", - "ABCEGIL", - "ABCEGIM", - "ABCEGIN", - "ABCEGIP", - "ABCEGJL", - "ABCEGJM", - "ABCEGJN", - "ABCEGJP", - "ABCEGLM", - "ABCEGLN", - "ABCEGLP", - "ABCEGMN", - "ABCEGMP", - "ABCEGNP", - "ABCEHIJ", - "ABCEHIL", - "ABCEHIM", - "ABCEHIN", - "ABCEHIP", - "ABCEHJL", - "ABCEHJM", - "ABCEHJN", - "ABCEHJP", - "ABCEHLM", - "ABCEHLN", - "ABCEHLP", - "ABCEHMN", - "ABCEHMP", - "ABCEHNP", - "ABCEIJL", - "ABCEIJM", - "ABCEIJN", - "ABCEIJP", - "ABCEILM", - "ABCEILN", - "ABCEILP", - "ABCEIMN", - "ABCEIMP", - "ABCEINP", - "ABCEJLM", - "ABCEJLN", - "ABCEJLP", - "ABCEJMN", - "ABCEJMP", - "ABCEJNP", - "ABCELMN", - "ABCELMP", - "ABCELNP", - "ABCEMNP", - "ABCFGHI", - "ABCFGHJ", - "ABCFGHL", - "ABCFGHM", - "ABCFGHN", - "ABCFGHP", - "ABCFGIJ", - "ABCFGIL", - "ABCFGIM", - "ABCFGIN", - "ABCFGIP", - "ABCFGJL", - "ABCFGJM", - "ABCFGJN", - "ABCFGJP", - "ABCFGLM", - "ABCFGLN", - "ABCFGLP", - "ABCFGMN", - "ABCFGMP", - "ABCFGNP", - "ABCFHIJ", - "ABCFHIL", - "ABCFHIM", - "ABCFHIN", - "ABCFHIP", - "ABCFHJL", - "ABCFHJM", - "ABCFHJN", - "ABCFHJP", - "ABCFHLM", - "ABCFHLN", - "ABCFHLP", - "ABCFHMN", - "ABCFHMP", - "ABCFHNP", - "ABCFIJL", - "ABCFIJM", - "ABCFIJN", - "ABCFIJP", - "ABCFILM", - "ABCFILN", - "ABCFILP", - "ABCFIMN", - "ABCFIMP", - "ABCFINP", - "ABCFJLM", - "ABCFJLN", - "ABCFJLP", - "ABCFJMN", - "ABCFJMP", - "ABCFJNP", - "ABCFLMN", - "ABCFLMP", - "ABCFLNP", - "ABCFMNP", - "ABCGHIJ", - "ABCGHIL", - "ABCGHIM", - "ABCGHIN", - "ABCGHIP", - "ABCGHJL", - "ABCGHJM", - "ABCGHJN", - "ABCGHJP", - "ABCGHLM", - "ABCGHLN", - "ABCGHLP", - "ABCGHMN", - "ABCGHMP", - "ABCGHNP", - "ABCGIJL", - "ABCGIJM", - "ABCGIJN", - "ABCGIJP", - "ABCGILM", - "ABCGILN", - "ABCGILP", - "ABCGIMN", - "ABCGIMP", - "ABCGINP", - "ABCGJLM", - "ABCGJLN", - "ABCGJLP", - "ABCGJMN", - "ABCGJMP", - "ABCGJNP", - "ABCGLMN", - "ABCGLMP", - "ABCGLNP", - "ABCGMNP", - "ABCHIJL", - "ABCHIJM", - "ABCHIJN", - "ABCHIJP", - "ABCHILM", - "ABCHILN", - "ABCHILP", - "ABCHIMN", - "ABCHIMP", - "ABCHINP", - "ABCHJLM", - "ABCHJLN", - "ABCHJLP", - "ABCHJMN", - "ABCHJMP", - "ABCHJNP", - "ABCHLMN", - "ABCHLMP", - "ABCHLNP", - "ABCHMNP", - "ABCIJLM", - "ABCIJLN", - "ABCIJLP", - "ABCIJMN", - "ABCIJMP", - "ABCIJNP", - "ABCILMN", - "ABCILMP", - "ABCILNP", - "ABCIMNP", - "ABCJLMN", - "ABCJLMP", - "ABCJLNP", - "ABCJMNP", - "ABCLMNP", - "ABEFGHI", - "ABEFGHJ", - "ABEFGHL", - "ABEFGHM", - "ABEFGHN", - "ABEFGHP", - "ABEFGIJ", - "ABEFGIL", - "ABEFGIM", - "ABEFGIN", - "ABEFGIP", - "ABEFGJL", - "ABEFGJM", - "ABEFGJN", - "ABEFGJP", - "ABEFGLM", - "ABEFGLN", - "ABEFGLP", - "ABEFGMN", - "ABEFGMP", - "ABEFGNP", - "ABEFHIJ", - "ABEFHIL", - "ABEFHIM", - "ABEFHIN", - "ABEFHIP", - "ABEFHJL", - "ABEFHJM", - "ABEFHJN", - "ABEFHJP", - "ABEFHLM", - "ABEFHLN", - "ABEFHLP", - "ABEFHMN", - "ABEFHMP", - "ABEFHNP", - "ABEFIJL", - "ABEFIJM", - "ABEFIJN", - "ABEFIJP", - "ABEFILM", - "ABEFILN", - "ABEFILP", - "ABEFIMN", - "ABEFIMP", - "ABEFINP", - "ABEFJLM", - "ABEFJLN", - "ABEFJLP", - "ABEFJMN", - "ABEFJMP", - "ABEFJNP", - "ABEFLMN", - "ABEFLMP", - "ABEFLNP", - "ABEFMNP", - "ABEGHIJ", - "ABEGHIL", - "ABEGHIM", - "ABEGHIN", - "ABEGHIP", - "ABEGHJL", - "ABEGHJM", - "ABEGHJN", - "ABEGHJP", - "ABEGHLM", - "ABEGHLN", - "ABEGHLP", - "ABEGHMN", - "ABEGHMP", - "ABEGHNP", - "ABEGIJL", - "ABEGIJM", - "ABEGIJN", - "ABEGIJP", - "ABEGILM", - "ABEGILN", - "ABEGILP", - "ABEGIMN", - "ABEGIMP", - "ABEGINP", - "ABEGJLM", - "ABEGJLN", - "ABEGJLP", - "ABEGJMN", - "ABEGJMP", - "ABEGJNP", - "ABEGLMN", - "ABEGLMP", - "ABEGLNP", - "ABEGMNP", - "ABEHIJL", - "ABEHIJM", - "ABEHIJN", - "ABEHIJP", - "ABEHILM", - "ABEHILN", - "ABEHILP", - "ABEHIMN", - "ABEHIMP", - "ABEHINP", - "ABEHJLM", - "ABEHJLN", - "ABEHJLP", - "ABEHJMN", - "ABEHJMP", - "ABEHJNP", - "ABEHLMN", - "ABEHLMP", - "ABEHLNP", - "ABEHMNP", - "ABEIJLM", - "ABEIJLN", - "ABEIJLP", - "ABEIJMN", - "ABEIJMP", - "ABEIJNP", - "ABEILMN", - "ABEILMP", - "ABEILNP", - "ABEIMNP", - "ABEJLMN", - "ABEJLMP", - "ABEJLNP", - "ABEJMNP", - "ABELMNP", - "ABFGHIJ", - "ABFGHIL", - "ABFGHIM", - "ABFGHIN", - "ABFGHIP", - "ABFGHJL", - "ABFGHJM", - "ABFGHJN", - "ABFGHJP", - "ABFGHLM", - "ABFGHLN", - "ABFGHLP", - "ABFGHMN", - "ABFGHMP", - "ABFGHNP", - "ABFGIJL", - "ABFGIJM", - "ABFGIJN", - "ABFGIJP", - "ABFGILM", - "ABFGILN", - "ABFGILP", - "ABFGIMN", - "ABFGIMP", - "ABFGINP", - "ABFGJLM", - "ABFGJLN", - "ABFGJLP", - "ABFGJMN", - "ABFGJMP", - "ABFGJNP", - "ABFGLMN", - "ABFGLMP", - "ABFGLNP", - "ABFGMNP", - "ABFHIJL", - "ABFHIJM", - "ABFHIJN", - "ABFHIJP", - "ABFHILM", - "ABFHILN", - "ABFHILP", - "ABFHIMN", - "ABFHIMP", - "ABFHINP", - "ABFHJLM", - "ABFHJLN", - "ABFHJLP", - "ABFHJMN", - "ABFHJMP", - "ABFHJNP", - "ABFHLMN", - "ABFHLMP", - "ABFHLNP", - "ABFHMNP", - "ABFIJLM", - "ABFIJLN", - "ABFIJLP", - "ABFIJMN", - "ABFIJMP", - "ABFIJNP", - "ABFILMN", - "ABFILMP", - "ABFILNP", - "ABFIMNP", - "ABFJLMN", - "ABFJLMP", - "ABFJLNP", - "ABFJMNP", - "ABFLMNP", - "ABGHIJL", - "ABGHIJM", - "ABGHIJN", - "ABGHIJP", - "ABGHILM", - "ABGHILN", - "ABGHILP", - "ABGHIMN", - "ABGHIMP", - "ABGHINP", - "ABGHJLM", - "ABGHJLN", - "ABGHJLP", - "ABGHJMN", - "ABGHJMP", - "ABGHJNP", - "ABGHLMN", - "ABGHLMP", - "ABGHLNP", - "ABGHMNP", - "ABGIJLM", - "ABGIJLN", - "ABGIJLP", - "ABGIJMN", - "ABGIJMP", - "ABGIJNP", - "ABGILMN", - "ABGILMP", - "ABGILNP", - "ABGIMNP", - "ABGJLMN", - "ABGJLMP", - "ABGJLNP", - "ABGJMNP", - "ABGLMNP", - "ABHIJLM", - "ABHIJLN", - "ABHIJLP", - "ABHIJMN", - "ABHIJMP", - "ABHIJNP", - "ABHILMN", - "ABHILMP", - "ABHILNP", - "ABHIMNP", - "ABHJLMN", - "ABHJLMP", - "ABHJLNP", - "ABHJMNP", - "ABHLMNP", - "ABIJLMN", - "ABIJLMP", - "ABIJLNP", - "ABIJMNP", - "ABILMNP", - "ABJLMNP", - "ACEFGHI", - "ACEFGHJ", - "ACEFGHL", - "ACEFGHM", - "ACEFGHN", - "ACEFGHP", - "ACEFGIJ", - "ACEFGIL", - "ACEFGIM", - "ACEFGIN", - "ACEFGIP", - "ACEFGJL", - "ACEFGJM", - "ACEFGJN", - "ACEFGJP", - "ACEFGLM", - "ACEFGLN", - "ACEFGLP", - "ACEFGMN", - "ACEFGMP", - "ACEFGNP", - "ACEFHIJ", - "ACEFHIL", - "ACEFHIM", - "ACEFHIN", - "ACEFHIP", - "ACEFHJL", - "ACEFHJM", - "ACEFHJN", - "ACEFHJP", - "ACEFHLM", - "ACEFHLN", - "ACEFHLP", - "ACEFHMN", - "ACEFHMP", - "ACEFHNP", - "ACEFIJL", - "ACEFIJM", - "ACEFIJN", - "ACEFIJP", - "ACEFILM", - "ACEFILN", - "ACEFILP", - "ACEFIMN", - "ACEFIMP", - "ACEFINP", - "ACEFJLM", - "ACEFJLN", - "ACEFJLP", - "ACEFJMN", - "ACEFJMP", - "ACEFJNP", - "ACEFLMN", - "ACEFLMP", - "ACEFLNP", - "ACEFMNP", - "ACEGHIJ", - "ACEGHIL", - "ACEGHIM", - "ACEGHIN", - "ACEGHIP", - "ACEGHJL", - "ACEGHJM", - "ACEGHJN", - "ACEGHJP", - "ACEGHLM", - "ACEGHLN", - "ACEGHLP", - "ACEGHMN", - "ACEGHMP", - "ACEGHNP", - "ACEGIJL", - "ACEGIJM", - "ACEGIJN", - "ACEGIJP", - "ACEGILM", - "ACEGILN", - "ACEGILP", - "ACEGIMN", - "ACEGIMP", - "ACEGINP", - "ACEGJLM", - "ACEGJLN", - "ACEGJLP", - "ACEGJMN", - "ACEGJMP", - "ACEGJNP", - "ACEGLMN", - "ACEGLMP", - "ACEGLNP", - "ACEGMNP", - "ACEHIJL", - "ACEHIJM", - "ACEHIJN", - "ACEHIJP", - "ACEHILM", - "ACEHILN", - "ACEHILP", - "ACEHIMN", - "ACEHIMP", - "ACEHINP", - "ACEHJLM", - "ACEHJLN", - "ACEHJLP", - "ACEHJMN", - "ACEHJMP", - "ACEHJNP", - "ACEHLMN", - "ACEHLMP", - "ACEHLNP", - "ACEHMNP", - "ACEIJLM", - "ACEIJLN", - "ACEIJLP", - "ACEIJMN", - "ACEIJMP", - "ACEIJNP", - "ACEILMN", - "ACEILMP", - "ACEILNP", - "ACEIMNP", - "ACEJLMN", - "ACEJLMP", - "ACEJLNP", - "ACEJMNP", - "ACELMNP", - "ACFGHIJ", - "ACFGHIL", - "ACFGHIM", - "ACFGHIN", - "ACFGHIP", - "ACFGHJL", - "ACFGHJM", - "ACFGHJN", - "ACFGHJP", - "ACFGHLM", - "ACFGHLN", - "ACFGHLP", - "ACFGHMN", - "ACFGHMP", - "ACFGHNP", - "ACFGIJL", - "ACFGIJM", - "ACFGIJN", - "ACFGIJP", - "ACFGILM", - "ACFGILN", - "ACFGILP", - "ACFGIMN", - "ACFGIMP", - "ACFGINP", - "ACFGJLM", - "ACFGJLN", - "ACFGJLP", - "ACFGJMN", - "ACFGJMP", - "ACFGJNP", - "ACFGLMN", - "ACFGLMP", - "ACFGLNP", - "ACFGMNP", - "ACFHIJL", - "ACFHIJM", - "ACFHIJN", - "ACFHIJP", - "ACFHILM", - "ACFHILN", - "ACFHILP", - "ACFHIMN", - "ACFHIMP", - "ACFHINP", - "ACFHJLM", - "ACFHJLN", - "ACFHJLP", - "ACFHJMN", - "ACFHJMP", - "ACFHJNP", - "ACFHLMN", - "ACFHLMP", - "ACFHLNP", - "ACFHMNP", - "ACFIJLM", - "ACFIJLN", - "ACFIJLP", - "ACFIJMN", - "ACFIJMP", - "ACFIJNP", - "ACFILMN", - "ACFILMP", - "ACFILNP", - "ACFIMNP", - "ACFJLMN", - "ACFJLMP", - "ACFJLNP", - "ACFJMNP", - "ACFLMNP", - "ACGHIJL", - "ACGHIJM", - "ACGHIJN", - "ACGHIJP", - "ACGHILM", - "ACGHILN", - "ACGHILP", - "ACGHIMN", - "ACGHIMP", - "ACGHINP", - "ACGHJLM", - "ACGHJLN", - "ACGHJLP", - "ACGHJMN", - "ACGHJMP", - "ACGHJNP", - "ACGHLMN", - "ACGHLMP", - "ACGHLNP", - "ACGHMNP", - "ACGIJLM", - "ACGIJLN", - "ACGIJLP", - "ACGIJMN", - "ACGIJMP", - "ACGIJNP", - "ACGILMN", - "ACGILMP", - "ACGILNP", - "ACGIMNP", - "ACGJLMN", - "ACGJLMP", - "ACGJLNP", - "ACGJMNP", - "ACGLMNP", - "ACHIJLM", - "ACHIJLN", - "ACHIJLP", - "ACHIJMN", - "ACHIJMP", - "ACHIJNP", - "ACHILMN", - "ACHILMP", - "ACHILNP", - "ACHIMNP", - "ACHJLMN", - "ACHJLMP", - "ACHJLNP", - "ACHJMNP", - "ACHLMNP", - "ACIJLMN", - "ACIJLMP", - "ACIJLNP", - "ACIJMNP", - "ACILMNP", - "ACJLMNP", - "AEFGHIJ", - "AEFGHIL", - "AEFGHIM", - "AEFGHIN", - "AEFGHIP", - "AEFGHJL", - "AEFGHJM", - "AEFGHJN", - "AEFGHJP", - "AEFGHLM", - "AEFGHLN", - "AEFGHLP", - "AEFGHMN", - "AEFGHMP", - "AEFGHNP", - "AEFGIJL", - "AEFGIJM", - "AEFGIJN", - "AEFGIJP", - "AEFGILM", - "AEFGILN", - "AEFGILP", - "AEFGIMN", - "AEFGIMP", - "AEFGINP", - "AEFGJLM", - "AEFGJLN", - "AEFGJLP", - "AEFGJMN", - "AEFGJMP", - "AEFGJNP", - "AEFGLMN", - "AEFGLMP", - "AEFGLNP", - "AEFGMNP", - "AEFHIJL", - "AEFHIJM", - "AEFHIJN", - "AEFHIJP", - "AEFHILM", - "AEFHILN", - "AEFHILP", - "AEFHIMN", - "AEFHIMP", - "AEFHINP", - "AEFHJLM", - "AEFHJLN", - "AEFHJLP", - "AEFHJMN", - "AEFHJMP", - "AEFHJNP", - "AEFHLMN", - "AEFHLMP", - "AEFHLNP", - "AEFHMNP", - "AEFIJLM", - "AEFIJLN", - "AEFIJLP", - "AEFIJMN", - "AEFIJMP", - "AEFIJNP", - "AEFILMN", - "AEFILMP", - "AEFILNP", - "AEFIMNP", - "AEFJLMN", - "AEFJLMP", - "AEFJLNP", - "AEFJMNP", - "AEFLMNP", - "AEGHIJL", - "AEGHIJM", - "AEGHIJN", - "AEGHIJP", - "AEGHILM", - "AEGHILN", - "AEGHILP", - "AEGHIMN", - "AEGHIMP", - "AEGHINP", - "AEGHJLM", - "AEGHJLN", - "AEGHJLP", - "AEGHJMN", - "AEGHJMP", - "AEGHJNP", - "AEGHLMN", - "AEGHLMP", - "AEGHLNP", - "AEGHMNP", - "AEGIJLM", - "AEGIJLN", - "AEGIJLP", - "AEGIJMN", - "AEGIJMP", - "AEGIJNP", - "AEGILMN", - "AEGILMP", - "AEGILNP", - "AEGIMNP", - "AEGJLMN", - "AEGJLMP", - "AEGJLNP", - "AEGJMNP", - "AEGLMNP", - "AEHIJLM", - "AEHIJLN", - "AEHIJLP", - "AEHIJMN", - "AEHIJMP", - "AEHIJNP", - "AEHILMN", - "AEHILMP", - "AEHILNP", - "AEHIMNP", - "AEHJLMN", - "AEHJLMP", - "AEHJLNP", - "AEHJMNP", - "AEHLMNP", - "AEIJLMN", - "AEIJLMP", - "AEIJLNP", - "AEIJMNP", - "AEILMNP", - "AEJLMNP", - "AFGHIJL", - "AFGHIJM", - "AFGHIJN", - "AFGHIJP", - "AFGHILM", - "AFGHILN", - "AFGHILP", - "AFGHIMN", - "AFGHIMP", - "AFGHINP", - "AFGHJLM", - "AFGHJLN", - "AFGHJLP", - "AFGHJMN", - "AFGHJMP", - "AFGHJNP", - "AFGHLMN", - "AFGHLMP", - "AFGHLNP", - "AFGHMNP", - "AFGIJLM", - "AFGIJLN", - "AFGIJLP", - "AFGIJMN", - "AFGIJMP", - "AFGIJNP", - "AFGILMN", - "AFGILMP", - "AFGILNP", - "AFGIMNP", - "AFGJLMN", - "AFGJLMP", - "AFGJLNP", - "AFGJMNP", - "AFGLMNP", - "AFHIJLM", - "AFHIJLN", - "AFHIJLP", - "AFHIJMN", - "AFHIJMP", - "AFHIJNP", - "AFHILMN", - "AFHILMP", - "AFHILNP", - "AFHIMNP", - "AFHJLMN", - "AFHJLMP", - "AFHJLNP", - "AFHJMNP", - "AFHLMNP", - "AFIJLMN", - "AFIJLMP", - "AFIJLNP", - "AFIJMNP", - "AFILMNP", - "AFJLMNP", - "AGHIJLM", - "AGHIJLN", - "AGHIJLP", - "AGHIJMN", - "AGHIJMP", - "AGHIJNP", - "AGHILMN", - "AGHILMP", - "AGHILNP", - "AGHIMNP", - "AGHJLMN", - "AGHJLMP", - "AGHJLNP", - "AGHJMNP", - "AGHLMNP", - "AGIJLMN", - "AGIJLMP", - "AGIJLNP", - "AGIJMNP", - "AGILMNP", - "AGJLMNP", - "AHIJLMN", - "AHIJLMP", - "AHIJLNP", - "AHIJMNP", - "AHILMNP", - "AHJLMNP", - "AIJLMNP", - "BCEFGHI", - "BCEFGHJ", - "BCEFGHL", - "BCEFGHM", - "BCEFGHN", - "BCEFGHP", - "BCEFGIJ", - "BCEFGIL", - "BCEFGIM", - "BCEFGIN", - "BCEFGIP", - "BCEFGJL", - "BCEFGJM", - "BCEFGJN", - "BCEFGJP", - "BCEFGLM", - "BCEFGLN", - "BCEFGLP", - "BCEFGMN", - "BCEFGMP", - "BCEFGNP", - "BCEFHIJ", - "BCEFHIL", - "BCEFHIM", - "BCEFHIN", - "BCEFHIP", - "BCEFHJL", - "BCEFHJM", - "BCEFHJN", - "BCEFHJP", - "BCEFHLM", - "BCEFHLN", - "BCEFHLP", - "BCEFHMN", - "BCEFHMP", - "BCEFHNP", - "BCEFIJL", - "BCEFIJM", - "BCEFIJN", - "BCEFIJP", - "BCEFILM", - "BCEFILN", - "BCEFILP", - "BCEFIMN", - "BCEFIMP", - "BCEFINP", - "BCEFJLM", - "BCEFJLN", - "BCEFJLP", - "BCEFJMN", - "BCEFJMP", - "BCEFJNP", - "BCEFLMN", - "BCEFLMP", - "BCEFLNP", - "BCEFMNP", - "BCEGHIJ", - "BCEGHIL", - "BCEGHIM", - "BCEGHIN", - "BCEGHIP", - "BCEGHJL", - "BCEGHJM", - "BCEGHJN", - "BCEGHJP", - "BCEGHLM", - "BCEGHLN", - "BCEGHLP", - "BCEGHMN", - "BCEGHMP", - "BCEGHNP", - "BCEGIJL", - "BCEGIJM", - "BCEGIJN", - "BCEGIJP", - "BCEGILM", - "BCEGILN", - "BCEGILP", - "BCEGIMN", - "BCEGIMP", - "BCEGINP", - "BCEGJLM", - "BCEGJLN", - "BCEGJLP", - "BCEGJMN", - "BCEGJMP", - "BCEGJNP", - "BCEGLMN", - "BCEGLMP", - "BCEGLNP", - "BCEGMNP", - "BCEHIJL", - "BCEHIJM", - "BCEHIJN", - "BCEHIJP", - "BCEHILM", - "BCEHILN", - "BCEHILP", - "BCEHIMN", - "BCEHIMP", - "BCEHINP", - "BCEHJLM", - "BCEHJLN", - "BCEHJLP", - "BCEHJMN", - "BCEHJMP", - "BCEHJNP", - "BCEHLMN", - "BCEHLMP", - "BCEHLNP", - "BCEHMNP", - "BCEIJLM", - "BCEIJLN", - "BCEIJLP", - "BCEIJMN", - "BCEIJMP", - "BCEIJNP", - "BCEILMN", - "BCEILMP", - "BCEILNP", - "BCEIMNP", - "BCEJLMN", - "BCEJLMP", - "BCEJLNP", - "BCEJMNP", - "BCELMNP", - "BCFGHIJ", - "BCFGHIL", - "BCFGHIM", - "BCFGHIN", - "BCFGHIP", - "BCFGHJL", - "BCFGHJM", - "BCFGHJN", - "BCFGHJP", - "BCFGHLM", - "BCFGHLN", - "BCFGHLP", - "BCFGHMN", - "BCFGHMP", - "BCFGHNP", - "BCFGIJL", - "BCFGIJM", - "BCFGIJN", - "BCFGIJP", - "BCFGILM", - "BCFGILN", - "BCFGILP", - "BCFGIMN", - "BCFGIMP", - "BCFGINP", - "BCFGJLM", - "BCFGJLN", - "BCFGJLP", - "BCFGJMN", - "BCFGJMP", - "BCFGJNP", - "BCFGLMN", - "BCFGLMP", - "BCFGLNP", - "BCFGMNP", - "BCFHIJL", - "BCFHIJM", - "BCFHIJN", - "BCFHIJP", - "BCFHILM", - "BCFHILN", - "BCFHILP", - "BCFHIMN", - "BCFHIMP", - "BCFHINP", - "BCFHJLM", - "BCFHJLN", - "BCFHJLP", - "BCFHJMN", - "BCFHJMP", - "BCFHJNP", - "BCFHLMN", - "BCFHLMP", - "BCFHLNP", - "BCFHMNP", - "BCFIJLM", - "BCFIJLN", - "BCFIJLP", - "BCFIJMN", - "BCFIJMP", - "BCFIJNP", - "BCFILMN", - "BCFILMP", - "BCFILNP", - "BCFIMNP", - "BCFJLMN", - "BCFJLMP", - "BCFJLNP", - "BCFJMNP", - "BCFLMNP", - "BCGHIJL", - "BCGHIJM", - "BCGHIJN", - "BCGHIJP", - "BCGHILM", - "BCGHILN", - "BCGHILP", - "BCGHIMN", - "BCGHIMP", - "BCGHINP", - "BCGHJLM", - "BCGHJLN", - "BCGHJLP", - "BCGHJMN", - "BCGHJMP", - "BCGHJNP", - "BCGHLMN", - "BCGHLMP", - "BCGHLNP", - "BCGHMNP", - "BCGIJLM", - "BCGIJLN", - "BCGIJLP", - "BCGIJMN", - "BCGIJMP", - "BCGIJNP", - "BCGILMN", - "BCGILMP", - "BCGILNP", - "BCGIMNP", - "BCGJLMN", - "BCGJLMP", - "BCGJLNP", - "BCGJMNP", - "BCGLMNP", - "BCHIJLM", - "BCHIJLN", - "BCHIJLP", - "BCHIJMN", - "BCHIJMP", - "BCHIJNP", - "BCHILMN", - "BCHILMP", - "BCHILNP", - "BCHIMNP", - "BCHJLMN", - "BCHJLMP", - "BCHJLNP", - "BCHJMNP", - "BCHLMNP", - "BCIJLMN", - "BCIJLMP", - "BCIJLNP", - "BCIJMNP", - "BCILMNP", - "BCJLMNP", - "BEFGHIJ", - "BEFGHIL", - "BEFGHIM", - "BEFGHIN", - "BEFGHIP", - "BEFGHJL", - "BEFGHJM", - "BEFGHJN", - "BEFGHJP", - "BEFGHLM", - "BEFGHLN", - "BEFGHLP", - "BEFGHMN", - "BEFGHMP", - "BEFGHNP", - "BEFGIJL", - "BEFGIJM", - "BEFGIJN", - "BEFGIJP", - "BEFGILM", - "BEFGILN", - "BEFGILP", - "BEFGIMN", - "BEFGIMP", - "BEFGINP", - "BEFGJLM", - "BEFGJLN", - "BEFGJLP", - "BEFGJMN", - "BEFGJMP", - "BEFGJNP", - "BEFGLMN", - "BEFGLMP", - "BEFGLNP", - "BEFGMNP", - "BEFHIJL", - "BEFHIJM", - "BEFHIJN", - "BEFHIJP", - "BEFHILM", - "BEFHILN", - "BEFHILP", - "BEFHIMN", - "BEFHIMP", - "BEFHINP", - "BEFHJLM", - "BEFHJLN", - "BEFHJLP", - "BEFHJMN", - "BEFHJMP", - "BEFHJNP", - "BEFHLMN", - "BEFHLMP", - "BEFHLNP", - "BEFHMNP", - "BEFIJLM", - "BEFIJLN", - "BEFIJLP", - "BEFIJMN", - "BEFIJMP", - "BEFIJNP", - "BEFILMN", - "BEFILMP", - "BEFILNP", - "BEFIMNP", - "BEFJLMN", - "BEFJLMP", - "BEFJLNP", - "BEFJMNP", - "BEFLMNP", - "BEGHIJL", - "BEGHIJM", - "BEGHIJN", - "BEGHIJP", - "BEGHILM", - "BEGHILN", - "BEGHILP", - "BEGHIMN", - "BEGHIMP", - "BEGHINP", - "BEGHJLM", - "BEGHJLN", - "BEGHJLP", - "BEGHJMN", - "BEGHJMP", - "BEGHJNP", - "BEGHLMN", - "BEGHLMP", - "BEGHLNP", - "BEGHMNP", - "BEGIJLM", - "BEGIJLN", - "BEGIJLP", - "BEGIJMN", - "BEGIJMP", - "BEGIJNP", - "BEGILMN", - "BEGILMP", - "BEGILNP", - "BEGIMNP", - "BEGJLMN", - "BEGJLMP", - "BEGJLNP", - "BEGJMNP", - "BEGLMNP", - "BEHIJLM", - "BEHIJLN", - "BEHIJLP", - "BEHIJMN", - "BEHIJMP", - "BEHIJNP", - "BEHILMN", - "BEHILMP", - "BEHILNP", - "BEHIMNP", - "BEHJLMN", - "BEHJLMP", - "BEHJLNP", - "BEHJMNP", - "BEHLMNP", - "BEIJLMN", - "BEIJLMP", - "BEIJLNP", - "BEIJMNP", - "BEILMNP", - "BEJLMNP", - "BFGHIJL", - "BFGHIJM", - "BFGHIJN", - "BFGHIJP", - "BFGHILM", - "BFGHILN", - "BFGHILP", - "BFGHIMN", - "BFGHIMP", - "BFGHINP", - "BFGHJLM", - "BFGHJLN", - "BFGHJLP", - "BFGHJMN", - "BFGHJMP", - "BFGHJNP", - "BFGHLMN", - "BFGHLMP", - "BFGHLNP", - "BFGHMNP", - "BFGIJLM", - "BFGIJLN", - "BFGIJLP", - "BFGIJMN", - "BFGIJMP", - "BFGIJNP", - "BFGILMN", - "BFGILMP", - "BFGILNP", - "BFGIMNP", - "BFGJLMN", - "BFGJLMP", - "BFGJLNP", - "BFGJMNP", - "BFGLMNP", - "BFHIJLM", - "BFHIJLN", - "BFHIJLP", - "BFHIJMN", - "BFHIJMP", - "BFHIJNP", - "BFHILMN", - "BFHILMP", - "BFHILNP", - "BFHIMNP", - "BFHJLMN", - "BFHJLMP", - "BFHJLNP", - "BFHJMNP", - "BFHLMNP", - "BFIJLMN", - "BFIJLMP", - "BFIJLNP", - "BFIJMNP", - "BFILMNP", - "BFJLMNP", - "BGHIJLM", - "BGHIJLN", - "BGHIJLP", - "BGHIJMN", - "BGHIJMP", - "BGHIJNP", - "BGHILMN", - "BGHILMP", - "BGHILNP", - "BGHIMNP", - "BGHJLMN", - "BGHJLMP", - "BGHJLNP", - "BGHJMNP", - "BGHLMNP", - "BGIJLMN", - "BGIJLMP", - "BGIJLNP", - "BGIJMNP", - "BGILMNP", - "BGJLMNP", - "BHIJLMN", - "BHIJLMP", - "BHIJLNP", - "BHIJMNP", - "BHILMNP", - "BHJLMNP", - "BIJLMNP", - "CEFGHIJ", - "CEFGHIL", - "CEFGHIM", - "CEFGHIN", - "CEFGHIP", - "CEFGHJL", - "CEFGHJM", - "CEFGHJN", - "CEFGHJP", - "CEFGHLM", - "CEFGHLN", - "CEFGHLP", - "CEFGHMN", - "CEFGHMP", - "CEFGHNP", - "CEFGIJL", - "CEFGIJM", - "CEFGIJN", - "CEFGIJP", - "CEFGILM", - "CEFGILN", - "CEFGILP", - "CEFGIMN", - "CEFGIMP", - "CEFGINP", - "CEFGJLM", - "CEFGJLN", - "CEFGJLP", - "CEFGJMN", - "CEFGJMP", - "CEFGJNP", - "CEFGLMN", - "CEFGLMP", - "CEFGLNP", - "CEFGMNP", - "CEFHIJL", - "CEFHIJM", - "CEFHIJN", - "CEFHIJP", - "CEFHILM", - "CEFHILN", - "CEFHILP", - "CEFHIMN", - "CEFHIMP", - "CEFHINP", - "CEFHJLM", - "CEFHJLN", - "CEFHJLP", - "CEFHJMN", - "CEFHJMP", - "CEFHJNP", - "CEFHLMN", - "CEFHLMP", - "CEFHLNP", - "CEFHMNP", - "CEFIJLM", - "CEFIJLN", - "CEFIJLP", - "CEFIJMN", - "CEFIJMP", - "CEFIJNP", - "CEFILMN", - "CEFILMP", - "CEFILNP", - "CEFIMNP", - "CEFJLMN", - "CEFJLMP", - "CEFJLNP", - "CEFJMNP", - "CEFLMNP", - "CEGHIJL", - "CEGHIJM", - "CEGHIJN", - "CEGHIJP", - "CEGHILM", - "CEGHILN", - "CEGHILP", - "CEGHIMN", - "CEGHIMP", - "CEGHINP", - "CEGHJLM", - "CEGHJLN", - "CEGHJLP", - "CEGHJMN", - "CEGHJMP", - "CEGHJNP", - "CEGHLMN", - "CEGHLMP", - "CEGHLNP", - "CEGHMNP", - "CEGIJLM", - "CEGIJLN", - "CEGIJLP", - "CEGIJMN", - "CEGIJMP", - "CEGIJNP", - "CEGILMN", - "CEGILMP", - "CEGILNP", - "CEGIMNP", - "CEGJLMN", - "CEGJLMP", - "CEGJLNP", - "CEGJMNP", - "CEGLMNP", - "CEHIJLM", - "CEHIJLN", - "CEHIJLP", - "CEHIJMN", - "CEHIJMP", - "CEHIJNP", - "CEHILMN", - "CEHILMP", - "CEHILNP", - "CEHIMNP", - "CEHJLMN", - "CEHJLMP", - "CEHJLNP", - "CEHJMNP", - "CEHLMNP", - "CEIJLMN", - "CEIJLMP", - "CEIJLNP", - "CEIJMNP", - "CEILMNP", - "CEJLMNP", - "CFGHIJL", - "CFGHIJM", - "CFGHIJN", - "CFGHIJP", - "CFGHILM", - "CFGHILN", - "CFGHILP", - "CFGHIMN", - "CFGHIMP", - "CFGHINP", - "CFGHJLM", - "CFGHJLN", - "CFGHJLP", - "CFGHJMN", - "CFGHJMP", - "CFGHJNP", - "CFGHLMN", - "CFGHLMP", - "CFGHLNP", - "CFGHMNP", - "CFGIJLM", - "CFGIJLN", - "CFGIJLP", - "CFGIJMN", - "CFGIJMP", - "CFGIJNP", - "CFGILMN", - "CFGILMP", - "CFGILNP", - "CFGIMNP", - "CFGJLMN", - "CFGJLMP", - "CFGJLNP", - "CFGJMNP", - "CFGLMNP", - "CFHIJLM", - "CFHIJLN", - "CFHIJLP", - "CFHIJMN", - "CFHIJMP", - "CFHIJNP", - "CFHILMN", - "CFHILMP", - "CFHILNP", - "CFHIMNP", - "CFHJLMN", - "CFHJLMP", - "CFHJLNP", - "CFHJMNP", - "CFHLMNP", - "CFIJLMN", - "CFIJLMP", - "CFIJLNP", - "CFIJMNP", - "CFILMNP", - "CFJLMNP", - "CGHIJLM", - "CGHIJLN", - "CGHIJLP", - "CGHIJMN", - "CGHIJMP", - "CGHIJNP", - "CGHILMN", - "CGHILMP", - "CGHILNP", - "CGHIMNP", - "CGHJLMN", - "CGHJLMP", - "CGHJLNP", - "CGHJMNP", - "CGHLMNP", - "CGIJLMN", - "CGIJLMP", - "CGIJLNP", - "CGIJMNP", - "CGILMNP", - "CGJLMNP", - "CHIJLMN", - "CHIJLMP", - "CHIJLNP", - "CHIJMNP", - "CHILMNP", - "CHJLMNP", - "CIJLMNP", - "EFGHIJL", - "EFGHIJM", - "EFGHIJN", - "EFGHIJP", - "EFGHILM", - "EFGHILN", - "EFGHILP", - "EFGHIMN", - "EFGHIMP", - "EFGHINP", - "EFGHJLM", - "EFGHJLN", - "EFGHJLP", - "EFGHJMN", - "EFGHJMP", - "EFGHJNP", - "EFGHLMN", - "EFGHLMP", - "EFGHLNP", - "EFGHMNP", - "EFGIJLM", - "EFGIJLN", - "EFGIJLP", - "EFGIJMN", - "EFGIJMP", - "EFGIJNP", - "EFGILMN", - "EFGILMP", - "EFGILNP", - "EFGIMNP", - "EFGJLMN", - "EFGJLMP", - "EFGJLNP", - "EFGJMNP", - "EFGLMNP", - "EFHIJLM", - "EFHIJLN", - "EFHIJLP", - "EFHIJMN", - "EFHIJMP", - "EFHIJNP", - "EFHILMN", - "EFHILMP", - "EFHILNP", - "EFHIMNP", - "EFHJLMN", - "EFHJLMP", - "EFHJLNP", - "EFHJMNP", - "EFHLMNP", - "EFIJLMN", - "EFIJLMP", - "EFIJLNP", - "EFIJMNP", - "EFILMNP", - "EFJLMNP", - "EGHIJLM", - "EGHIJLN", - "EGHIJLP", - "EGHIJMN", - "EGHIJMP", - "EGHIJNP", - "EGHILMN", - "EGHILMP", - "EGHILNP", - "EGHIMNP", - "EGHJLMN", - "EGHJLMP", - "EGHJLNP", - "EGHJMNP", - "EGHLMNP", - "EGIJLMN", - "EGIJLMP", - "EGIJLNP", - "EGIJMNP", - "EGILMNP", - "EGJLMNP", - "EHIJLMN", - "EHIJLMP", - "EHIJLNP", - "EHIJMNP", - "EHILMNP", - "EHJLMNP", - "EIJLMNP", - "FGHIJLM", - "FGHIJLN", - "FGHIJLP", - "FGHIJMN", - "FGHIJMP", - "FGHIJNP", - "FGHILMN", - "FGHILMP", - "FGHILNP", - "FGHIMNP", - "FGHJLMN", - "FGHJLMP", - "FGHJLNP", - "FGHJMNP", - "FGHLMNP", - "FGIJLMN", - "FGIJLMP", - "FGIJLNP", - "FGIJMNP", - "FGILMNP", - "FGJLMNP", - "FHIJLMN", - "FHIJLMP", - "FHIJLNP", - "FHIJMNP", - "FHILMNP", - "FHJLMNP", - "FIJLMNP", - "GHIJLMN", - "GHIJLMP", - "GHIJLNP", - "GHIJMNP", - "GHILMNP", - "GHJLMNP", - "GIJLMNP", - "HIJLMNP", - "ABCEFGHI", - "ABCEFGHJ", - "ABCEFGHL", - "ABCEFGHM", - "ABCEFGHN", - "ABCEFGHP", - "ABCEFGIJ", - "ABCEFGIL", - "ABCEFGIM", - "ABCEFGIN", - "ABCEFGIP", - "ABCEFGJL", - "ABCEFGJM", - "ABCEFGJN", - "ABCEFGJP", - "ABCEFGLM", - "ABCEFGLN", - "ABCEFGLP", - "ABCEFGMN", - "ABCEFGMP", - "ABCEFGNP", - "ABCEFHIJ", - "ABCEFHIL", - "ABCEFHIM", - "ABCEFHIN", - "ABCEFHIP", - "ABCEFHJL", - "ABCEFHJM", - "ABCEFHJN", - "ABCEFHJP", - "ABCEFHLM", - "ABCEFHLN", - "ABCEFHLP", - "ABCEFHMN", - "ABCEFHMP", - "ABCEFHNP", - "ABCEFIJL", - "ABCEFIJM", - "ABCEFIJN", - "ABCEFIJP", - "ABCEFILM", - "ABCEFILN", - "ABCEFILP", - "ABCEFIMN", - "ABCEFIMP", - "ABCEFINP", - "ABCEFJLM", - "ABCEFJLN", - "ABCEFJLP", - "ABCEFJMN", - "ABCEFJMP", - "ABCEFJNP", - "ABCEFLMN", - "ABCEFLMP", - "ABCEFLNP", - "ABCEFMNP", - "ABCEGHIJ", - "ABCEGHIL", - "ABCEGHIM", - "ABCEGHIN", - "ABCEGHIP", - "ABCEGHJL", - "ABCEGHJM", - "ABCEGHJN", - "ABCEGHJP", - "ABCEGHLM", - "ABCEGHLN", - "ABCEGHLP", - "ABCEGHMN", - "ABCEGHMP", - "ABCEGHNP", - "ABCEGIJL", - "ABCEGIJM", - "ABCEGIJN", - "ABCEGIJP", - "ABCEGILM", - "ABCEGILN", - "ABCEGILP", - "ABCEGIMN", - "ABCEGIMP", - "ABCEGINP", - "ABCEGJLM", - "ABCEGJLN", - "ABCEGJLP", - "ABCEGJMN", - "ABCEGJMP", - "ABCEGJNP", - "ABCEGLMN", - "ABCEGLMP", - "ABCEGLNP", - "ABCEGMNP", - "ABCEHIJL", - "ABCEHIJM", - "ABCEHIJN", - "ABCEHIJP", - "ABCEHILM", - "ABCEHILN", - "ABCEHILP", - "ABCEHIMN", - "ABCEHIMP", - "ABCEHINP", - "ABCEHJLM", - "ABCEHJLN", - "ABCEHJLP", - "ABCEHJMN", - "ABCEHJMP", - "ABCEHJNP", - "ABCEHLMN", - "ABCEHLMP", - "ABCEHLNP", - "ABCEHMNP", - "ABCEIJLM", - "ABCEIJLN", - "ABCEIJLP", - "ABCEIJMN", - "ABCEIJMP", - "ABCEIJNP", - "ABCEILMN", - "ABCEILMP", - "ABCEILNP", - "ABCEIMNP", - "ABCEJLMN", - "ABCEJLMP", - "ABCEJLNP", - "ABCEJMNP", - "ABCELMNP", - "ABCFGHIJ", - "ABCFGHIL", - "ABCFGHIM", - "ABCFGHIN", - "ABCFGHIP", - "ABCFGHJL", - "ABCFGHJM", - "ABCFGHJN", - "ABCFGHJP", - "ABCFGHLM", - "ABCFGHLN", - "ABCFGHLP", - "ABCFGHMN", - "ABCFGHMP", - "ABCFGHNP", - "ABCFGIJL", - "ABCFGIJM", - "ABCFGIJN", - "ABCFGIJP", - "ABCFGILM", - "ABCFGILN", - "ABCFGILP", - "ABCFGIMN", - "ABCFGIMP", - "ABCFGINP", - "ABCFGJLM", - "ABCFGJLN", - "ABCFGJLP", - "ABCFGJMN", - "ABCFGJMP", - "ABCFGJNP", - "ABCFGLMN", - "ABCFGLMP", - "ABCFGLNP", - "ABCFGMNP", - "ABCFHIJL", - "ABCFHIJM", - "ABCFHIJN", - "ABCFHIJP", - "ABCFHILM", - "ABCFHILN", - "ABCFHILP", - "ABCFHIMN", - "ABCFHIMP", - "ABCFHINP", - "ABCFHJLM", - "ABCFHJLN", - "ABCFHJLP", - "ABCFHJMN", - "ABCFHJMP", - "ABCFHJNP", - "ABCFHLMN", - "ABCFHLMP", - "ABCFHLNP", - "ABCFHMNP", - "ABCFIJLM", - "ABCFIJLN", - "ABCFIJLP", - "ABCFIJMN", - "ABCFIJMP", - "ABCFIJNP", - "ABCFILMN", - "ABCFILMP", - "ABCFILNP", - "ABCFIMNP", - "ABCFJLMN", - "ABCFJLMP", - "ABCFJLNP", - "ABCFJMNP", - "ABCFLMNP", - "ABCGHIJL", - "ABCGHIJM", - "ABCGHIJN", - "ABCGHIJP", - "ABCGHILM", - "ABCGHILN", - "ABCGHILP", - "ABCGHIMN", - "ABCGHIMP", - "ABCGHINP", - "ABCGHJLM", - "ABCGHJLN", - "ABCGHJLP", - "ABCGHJMN", - "ABCGHJMP", - "ABCGHJNP", - "ABCGHLMN", - "ABCGHLMP", - "ABCGHLNP", - "ABCGHMNP", - "ABCGIJLM", - "ABCGIJLN", - "ABCGIJLP", - "ABCGIJMN", - "ABCGIJMP", - "ABCGIJNP", - "ABCGILMN", - "ABCGILMP", - "ABCGILNP", - "ABCGIMNP", - "ABCGJLMN", - "ABCGJLMP", - "ABCGJLNP", - "ABCGJMNP", - "ABCGLMNP", - "ABCHIJLM", - "ABCHIJLN", - "ABCHIJLP", - "ABCHIJMN", - "ABCHIJMP", - "ABCHIJNP", - "ABCHILMN", - "ABCHILMP", - "ABCHILNP", - "ABCHIMNP", - "ABCHJLMN", - "ABCHJLMP", - "ABCHJLNP", - "ABCHJMNP", - "ABCHLMNP", - "ABCIJLMN", - "ABCIJLMP", - "ABCIJLNP", - "ABCIJMNP", - "ABCILMNP", - "ABCJLMNP", - "ABEFGHIJ", - "ABEFGHIL", - "ABEFGHIM", - "ABEFGHIN", - "ABEFGHIP", - "ABEFGHJL", - "ABEFGHJM", - "ABEFGHJN", - "ABEFGHJP", - "ABEFGHLM", - "ABEFGHLN", - "ABEFGHLP", - "ABEFGHMN", - "ABEFGHMP", - "ABEFGHNP", - "ABEFGIJL", - "ABEFGIJM", - "ABEFGIJN", - "ABEFGIJP", - "ABEFGILM", - "ABEFGILN", - "ABEFGILP", - "ABEFGIMN", - "ABEFGIMP", - "ABEFGINP", - "ABEFGJLM", - "ABEFGJLN", - "ABEFGJLP", - "ABEFGJMN", - "ABEFGJMP", - "ABEFGJNP", - "ABEFGLMN", - "ABEFGLMP", - "ABEFGLNP", - "ABEFGMNP", - "ABEFHIJL", - "ABEFHIJM", - "ABEFHIJN", - "ABEFHIJP", - "ABEFHILM", - "ABEFHILN", - "ABEFHILP", - "ABEFHIMN", - "ABEFHIMP", - "ABEFHINP", - "ABEFHJLM", - "ABEFHJLN", - "ABEFHJLP", - "ABEFHJMN", - "ABEFHJMP", - "ABEFHJNP", - "ABEFHLMN", - "ABEFHLMP", - "ABEFHLNP", - "ABEFHMNP", - "ABEFIJLM", - "ABEFIJLN", - "ABEFIJLP", - "ABEFIJMN", - "ABEFIJMP", - "ABEFIJNP", - "ABEFILMN", - "ABEFILMP", - "ABEFILNP", - "ABEFIMNP", - "ABEFJLMN", - "ABEFJLMP", - "ABEFJLNP", - "ABEFJMNP", - "ABEFLMNP", - "ABEGHIJL", - "ABEGHIJM", - "ABEGHIJN", - "ABEGHIJP", - "ABEGHILM", - "ABEGHILN", - "ABEGHILP", - "ABEGHIMN", - "ABEGHIMP", - "ABEGHINP", - "ABEGHJLM", - "ABEGHJLN", - "ABEGHJLP", - "ABEGHJMN", - "ABEGHJMP", - "ABEGHJNP", - "ABEGHLMN", - "ABEGHLMP", - "ABEGHLNP", - "ABEGHMNP", - "ABEGIJLM", - "ABEGIJLN", - "ABEGIJLP", - "ABEGIJMN", - "ABEGIJMP", - "ABEGIJNP", - "ABEGILMN", - "ABEGILMP", - "ABEGILNP", - "ABEGIMNP", - "ABEGJLMN", - "ABEGJLMP", - "ABEGJLNP", - "ABEGJMNP", - "ABEGLMNP", - "ABEHIJLM", - "ABEHIJLN", - "ABEHIJLP", - "ABEHIJMN", - "ABEHIJMP", - "ABEHIJNP", - "ABEHILMN", - "ABEHILMP", - "ABEHILNP", - "ABEHIMNP", - "ABEHJLMN", - "ABEHJLMP", - "ABEHJLNP", - "ABEHJMNP", - "ABEHLMNP", - "ABEIJLMN", - "ABEIJLMP", - "ABEIJLNP", - "ABEIJMNP", - "ABEILMNP", - "ABEJLMNP", - "ABFGHIJL", - "ABFGHIJM", - "ABFGHIJN", - "ABFGHIJP", - "ABFGHILM", - "ABFGHILN", - "ABFGHILP", - "ABFGHIMN", - "ABFGHIMP", - "ABFGHINP", - "ABFGHJLM", - "ABFGHJLN", - "ABFGHJLP", - "ABFGHJMN", - "ABFGHJMP", - "ABFGHJNP", - "ABFGHLMN", - "ABFGHLMP", - "ABFGHLNP", - "ABFGHMNP", - "ABFGIJLM", - "ABFGIJLN", - "ABFGIJLP", - "ABFGIJMN", - "ABFGIJMP", - "ABFGIJNP", - "ABFGILMN", - "ABFGILMP", - "ABFGILNP", - "ABFGIMNP", - "ABFGJLMN", - "ABFGJLMP", - "ABFGJLNP", - "ABFGJMNP", - "ABFGLMNP", - "ABFHIJLM", - "ABFHIJLN", - "ABFHIJLP", - "ABFHIJMN", - "ABFHIJMP", - "ABFHIJNP", - "ABFHILMN", - "ABFHILMP", - "ABFHILNP", - "ABFHIMNP", - "ABFHJLMN", - "ABFHJLMP", - "ABFHJLNP", - "ABFHJMNP", - "ABFHLMNP", - "ABFIJLMN", - "ABFIJLMP", - "ABFIJLNP", - "ABFIJMNP", - "ABFILMNP", - "ABFJLMNP", - "ABGHIJLM", - "ABGHIJLN", - "ABGHIJLP", - "ABGHIJMN", - "ABGHIJMP", - "ABGHIJNP", - "ABGHILMN", - "ABGHILMP", - "ABGHILNP", - "ABGHIMNP", - "ABGHJLMN", - "ABGHJLMP", - "ABGHJLNP", - "ABGHJMNP", - "ABGHLMNP", - "ABGIJLMN", - "ABGIJLMP", - "ABGIJLNP", - "ABGIJMNP", - "ABGILMNP", - "ABGJLMNP", - "ABHIJLMN", - "ABHIJLMP", - "ABHIJLNP", - "ABHIJMNP", - "ABHILMNP", - "ABHJLMNP", - "ABIJLMNP", - "ACEFGHIJ", - "ACEFGHIL", - "ACEFGHIM", - "ACEFGHIN", - "ACEFGHIP", - "ACEFGHJL", - "ACEFGHJM", - "ACEFGHJN", - "ACEFGHJP", - "ACEFGHLM", - "ACEFGHLN", - "ACEFGHLP", - "ACEFGHMN", - "ACEFGHMP", - "ACEFGHNP", - "ACEFGIJL", - "ACEFGIJM", - "ACEFGIJN", - "ACEFGIJP", - "ACEFGILM", - "ACEFGILN", - "ACEFGILP", - "ACEFGIMN", - "ACEFGIMP", - "ACEFGINP", - "ACEFGJLM", - "ACEFGJLN", - "ACEFGJLP", - "ACEFGJMN", - "ACEFGJMP", - "ACEFGJNP", - "ACEFGLMN", - "ACEFGLMP", - "ACEFGLNP", - "ACEFGMNP", - "ACEFHIJL", - "ACEFHIJM", - "ACEFHIJN", - "ACEFHIJP", - "ACEFHILM", - "ACEFHILN", - "ACEFHILP", - "ACEFHIMN", - "ACEFHIMP", - "ACEFHINP", - "ACEFHJLM", - "ACEFHJLN", - "ACEFHJLP", - "ACEFHJMN", - "ACEFHJMP", - "ACEFHJNP", - "ACEFHLMN", - "ACEFHLMP", - "ACEFHLNP", - "ACEFHMNP", - "ACEFIJLM", - "ACEFIJLN", - "ACEFIJLP", - "ACEFIJMN", - "ACEFIJMP", - "ACEFIJNP", - "ACEFILMN", - "ACEFILMP", - "ACEFILNP", - "ACEFIMNP", - "ACEFJLMN", - "ACEFJLMP", - "ACEFJLNP", - "ACEFJMNP", - "ACEFLMNP", - "ACEGHIJL", - "ACEGHIJM", - "ACEGHIJN", - "ACEGHIJP", - "ACEGHILM", - "ACEGHILN", - "ACEGHILP", - "ACEGHIMN", - "ACEGHIMP", - "ACEGHINP", - "ACEGHJLM", - "ACEGHJLN", - "ACEGHJLP", - "ACEGHJMN", - "ACEGHJMP", - "ACEGHJNP", - "ACEGHLMN", - "ACEGHLMP", - "ACEGHLNP", - "ACEGHMNP", - "ACEGIJLM", - "ACEGIJLN", - "ACEGIJLP", - "ACEGIJMN", - "ACEGIJMP", - "ACEGIJNP", - "ACEGILMN", - "ACEGILMP", - "ACEGILNP", - "ACEGIMNP", - "ACEGJLMN", - "ACEGJLMP", - "ACEGJLNP", - "ACEGJMNP", - "ACEGLMNP", - "ACEHIJLM", - "ACEHIJLN", - "ACEHIJLP", - "ACEHIJMN", - "ACEHIJMP", - "ACEHIJNP", - "ACEHILMN", - "ACEHILMP", - "ACEHILNP", - "ACEHIMNP", - "ACEHJLMN", - "ACEHJLMP", - "ACEHJLNP", - "ACEHJMNP", - "ACEHLMNP", - "ACEIJLMN", - "ACEIJLMP", - "ACEIJLNP", - "ACEIJMNP", - "ACEILMNP", - "ACEJLMNP", - "ACFGHIJL", - "ACFGHIJM", - "ACFGHIJN", - "ACFGHIJP", - "ACFGHILM", - "ACFGHILN", - "ACFGHILP", - "ACFGHIMN", - "ACFGHIMP", - "ACFGHINP", - "ACFGHJLM", - "ACFGHJLN", - "ACFGHJLP", - "ACFGHJMN", - "ACFGHJMP", - "ACFGHJNP", - "ACFGHLMN", - "ACFGHLMP", - "ACFGHLNP", - "ACFGHMNP", - "ACFGIJLM", - "ACFGIJLN", - "ACFGIJLP", - "ACFGIJMN", - "ACFGIJMP", - "ACFGIJNP", - "ACFGILMN", - "ACFGILMP", - "ACFGILNP", - "ACFGIMNP", - "ACFGJLMN", - "ACFGJLMP", - "ACFGJLNP", - "ACFGJMNP", - "ACFGLMNP", - "ACFHIJLM", - "ACFHIJLN", - "ACFHIJLP", - "ACFHIJMN", - "ACFHIJMP", - "ACFHIJNP", - "ACFHILMN", - "ACFHILMP", - "ACFHILNP", - "ACFHIMNP", - "ACFHJLMN", - "ACFHJLMP", - "ACFHJLNP", - "ACFHJMNP", - "ACFHLMNP", - "ACFIJLMN", - "ACFIJLMP", - "ACFIJLNP", - "ACFIJMNP", - "ACFILMNP", - "ACFJLMNP", - "ACGHIJLM", - "ACGHIJLN", - "ACGHIJLP", - "ACGHIJMN", - "ACGHIJMP", - "ACGHIJNP", - "ACGHILMN", - "ACGHILMP", - "ACGHILNP", - "ACGHIMNP", - "ACGHJLMN", - "ACGHJLMP", - "ACGHJLNP", - "ACGHJMNP", - "ACGHLMNP", - "ACGIJLMN", - "ACGIJLMP", - "ACGIJLNP", - "ACGIJMNP", - "ACGILMNP", - "ACGJLMNP", - "ACHIJLMN", - "ACHIJLMP", - "ACHIJLNP", - "ACHIJMNP", - "ACHILMNP", - "ACHJLMNP", - "ACIJLMNP", - "AEFGHIJL", - "AEFGHIJM", - "AEFGHIJN", - "AEFGHIJP", - "AEFGHILM", - "AEFGHILN", - "AEFGHILP", - "AEFGHIMN", - "AEFGHIMP", - "AEFGHINP", - "AEFGHJLM", - "AEFGHJLN", - "AEFGHJLP", - "AEFGHJMN", - "AEFGHJMP", - "AEFGHJNP", - "AEFGHLMN", - "AEFGHLMP", - "AEFGHLNP", - "AEFGHMNP", - "AEFGIJLM", - "AEFGIJLN", - "AEFGIJLP", - "AEFGIJMN", - "AEFGIJMP", - "AEFGIJNP", - "AEFGILMN", - "AEFGILMP", - "AEFGILNP", - "AEFGIMNP", - "AEFGJLMN", - "AEFGJLMP", - "AEFGJLNP", - "AEFGJMNP", - "AEFGLMNP", - "AEFHIJLM", - "AEFHIJLN", - "AEFHIJLP", - "AEFHIJMN", - "AEFHIJMP", - "AEFHIJNP", - "AEFHILMN", - "AEFHILMP", - "AEFHILNP", - "AEFHIMNP", - "AEFHJLMN", - "AEFHJLMP", - "AEFHJLNP", - "AEFHJMNP", - "AEFHLMNP", - "AEFIJLMN", - "AEFIJLMP", - "AEFIJLNP", - "AEFIJMNP", - "AEFILMNP", - "AEFJLMNP", - "AEGHIJLM", - "AEGHIJLN", - "AEGHIJLP", - "AEGHIJMN", - "AEGHIJMP", - "AEGHIJNP", - "AEGHILMN", - "AEGHILMP", - "AEGHILNP", - "AEGHIMNP", - "AEGHJLMN", - "AEGHJLMP", - "AEGHJLNP", - "AEGHJMNP", - "AEGHLMNP", - "AEGIJLMN", - "AEGIJLMP", - "AEGIJLNP", - "AEGIJMNP", - "AEGILMNP", - "AEGJLMNP", - "AEHIJLMN", - "AEHIJLMP", - "AEHIJLNP", - "AEHIJMNP", - "AEHILMNP", - "AEHJLMNP", - "AEIJLMNP", - "AFGHIJLM", - "AFGHIJLN", - "AFGHIJLP", - "AFGHIJMN", - "AFGHIJMP", - "AFGHIJNP", - "AFGHILMN", - "AFGHILMP", - "AFGHILNP", - "AFGHIMNP", - "AFGHJLMN", - "AFGHJLMP", - "AFGHJLNP", - "AFGHJMNP", - "AFGHLMNP", - "AFGIJLMN", - "AFGIJLMP", - "AFGIJLNP", - "AFGIJMNP", - "AFGILMNP", - "AFGJLMNP", - "AFHIJLMN", - "AFHIJLMP", - "AFHIJLNP", - "AFHIJMNP", - "AFHILMNP", - "AFHJLMNP", - "AFIJLMNP", - "AGHIJLMN", - "AGHIJLMP", - "AGHIJLNP", - "AGHIJMNP", - "AGHILMNP", - "AGHJLMNP", - "AGIJLMNP", - "AHIJLMNP", - "BCEFGHIJ", - "BCEFGHIL", - "BCEFGHIM", - "BCEFGHIN", - "BCEFGHIP", - "BCEFGHJL", - "BCEFGHJM", - "BCEFGHJN", - "BCEFGHJP", - "BCEFGHLM", - "BCEFGHLN", - "BCEFGHLP", - "BCEFGHMN", - "BCEFGHMP", - "BCEFGHNP", - "BCEFGIJL", - "BCEFGIJM", - "BCEFGIJN", - "BCEFGIJP", - "BCEFGILM", - "BCEFGILN", - "BCEFGILP", - "BCEFGIMN", - "BCEFGIMP", - "BCEFGINP", - "BCEFGJLM", - "BCEFGJLN", - "BCEFGJLP", - "BCEFGJMN", - "BCEFGJMP", - "BCEFGJNP", - "BCEFGLMN", - "BCEFGLMP", - "BCEFGLNP", - "BCEFGMNP", - "BCEFHIJL", - "BCEFHIJM", - "BCEFHIJN", - "BCEFHIJP", - "BCEFHILM", - "BCEFHILN", - "BCEFHILP", - "BCEFHIMN", - "BCEFHIMP", - "BCEFHINP", - "BCEFHJLM", - "BCEFHJLN", - "BCEFHJLP", - "BCEFHJMN", - "BCEFHJMP", - "BCEFHJNP", - "BCEFHLMN", - "BCEFHLMP", - "BCEFHLNP", - "BCEFHMNP", - "BCEFIJLM", - "BCEFIJLN", - "BCEFIJLP", - "BCEFIJMN", - "BCEFIJMP", - "BCEFIJNP", - "BCEFILMN", - "BCEFILMP", - "BCEFILNP", - "BCEFIMNP", - "BCEFJLMN", - "BCEFJLMP", - "BCEFJLNP", - "BCEFJMNP", - "BCEFLMNP", - "BCEGHIJL", - "BCEGHIJM", - "BCEGHIJN", - "BCEGHIJP", - "BCEGHILM", - "BCEGHILN", - "BCEGHILP", - "BCEGHIMN", - "BCEGHIMP", - "BCEGHINP", - "BCEGHJLM", - "BCEGHJLN", - "BCEGHJLP", - "BCEGHJMN", - "BCEGHJMP", - "BCEGHJNP", - "BCEGHLMN", - "BCEGHLMP", - "BCEGHLNP", - "BCEGHMNP", - "BCEGIJLM", - "BCEGIJLN", - "BCEGIJLP", - "BCEGIJMN", - "BCEGIJMP", - "BCEGIJNP", - "BCEGILMN", - "BCEGILMP", - "BCEGILNP", - "BCEGIMNP", - "BCEGJLMN", - "BCEGJLMP", - "BCEGJLNP", - "BCEGJMNP", - "BCEGLMNP", - "BCEHIJLM", - "BCEHIJLN", - "BCEHIJLP", - "BCEHIJMN", - "BCEHIJMP", - "BCEHIJNP", - "BCEHILMN", - "BCEHILMP", - "BCEHILNP", - "BCEHIMNP", - "BCEHJLMN", - "BCEHJLMP", - "BCEHJLNP", - "BCEHJMNP", - "BCEHLMNP", - "BCEIJLMN", - "BCEIJLMP", - "BCEIJLNP", - "BCEIJMNP", - "BCEILMNP", - "BCEJLMNP", - "BCFGHIJL", - "BCFGHIJM", - "BCFGHIJN", - "BCFGHIJP", - "BCFGHILM", - "BCFGHILN", - "BCFGHILP", - "BCFGHIMN", - "BCFGHIMP", - "BCFGHINP", - "BCFGHJLM", - "BCFGHJLN", - "BCFGHJLP", - "BCFGHJMN", - "BCFGHJMP", - "BCFGHJNP", - "BCFGHLMN", - "BCFGHLMP", - "BCFGHLNP", - "BCFGHMNP", - "BCFGIJLM", - "BCFGIJLN", - "BCFGIJLP", - "BCFGIJMN", - "BCFGIJMP", - "BCFGIJNP", - "BCFGILMN", - "BCFGILMP", - "BCFGILNP", - "BCFGIMNP", - "BCFGJLMN", - "BCFGJLMP", - "BCFGJLNP", - "BCFGJMNP", - "BCFGLMNP", - "BCFHIJLM", - "BCFHIJLN", - "BCFHIJLP", - "BCFHIJMN", - "BCFHIJMP", - "BCFHIJNP", - "BCFHILMN", - "BCFHILMP", - "BCFHILNP", - "BCFHIMNP", - "BCFHJLMN", - "BCFHJLMP", - "BCFHJLNP", - "BCFHJMNP", - "BCFHLMNP", - "BCFIJLMN", - "BCFIJLMP", - "BCFIJLNP", - "BCFIJMNP", - "BCFILMNP", - "BCFJLMNP", - "BCGHIJLM", - "BCGHIJLN", - "BCGHIJLP", - "BCGHIJMN", - "BCGHIJMP", - "BCGHIJNP", - "BCGHILMN", - "BCGHILMP", - "BCGHILNP", - "BCGHIMNP", - "BCGHJLMN", - "BCGHJLMP", - "BCGHJLNP", - "BCGHJMNP", - "BCGHLMNP", - "BCGIJLMN", - "BCGIJLMP", - "BCGIJLNP", - "BCGIJMNP", - "BCGILMNP", - "BCGJLMNP", - "BCHIJLMN", - "BCHIJLMP", - "BCHIJLNP", - "BCHIJMNP", - "BCHILMNP", - "BCHJLMNP", - "BCIJLMNP", - "BEFGHIJL", - "BEFGHIJM", - "BEFGHIJN", - "BEFGHIJP", - "BEFGHILM", - "BEFGHILN", - "BEFGHILP", - "BEFGHIMN", - "BEFGHIMP", - "BEFGHINP", - "BEFGHJLM", - "BEFGHJLN", - "BEFGHJLP", - "BEFGHJMN", - "BEFGHJMP", - "BEFGHJNP", - "BEFGHLMN", - "BEFGHLMP", - "BEFGHLNP", - "BEFGHMNP", - "BEFGIJLM", - "BEFGIJLN", - "BEFGIJLP", - "BEFGIJMN", - "BEFGIJMP", - "BEFGIJNP", - "BEFGILMN", - "BEFGILMP", - "BEFGILNP", - "BEFGIMNP", - "BEFGJLMN", - "BEFGJLMP", - "BEFGJLNP", - "BEFGJMNP", - "BEFGLMNP", - "BEFHIJLM", - "BEFHIJLN", - "BEFHIJLP", - "BEFHIJMN", - "BEFHIJMP", - "BEFHIJNP", - "BEFHILMN", - "BEFHILMP", - "BEFHILNP", - "BEFHIMNP", - "BEFHJLMN", - "BEFHJLMP", - "BEFHJLNP", - "BEFHJMNP", - "BEFHLMNP", - "BEFIJLMN", - "BEFIJLMP", - "BEFIJLNP", - "BEFIJMNP", - "BEFILMNP", - "BEFJLMNP", - "BEGHIJLM", - "BEGHIJLN", - "BEGHIJLP", - "BEGHIJMN", - "BEGHIJMP", - "BEGHIJNP", - "BEGHILMN", - "BEGHILMP", - "BEGHILNP", - "BEGHIMNP", - "BEGHJLMN", - "BEGHJLMP", - "BEGHJLNP", - "BEGHJMNP", - "BEGHLMNP", - "BEGIJLMN", - "BEGIJLMP", - "BEGIJLNP", - "BEGIJMNP", - "BEGILMNP", - "BEGJLMNP", - "BEHIJLMN", - "BEHIJLMP", - "BEHIJLNP", - "BEHIJMNP", - "BEHILMNP", - "BEHJLMNP", - "BEIJLMNP", - "BFGHIJLM", - "BFGHIJLN", - "BFGHIJLP", - "BFGHIJMN", - "BFGHIJMP", - "BFGHIJNP", - "BFGHILMN", - "BFGHILMP", - "BFGHILNP", - "BFGHIMNP", - "BFGHJLMN", - "BFGHJLMP", - "BFGHJLNP", - "BFGHJMNP", - "BFGHLMNP", - "BFGIJLMN", - "BFGIJLMP", - "BFGIJLNP", - "BFGIJMNP", - "BFGILMNP", - "BFGJLMNP", - "BFHIJLMN", - "BFHIJLMP", - "BFHIJLNP", - "BFHIJMNP", - "BFHILMNP", - "BFHJLMNP", - "BFIJLMNP", - "BGHIJLMN", - "BGHIJLMP", - "BGHIJLNP", - "BGHIJMNP", - "BGHILMNP", - "BGHJLMNP", - "BGIJLMNP", - "BHIJLMNP", - "CEFGHIJL", - "CEFGHIJM", - "CEFGHIJN", - "CEFGHIJP", - "CEFGHILM", - "CEFGHILN", - "CEFGHILP", - "CEFGHIMN", - "CEFGHIMP", - "CEFGHINP", - "CEFGHJLM", - "CEFGHJLN", - "CEFGHJLP", - "CEFGHJMN", - "CEFGHJMP", - "CEFGHJNP", - "CEFGHLMN", - "CEFGHLMP", - "CEFGHLNP", - "CEFGHMNP", - "CEFGIJLM", - "CEFGIJLN", - "CEFGIJLP", - "CEFGIJMN", - "CEFGIJMP", - "CEFGIJNP", - "CEFGILMN", - "CEFGILMP", - "CEFGILNP", - "CEFGIMNP", - "CEFGJLMN", - "CEFGJLMP", - "CEFGJLNP", - "CEFGJMNP", - "CEFGLMNP", - "CEFHIJLM", - "CEFHIJLN", - "CEFHIJLP", - "CEFHIJMN", - "CEFHIJMP", - "CEFHIJNP", - "CEFHILMN", - "CEFHILMP", - "CEFHILNP", - "CEFHIMNP", - "CEFHJLMN", - "CEFHJLMP", - "CEFHJLNP", - "CEFHJMNP", - "CEFHLMNP", - "CEFIJLMN", - "CEFIJLMP", - "CEFIJLNP", - "CEFIJMNP", - "CEFILMNP", - "CEFJLMNP", - "CEGHIJLM", - "CEGHIJLN", - "CEGHIJLP", - "CEGHIJMN", - "CEGHIJMP", - "CEGHIJNP", - "CEGHILMN", - "CEGHILMP", - "CEGHILNP", - "CEGHIMNP", - "CEGHJLMN", - "CEGHJLMP", - "CEGHJLNP", - "CEGHJMNP", - "CEGHLMNP", - "CEGIJLMN", - "CEGIJLMP", - "CEGIJLNP", - "CEGIJMNP", - "CEGILMNP", - "CEGJLMNP", - "CEHIJLMN", - "CEHIJLMP", - "CEHIJLNP", - "CEHIJMNP", - "CEHILMNP", - "CEHJLMNP", - "CEIJLMNP", - "CFGHIJLM", - "CFGHIJLN", - "CFGHIJLP", - "CFGHIJMN", - "CFGHIJMP", - "CFGHIJNP", - "CFGHILMN", - "CFGHILMP", - "CFGHILNP", - "CFGHIMNP", - "CFGHJLMN", - "CFGHJLMP", - "CFGHJLNP", - "CFGHJMNP", - "CFGHLMNP", - "CFGIJLMN", - "CFGIJLMP", - "CFGIJLNP", - "CFGIJMNP", - "CFGILMNP", - "CFGJLMNP", - "CFHIJLMN", - "CFHIJLMP", - "CFHIJLNP", - "CFHIJMNP", - "CFHILMNP", - "CFHJLMNP", - "CFIJLMNP", - "CGHIJLMN", - "CGHIJLMP", - "CGHIJLNP", - "CGHIJMNP", - "CGHILMNP", - "CGHJLMNP", - "CGIJLMNP", - "CHIJLMNP", - "EFGHIJLM", - "EFGHIJLN", - "EFGHIJLP", - "EFGHIJMN", - "EFGHIJMP", - "EFGHIJNP", - "EFGHILMN", - "EFGHILMP", - "EFGHILNP", - "EFGHIMNP", - "EFGHJLMN", - "EFGHJLMP", - "EFGHJLNP", - "EFGHJMNP", - "EFGHLMNP", - "EFGIJLMN", - "EFGIJLMP", - "EFGIJLNP", - "EFGIJMNP", - "EFGILMNP", - "EFGJLMNP", - "EFHIJLMN", - "EFHIJLMP", - "EFHIJLNP", - "EFHIJMNP", - "EFHILMNP", - "EFHJLMNP", - "EFIJLMNP", - "EGHIJLMN", - "EGHIJLMP", - "EGHIJLNP", - "EGHIJMNP", - "EGHILMNP", - "EGHJLMNP", - "EGIJLMNP", - "EHIJLMNP", - "FGHIJLMN", - "FGHIJLMP", - "FGHIJLNP", - "FGHIJMNP", - "FGHILMNP", - "FGHJLMNP", - "FGIJLMNP", - "FHIJLMNP", - "GHIJLMNP", - "ABCEFGHIJ", - "ABCEFGHIL", - "ABCEFGHIM", - "ABCEFGHIN", - "ABCEFGHIP", - "ABCEFGHJL", - "ABCEFGHJM", - "ABCEFGHJN", - "ABCEFGHJP", - "ABCEFGHLM", - "ABCEFGHLN", - "ABCEFGHLP", - "ABCEFGHMN", - "ABCEFGHMP", - "ABCEFGHNP", - "ABCEFGIJL", - "ABCEFGIJM", - "ABCEFGIJN", - "ABCEFGIJP", - "ABCEFGILM", - "ABCEFGILN", - "ABCEFGILP", - "ABCEFGIMN", - "ABCEFGIMP", - "ABCEFGINP", - "ABCEFGJLM", - "ABCEFGJLN", - "ABCEFGJLP", - "ABCEFGJMN", - "ABCEFGJMP", - "ABCEFGJNP", - "ABCEFGLMN", - "ABCEFGLMP", - "ABCEFGLNP", - "ABCEFGMNP", - "ABCEFHIJL", - "ABCEFHIJM", - "ABCEFHIJN", - "ABCEFHIJP", - "ABCEFHILM", - "ABCEFHILN", - "ABCEFHILP", - "ABCEFHIMN", - "ABCEFHIMP", - "ABCEFHINP", - "ABCEFHJLM", - "ABCEFHJLN", - "ABCEFHJLP", - "ABCEFHJMN", - "ABCEFHJMP", - "ABCEFHJNP", - "ABCEFHLMN", - "ABCEFHLMP", - "ABCEFHLNP", - "ABCEFHMNP", - "ABCEFIJLM", - "ABCEFIJLN", - "ABCEFIJLP", - "ABCEFIJMN", - "ABCEFIJMP", - "ABCEFIJNP", - "ABCEFILMN", - "ABCEFILMP", - "ABCEFILNP", - "ABCEFIMNP", - "ABCEFJLMN", - "ABCEFJLMP", - "ABCEFJLNP", - "ABCEFJMNP", - "ABCEFLMNP", - "ABCEGHIJL", - "ABCEGHIJM", - "ABCEGHIJN", - "ABCEGHIJP", - "ABCEGHILM", - "ABCEGHILN", - "ABCEGHILP", - "ABCEGHIMN", - "ABCEGHIMP", - "ABCEGHINP", - "ABCEGHJLM", - "ABCEGHJLN", - "ABCEGHJLP", - "ABCEGHJMN", - "ABCEGHJMP", - "ABCEGHJNP", - "ABCEGHLMN", - "ABCEGHLMP", - "ABCEGHLNP", - "ABCEGHMNP", - "ABCEGIJLM", - "ABCEGIJLN", - "ABCEGIJLP", - "ABCEGIJMN", - "ABCEGIJMP", - "ABCEGIJNP", - "ABCEGILMN", - "ABCEGILMP", - "ABCEGILNP", - "ABCEGIMNP", - "ABCEGJLMN", - "ABCEGJLMP", - "ABCEGJLNP", - "ABCEGJMNP", - "ABCEGLMNP", - "ABCEHIJLM", - "ABCEHIJLN", - "ABCEHIJLP", - "ABCEHIJMN", - "ABCEHIJMP", - "ABCEHIJNP", - "ABCEHILMN", - "ABCEHILMP", - "ABCEHILNP", - "ABCEHIMNP", - "ABCEHJLMN", - "ABCEHJLMP", - "ABCEHJLNP", - "ABCEHJMNP", - "ABCEHLMNP", - "ABCEIJLMN", - "ABCEIJLMP", - "ABCEIJLNP", - "ABCEIJMNP", - "ABCEILMNP", - "ABCEJLMNP", - "ABCFGHIJL", - "ABCFGHIJM", - "ABCFGHIJN", - "ABCFGHIJP", - "ABCFGHILM", - "ABCFGHILN", - "ABCFGHILP", - "ABCFGHIMN", - "ABCFGHIMP", - "ABCFGHINP", - "ABCFGHJLM", - "ABCFGHJLN", - "ABCFGHJLP", - "ABCFGHJMN", - "ABCFGHJMP", - "ABCFGHJNP", - "ABCFGHLMN", - "ABCFGHLMP", - "ABCFGHLNP", - "ABCFGHMNP", - "ABCFGIJLM", - "ABCFGIJLN", - "ABCFGIJLP", - "ABCFGIJMN", - "ABCFGIJMP", - "ABCFGIJNP", - "ABCFGILMN", - "ABCFGILMP", - "ABCFGILNP", - "ABCFGIMNP", - "ABCFGJLMN", - "ABCFGJLMP", - "ABCFGJLNP", - "ABCFGJMNP", - "ABCFGLMNP", - "ABCFHIJLM", - "ABCFHIJLN", - "ABCFHIJLP", - "ABCFHIJMN", - "ABCFHIJMP", - "ABCFHIJNP", - "ABCFHILMN", - "ABCFHILMP", - "ABCFHILNP", - "ABCFHIMNP", - "ABCFHJLMN", - "ABCFHJLMP", - "ABCFHJLNP", - "ABCFHJMNP", - "ABCFHLMNP", - "ABCFIJLMN", - "ABCFIJLMP", - "ABCFIJLNP", - "ABCFIJMNP", - "ABCFILMNP", - "ABCFJLMNP", - "ABCGHIJLM", - "ABCGHIJLN", - "ABCGHIJLP", - "ABCGHIJMN", - "ABCGHIJMP", - "ABCGHIJNP", - "ABCGHILMN", - "ABCGHILMP", - "ABCGHILNP", - "ABCGHIMNP", - "ABCGHJLMN", - "ABCGHJLMP", - "ABCGHJLNP", - "ABCGHJMNP", - "ABCGHLMNP", - "ABCGIJLMN", - "ABCGIJLMP", - "ABCGIJLNP", - "ABCGIJMNP", - "ABCGILMNP", - "ABCGJLMNP", - "ABCHIJLMN", - "ABCHIJLMP", - "ABCHIJLNP", - "ABCHIJMNP", - "ABCHILMNP", - "ABCHJLMNP", - "ABCIJLMNP", - "ABEFGHIJL", - "ABEFGHIJM", - "ABEFGHIJN", - "ABEFGHIJP", - "ABEFGHILM", - "ABEFGHILN", - "ABEFGHILP", - "ABEFGHIMN", - "ABEFGHIMP", - "ABEFGHINP", - "ABEFGHJLM", - "ABEFGHJLN", - "ABEFGHJLP", - "ABEFGHJMN", - "ABEFGHJMP", - "ABEFGHJNP", - "ABEFGHLMN", - "ABEFGHLMP", - "ABEFGHLNP", - "ABEFGHMNP", - "ABEFGIJLM", - "ABEFGIJLN", - "ABEFGIJLP", - "ABEFGIJMN", - "ABEFGIJMP", - "ABEFGIJNP", - "ABEFGILMN", - "ABEFGILMP", - "ABEFGILNP", - "ABEFGIMNP", - "ABEFGJLMN", - "ABEFGJLMP", - "ABEFGJLNP", - "ABEFGJMNP", - "ABEFGLMNP", - "ABEFHIJLM", - "ABEFHIJLN", - "ABEFHIJLP", - "ABEFHIJMN", - "ABEFHIJMP", - "ABEFHIJNP", - "ABEFHILMN", - "ABEFHILMP", - "ABEFHILNP", - "ABEFHIMNP", - "ABEFHJLMN", - "ABEFHJLMP", - "ABEFHJLNP", - "ABEFHJMNP", - "ABEFHLMNP", - "ABEFIJLMN", - "ABEFIJLMP", - "ABEFIJLNP", - "ABEFIJMNP", - "ABEFILMNP", - "ABEFJLMNP", - "ABEGHIJLM", - "ABEGHIJLN", - "ABEGHIJLP", - "ABEGHIJMN", - "ABEGHIJMP", - "ABEGHIJNP", - "ABEGHILMN", - "ABEGHILMP", - "ABEGHILNP", - "ABEGHIMNP", - "ABEGHJLMN", - "ABEGHJLMP", - "ABEGHJLNP", - "ABEGHJMNP", - "ABEGHLMNP", - "ABEGIJLMN", - "ABEGIJLMP", - "ABEGIJLNP", - "ABEGIJMNP", - "ABEGILMNP", - "ABEGJLMNP", - "ABEHIJLMN", - "ABEHIJLMP", - "ABEHIJLNP", - "ABEHIJMNP", - "ABEHILMNP", - "ABEHJLMNP", - "ABEIJLMNP", - "ABFGHIJLM", - "ABFGHIJLN", - "ABFGHIJLP", - "ABFGHIJMN", - "ABFGHIJMP", - "ABFGHIJNP", - "ABFGHILMN", - "ABFGHILMP", - "ABFGHILNP", - "ABFGHIMNP", - "ABFGHJLMN", - "ABFGHJLMP", - "ABFGHJLNP", - "ABFGHJMNP", - "ABFGHLMNP", - "ABFGIJLMN", - "ABFGIJLMP", - "ABFGIJLNP", - "ABFGIJMNP", - "ABFGILMNP", - "ABFGJLMNP", - "ABFHIJLMN", - "ABFHIJLMP", - "ABFHIJLNP", - "ABFHIJMNP", - "ABFHILMNP", - "ABFHJLMNP", - "ABFIJLMNP", - "ABGHIJLMN", - "ABGHIJLMP", - "ABGHIJLNP", - "ABGHIJMNP", - "ABGHILMNP", - "ABGHJLMNP", - "ABGIJLMNP", - "ABHIJLMNP", - "ACEFGHIJL", - "ACEFGHIJM", - "ACEFGHIJN", - "ACEFGHIJP", - "ACEFGHILM", - "ACEFGHILN", - "ACEFGHILP", - "ACEFGHIMN", - "ACEFGHIMP", - "ACEFGHINP", - "ACEFGHJLM", - "ACEFGHJLN", - "ACEFGHJLP", - "ACEFGHJMN", - "ACEFGHJMP", - "ACEFGHJNP", - "ACEFGHLMN", - "ACEFGHLMP", - "ACEFGHLNP", - "ACEFGHMNP", - "ACEFGIJLM", - "ACEFGIJLN", - "ACEFGIJLP", - "ACEFGIJMN", - "ACEFGIJMP", - "ACEFGIJNP", - "ACEFGILMN", - "ACEFGILMP", - "ACEFGILNP", - "ACEFGIMNP", - "ACEFGJLMN", - "ACEFGJLMP", - "ACEFGJLNP", - "ACEFGJMNP", - "ACEFGLMNP", - "ACEFHIJLM", - "ACEFHIJLN", - "ACEFHIJLP", - "ACEFHIJMN", - "ACEFHIJMP", - "ACEFHIJNP", - "ACEFHILMN", - "ACEFHILMP", - "ACEFHILNP", - "ACEFHIMNP", - "ACEFHJLMN", - "ACEFHJLMP", - "ACEFHJLNP", - "ACEFHJMNP", - "ACEFHLMNP", - "ACEFIJLMN", - "ACEFIJLMP", - "ACEFIJLNP", - "ACEFIJMNP", - "ACEFILMNP", - "ACEFJLMNP", - "ACEGHIJLM", - "ACEGHIJLN", - "ACEGHIJLP", - "ACEGHIJMN", - "ACEGHIJMP", - "ACEGHIJNP", - "ACEGHILMN", - "ACEGHILMP", - "ACEGHILNP", - "ACEGHIMNP", - "ACEGHJLMN", - "ACEGHJLMP", - "ACEGHJLNP", - "ACEGHJMNP", - "ACEGHLMNP", - "ACEGIJLMN", - "ACEGIJLMP", - "ACEGIJLNP", - "ACEGIJMNP", - "ACEGILMNP", - "ACEGJLMNP", - "ACEHIJLMN", - "ACEHIJLMP", - "ACEHIJLNP", - "ACEHIJMNP", - "ACEHILMNP", - "ACEHJLMNP", - "ACEIJLMNP", - "ACFGHIJLM", - "ACFGHIJLN", - "ACFGHIJLP", - "ACFGHIJMN", - "ACFGHIJMP", - "ACFGHIJNP", - "ACFGHILMN", - "ACFGHILMP", - "ACFGHILNP", - "ACFGHIMNP", - "ACFGHJLMN", - "ACFGHJLMP", - "ACFGHJLNP", - "ACFGHJMNP", - "ACFGHLMNP", - "ACFGIJLMN", - "ACFGIJLMP", - "ACFGIJLNP", - "ACFGIJMNP", - "ACFGILMNP", - "ACFGJLMNP", - "ACFHIJLMN", - "ACFHIJLMP", - "ACFHIJLNP", - "ACFHIJMNP", - "ACFHILMNP", - "ACFHJLMNP", - "ACFIJLMNP", - "ACGHIJLMN", - "ACGHIJLMP", - "ACGHIJLNP", - "ACGHIJMNP", - "ACGHILMNP", - "ACGHJLMNP", - "ACGIJLMNP", - "ACHIJLMNP", - "AEFGHIJLM", - "AEFGHIJLN", - "AEFGHIJLP", - "AEFGHIJMN", - "AEFGHIJMP", - "AEFGHIJNP", - "AEFGHILMN", - "AEFGHILMP", - "AEFGHILNP", - "AEFGHIMNP", - "AEFGHJLMN", - "AEFGHJLMP", - "AEFGHJLNP", - "AEFGHJMNP", - "AEFGHLMNP", - "AEFGIJLMN", - "AEFGIJLMP", - "AEFGIJLNP", - "AEFGIJMNP", - "AEFGILMNP", - "AEFGJLMNP", - "AEFHIJLMN", - "AEFHIJLMP", - "AEFHIJLNP", - "AEFHIJMNP", - "AEFHILMNP", - "AEFHJLMNP", - "AEFIJLMNP", - "AEGHIJLMN", - "AEGHIJLMP", - "AEGHIJLNP", - "AEGHIJMNP", - "AEGHILMNP", - "AEGHJLMNP", - "AEGIJLMNP", - "AEHIJLMNP", - "AFGHIJLMN", - "AFGHIJLMP", - "AFGHIJLNP", - "AFGHIJMNP", - "AFGHILMNP", - "AFGHJLMNP", - "AFGIJLMNP", - "AFHIJLMNP", - "AGHIJLMNP", - "BCEFGHIJL", - "BCEFGHIJM", - "BCEFGHIJN", - "BCEFGHIJP", - "BCEFGHILM", - "BCEFGHILN", - "BCEFGHILP", - "BCEFGHIMN", - "BCEFGHIMP", - "BCEFGHINP", - "BCEFGHJLM", - "BCEFGHJLN", - "BCEFGHJLP", - "BCEFGHJMN", - "BCEFGHJMP", - "BCEFGHJNP", - "BCEFGHLMN", - "BCEFGHLMP", - "BCEFGHLNP", - "BCEFGHMNP", - "BCEFGIJLM", - "BCEFGIJLN", - "BCEFGIJLP", - "BCEFGIJMN", - "BCEFGIJMP", - "BCEFGIJNP", - "BCEFGILMN", - "BCEFGILMP", - "BCEFGILNP", - "BCEFGIMNP", - "BCEFGJLMN", - "BCEFGJLMP", - "BCEFGJLNP", - "BCEFGJMNP", - "BCEFGLMNP", - "BCEFHIJLM", - "BCEFHIJLN", - "BCEFHIJLP", - "BCEFHIJMN", - "BCEFHIJMP", - "BCEFHIJNP", - "BCEFHILMN", - "BCEFHILMP", - "BCEFHILNP", - "BCEFHIMNP", - "BCEFHJLMN", - "BCEFHJLMP", - "BCEFHJLNP", - "BCEFHJMNP", - "BCEFHLMNP", - "BCEFIJLMN", - "BCEFIJLMP", - "BCEFIJLNP", - "BCEFIJMNP", - "BCEFILMNP", - "BCEFJLMNP", - "BCEGHIJLM", - "BCEGHIJLN", - "BCEGHIJLP", - "BCEGHIJMN", - "BCEGHIJMP", - "BCEGHIJNP", - "BCEGHILMN", - "BCEGHILMP", - "BCEGHILNP", - "BCEGHIMNP", - "BCEGHJLMN", - "BCEGHJLMP", - "BCEGHJLNP", - "BCEGHJMNP", - "BCEGHLMNP", - "BCEGIJLMN", - "BCEGIJLMP", - "BCEGIJLNP", - "BCEGIJMNP", - "BCEGILMNP", - "BCEGJLMNP", - "BCEHIJLMN", - "BCEHIJLMP", - "BCEHIJLNP", - "BCEHIJMNP", - "BCEHILMNP", - "BCEHJLMNP", - "BCEIJLMNP", - "BCFGHIJLM", - "BCFGHIJLN", - "BCFGHIJLP", - "BCFGHIJMN", - "BCFGHIJMP", - "BCFGHIJNP", - "BCFGHILMN", - "BCFGHILMP", - "BCFGHILNP", - "BCFGHIMNP", - "BCFGHJLMN", - "BCFGHJLMP", - "BCFGHJLNP", - "BCFGHJMNP", - "BCFGHLMNP", - "BCFGIJLMN", - "BCFGIJLMP", - "BCFGIJLNP", - "BCFGIJMNP", - "BCFGILMNP", - "BCFGJLMNP", - "BCFHIJLMN", - "BCFHIJLMP", - "BCFHIJLNP", - "BCFHIJMNP", - "BCFHILMNP", - "BCFHJLMNP", - "BCFIJLMNP", - "BCGHIJLMN", - "BCGHIJLMP", - "BCGHIJLNP", - "BCGHIJMNP", - "BCGHILMNP", - "BCGHJLMNP", - "BCGIJLMNP", - "BCHIJLMNP", - "BEFGHIJLM", - "BEFGHIJLN", - "BEFGHIJLP", - "BEFGHIJMN", - "BEFGHIJMP", - "BEFGHIJNP", - "BEFGHILMN", - "BEFGHILMP", - "BEFGHILNP", - "BEFGHIMNP", - "BEFGHJLMN", - "BEFGHJLMP", - "BEFGHJLNP", - "BEFGHJMNP", - "BEFGHLMNP", - "BEFGIJLMN", - "BEFGIJLMP", - "BEFGIJLNP", - "BEFGIJMNP", - "BEFGILMNP", - "BEFGJLMNP", - "BEFHIJLMN", - "BEFHIJLMP", - "BEFHIJLNP", - "BEFHIJMNP", - "BEFHILMNP", - "BEFHJLMNP", - "BEFIJLMNP", - "BEGHIJLMN", - "BEGHIJLMP", - "BEGHIJLNP", - "BEGHIJMNP", - "BEGHILMNP", - "BEGHJLMNP", - "BEGIJLMNP", - "BEHIJLMNP", - "BFGHIJLMN", - "BFGHIJLMP", - "BFGHIJLNP", - "BFGHIJMNP", - "BFGHILMNP", - "BFGHJLMNP", - "BFGIJLMNP", - "BFHIJLMNP", - "BGHIJLMNP", - "CEFGHIJLM", - "CEFGHIJLN", - "CEFGHIJLP", - "CEFGHIJMN", - "CEFGHIJMP", - "CEFGHIJNP", - "CEFGHILMN", - "CEFGHILMP", - "CEFGHILNP", - "CEFGHIMNP", - "CEFGHJLMN", - "CEFGHJLMP", - "CEFGHJLNP", - "CEFGHJMNP", - "CEFGHLMNP", - "CEFGIJLMN", - "CEFGIJLMP", - "CEFGIJLNP", - "CEFGIJMNP", - "CEFGILMNP", - "CEFGJLMNP", - "CEFHIJLMN", - "CEFHIJLMP", - "CEFHIJLNP", - "CEFHIJMNP", - "CEFHILMNP", - "CEFHJLMNP", - "CEFIJLMNP", - "CEGHIJLMN", - "CEGHIJLMP", - "CEGHIJLNP", - "CEGHIJMNP", - "CEGHILMNP", - "CEGHJLMNP", - "CEGIJLMNP", - "CEHIJLMNP", - "CFGHIJLMN", - "CFGHIJLMP", - "CFGHIJLNP", - "CFGHIJMNP", - "CFGHILMNP", - "CFGHJLMNP", - "CFGIJLMNP", - "CFHIJLMNP", - "CGHIJLMNP", - "EFGHIJLMN", - "EFGHIJLMP", - "EFGHIJLNP", - "EFGHIJMNP", - "EFGHILMNP", - "EFGHJLMNP", - "EFGIJLMNP", - "EFHIJLMNP", - "EGHIJLMNP", - "FGHIJLMNP", - "ABCEFGHIJL", - "ABCEFGHIJM", - "ABCEFGHIJN", - "ABCEFGHIJP", - "ABCEFGHILM", - "ABCEFGHILN", - "ABCEFGHILP", - "ABCEFGHIMN", - "ABCEFGHIMP", - "ABCEFGHINP", - "ABCEFGHJLM", - "ABCEFGHJLN", - "ABCEFGHJLP", - "ABCEFGHJMN", - "ABCEFGHJMP", - "ABCEFGHJNP", - "ABCEFGHLMN", - "ABCEFGHLMP", - "ABCEFGHLNP", - "ABCEFGHMNP", - "ABCEFGIJLM", - "ABCEFGIJLN", - "ABCEFGIJLP", - "ABCEFGIJMN", - "ABCEFGIJMP", - "ABCEFGIJNP", - "ABCEFGILMN", - "ABCEFGILMP", - "ABCEFGILNP", - "ABCEFGIMNP", - "ABCEFGJLMN", - "ABCEFGJLMP", - "ABCEFGJLNP", - "ABCEFGJMNP", - "ABCEFGLMNP", - "ABCEFHIJLM", - "ABCEFHIJLN", - "ABCEFHIJLP", - "ABCEFHIJMN", - "ABCEFHIJMP", - "ABCEFHIJNP", - "ABCEFHILMN", - "ABCEFHILMP", - "ABCEFHILNP", - "ABCEFHIMNP", - "ABCEFHJLMN", - "ABCEFHJLMP", - "ABCEFHJLNP", - "ABCEFHJMNP", - "ABCEFHLMNP", - "ABCEFIJLMN", - "ABCEFIJLMP", - "ABCEFIJLNP", - "ABCEFIJMNP", - "ABCEFILMNP", - "ABCEFJLMNP", - "ABCEGHIJLM", - "ABCEGHIJLN", - "ABCEGHIJLP", - "ABCEGHIJMN", - "ABCEGHIJMP", - "ABCEGHIJNP", - "ABCEGHILMN", - "ABCEGHILMP", - "ABCEGHILNP", - "ABCEGHIMNP", - "ABCEGHJLMN", - "ABCEGHJLMP", - "ABCEGHJLNP", - "ABCEGHJMNP", - "ABCEGHLMNP", - "ABCEGIJLMN", - "ABCEGIJLMP", - "ABCEGIJLNP", - "ABCEGIJMNP", - "ABCEGILMNP", - "ABCEGJLMNP", - "ABCEHIJLMN", - "ABCEHIJLMP", - "ABCEHIJLNP", - "ABCEHIJMNP", - "ABCEHILMNP", - "ABCEHJLMNP", - "ABCEIJLMNP", - "ABCFGHIJLM", - "ABCFGHIJLN", - "ABCFGHIJLP", - "ABCFGHIJMN", - "ABCFGHIJMP", - "ABCFGHIJNP", - "ABCFGHILMN", - "ABCFGHILMP", - "ABCFGHILNP", - "ABCFGHIMNP", - "ABCFGHJLMN", - "ABCFGHJLMP", - "ABCFGHJLNP", - "ABCFGHJMNP", - "ABCFGHLMNP", - "ABCFGIJLMN", - "ABCFGIJLMP", - "ABCFGIJLNP", - "ABCFGIJMNP", - "ABCFGILMNP", - "ABCFGJLMNP", - "ABCFHIJLMN", - "ABCFHIJLMP", - "ABCFHIJLNP", - "ABCFHIJMNP", - "ABCFHILMNP", - "ABCFHJLMNP", - "ABCFIJLMNP", - "ABCGHIJLMN", - "ABCGHIJLMP", - "ABCGHIJLNP", - "ABCGHIJMNP", - "ABCGHILMNP", - "ABCGHJLMNP", - "ABCGIJLMNP", - "ABCHIJLMNP", - "ABEFGHIJLM", - "ABEFGHIJLN", - "ABEFGHIJLP", - "ABEFGHIJMN", - "ABEFGHIJMP", - "ABEFGHIJNP", - "ABEFGHILMN", - "ABEFGHILMP", - "ABEFGHILNP", - "ABEFGHIMNP", - "ABEFGHJLMN", - "ABEFGHJLMP", - "ABEFGHJLNP", - "ABEFGHJMNP", - "ABEFGHLMNP", - "ABEFGIJLMN", - "ABEFGIJLMP", - "ABEFGIJLNP", - "ABEFGIJMNP", - "ABEFGILMNP", - "ABEFGJLMNP", - "ABEFHIJLMN", - "ABEFHIJLMP", - "ABEFHIJLNP", - "ABEFHIJMNP", - "ABEFHILMNP", - "ABEFHJLMNP", - "ABEFIJLMNP", - "ABEGHIJLMN", - "ABEGHIJLMP", - "ABEGHIJLNP", - "ABEGHIJMNP", - "ABEGHILMNP", - "ABEGHJLMNP", - "ABEGIJLMNP", - "ABEHIJLMNP", - "ABFGHIJLMN", - "ABFGHIJLMP", - "ABFGHIJLNP", - "ABFGHIJMNP", - "ABFGHILMNP", - "ABFGHJLMNP", - "ABFGIJLMNP", - "ABFHIJLMNP", - "ABGHIJLMNP", - "ACEFGHIJLM", - "ACEFGHIJLN", - "ACEFGHIJLP", - "ACEFGHIJMN", - "ACEFGHIJMP", - "ACEFGHIJNP", - "ACEFGHILMN", - "ACEFGHILMP", - "ACEFGHILNP", - "ACEFGHIMNP", - "ACEFGHJLMN", - "ACEFGHJLMP", - "ACEFGHJLNP", - "ACEFGHJMNP", - "ACEFGHLMNP", - "ACEFGIJLMN", - "ACEFGIJLMP", - "ACEFGIJLNP", - "ACEFGIJMNP", - "ACEFGILMNP", - "ACEFGJLMNP", - "ACEFHIJLMN", - "ACEFHIJLMP", - "ACEFHIJLNP", - "ACEFHIJMNP", - "ACEFHILMNP", - "ACEFHJLMNP", - "ACEFIJLMNP", - "ACEGHIJLMN", - "ACEGHIJLMP", - "ACEGHIJLNP", - "ACEGHIJMNP", - "ACEGHILMNP", - "ACEGHJLMNP", - "ACEGIJLMNP", - "ACEHIJLMNP", - "ACFGHIJLMN", - "ACFGHIJLMP", - "ACFGHIJLNP", - "ACFGHIJMNP", - "ACFGHILMNP", - "ACFGHJLMNP", - "ACFGIJLMNP", - "ACFHIJLMNP", - "ACGHIJLMNP", - "AEFGHIJLMN", - "AEFGHIJLMP", - "AEFGHIJLNP", - "AEFGHIJMNP", - "AEFGHILMNP", - "AEFGHJLMNP", - "AEFGIJLMNP", - "AEFHIJLMNP", - "AEGHIJLMNP", - "AFGHIJLMNP", - "BCEFGHIJLM", - "BCEFGHIJLN", - "BCEFGHIJLP", - "BCEFGHIJMN", - "BCEFGHIJMP", - "BCEFGHIJNP", - "BCEFGHILMN", - "BCEFGHILMP", - "BCEFGHILNP", - "BCEFGHIMNP", - "BCEFGHJLMN", - "BCEFGHJLMP", - "BCEFGHJLNP", - "BCEFGHJMNP", - "BCEFGHLMNP", - "BCEFGIJLMN", - "BCEFGIJLMP", - "BCEFGIJLNP", - "BCEFGIJMNP", - "BCEFGILMNP", - "BCEFGJLMNP", - "BCEFHIJLMN", - "BCEFHIJLMP", - "BCEFHIJLNP", - "BCEFHIJMNP", - "BCEFHILMNP", - "BCEFHJLMNP", - "BCEFIJLMNP", - "BCEGHIJLMN", - "BCEGHIJLMP", - "BCEGHIJLNP", - "BCEGHIJMNP", - "BCEGHILMNP", - "BCEGHJLMNP", - "BCEGIJLMNP", - "BCEHIJLMNP", - "BCFGHIJLMN", - "BCFGHIJLMP", - "BCFGHIJLNP", - "BCFGHIJMNP", - "BCFGHILMNP", - "BCFGHJLMNP", - "BCFGIJLMNP", - "BCFHIJLMNP", - "BCGHIJLMNP", - "BEFGHIJLMN", - "BEFGHIJLMP", - "BEFGHIJLNP", - "BEFGHIJMNP", - "BEFGHILMNP", - "BEFGHJLMNP", - "BEFGIJLMNP", - "BEFHIJLMNP", - "BEGHIJLMNP", - "BFGHIJLMNP", - "CEFGHIJLMN", - "CEFGHIJLMP", - "CEFGHIJLNP", - "CEFGHIJMNP", - "CEFGHILMNP", - "CEFGHJLMNP", - "CEFGIJLMNP", - "CEFHIJLMNP", - "CEGHIJLMNP", - "CFGHIJLMNP", - "EFGHIJLMNP", - "ABCEFGHIJLM", - "ABCEFGHIJLN", - "ABCEFGHIJLP", - "ABCEFGHIJMN", - "ABCEFGHIJMP", - "ABCEFGHIJNP", - "ABCEFGHILMN", - "ABCEFGHILMP", - "ABCEFGHILNP", - "ABCEFGHIMNP", - "ABCEFGHJLMN", - "ABCEFGHJLMP", - "ABCEFGHJLNP", - "ABCEFGHJMNP", - "ABCEFGHLMNP", - "ABCEFGIJLMN", - "ABCEFGIJLMP", - "ABCEFGIJLNP", - "ABCEFGIJMNP", - "ABCEFGILMNP", - "ABCEFGJLMNP", - "ABCEFHIJLMN", - "ABCEFHIJLMP", - "ABCEFHIJLNP", - "ABCEFHIJMNP", - "ABCEFHILMNP", - "ABCEFHJLMNP", - "ABCEFIJLMNP", - "ABCEGHIJLMN", - "ABCEGHIJLMP", - "ABCEGHIJLNP", - "ABCEGHIJMNP", - "ABCEGHILMNP", - "ABCEGHJLMNP", - "ABCEGIJLMNP", - "ABCEHIJLMNP", - "ABCFGHIJLMN", - "ABCFGHIJLMP", - "ABCFGHIJLNP", - "ABCFGHIJMNP", - "ABCFGHILMNP", - "ABCFGHJLMNP", - "ABCFGIJLMNP", - "ABCFHIJLMNP", - "ABCGHIJLMNP", - "ABEFGHIJLMN", - "ABEFGHIJLMP", - "ABEFGHIJLNP", - "ABEFGHIJMNP", - "ABEFGHILMNP", - "ABEFGHJLMNP", - "ABEFGIJLMNP", - "ABEFHIJLMNP", - "ABEGHIJLMNP", - "ABFGHIJLMNP", - "ACEFGHIJLMN", - "ACEFGHIJLMP", - "ACEFGHIJLNP", - "ACEFGHIJMNP", - "ACEFGHILMNP", - "ACEFGHJLMNP", - "ACEFGIJLMNP", - "ACEFHIJLMNP", - "ACEGHIJLMNP", - "ACFGHIJLMNP", - "AEFGHIJLMNP", - "BCEFGHIJLMN", - "BCEFGHIJLMP", - "BCEFGHIJLNP", - "BCEFGHIJMNP", - "BCEFGHILMNP", - "BCEFGHJLMNP", - "BCEFGIJLMNP", - "BCEFHIJLMNP", - "BCEGHIJLMNP", - "BCFGHIJLMNP", - "BEFGHIJLMNP", - "CEFGHIJLMNP", - "ABCEFGHIJLMN", - "ABCEFGHIJLMP", - "ABCEFGHIJLNP", - "ABCEFGHIJMNP", - "ABCEFGHILMNP", - "ABCEFGHJLMNP", - "ABCEFGIJLMNP", - "ABCEFHIJLMNP", - "ABCEGHIJLMNP", - "ABCFGHIJLMNP", - "ABEFGHIJLMNP", - "ACEFGHIJLMNP", - "BCEFGHIJLMNP", - "ABCEFGHIJLMNP" - ] -} +{ + "requirement_types": [ + "A", + "B", + "C", + "E", + "F", + "G", + "H", + "I", + "J", + "L", + "M", + "N", + "P", + "AB", + "AC", + "AE", + "AF", + "AG", + "AH", + "AI", + "AJ", + "AL", + "AM", + "AN", + "AP", + "BC", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BP", + "CE", + "CF", + "CG", + "CH", + "CI", + "CJ", + "CL", + "CM", + "CN", + "CP", + "EF", + "EG", + "EH", + "EI", + "EJ", + "EL", + "EM", + "EN", + "EP", + "FG", + "FH", + "FI", + "FJ", + "FL", + "FM", + "FN", + "FP", + "GH", + "GI", + "GJ", + "GL", + "GM", + "GN", + "GP", + "HI", + "HJ", + "HL", + "HM", + "HN", + "HP", + "IJ", + "IL", + "IM", + "IN", + "IP", + "JL", + "JM", + "JN", + "JP", + "LM", + "LN", + "LP", + "MN", + "MP", + "NP", + "ABC", + "ABE", + "ABF", + "ABG", + "ABH", + "ABI", + "ABJ", + "ABL", + "ABM", + "ABN", + "ABP", + "ACE", + "ACF", + "ACG", + "ACH", + "ACI", + "ACJ", + "ACL", + "ACM", + "ACN", + "ACP", + "AEF", + "AEG", + "AEH", + "AEI", + "AEJ", + "AEL", + "AEM", + "AEN", + "AEP", + "AFG", + "AFH", + "AFI", + "AFJ", + "AFL", + "AFM", + "AFN", + "AFP", + "AGH", + "AGI", + "AGJ", + "AGL", + "AGM", + "AGN", + "AGP", + "AHI", + "AHJ", + "AHL", + "AHM", + "AHN", + "AHP", + "AIJ", + "AIL", + "AIM", + "AIN", + "AIP", + "AJL", + "AJM", + "AJN", + "AJP", + "ALM", + "ALN", + "ALP", + "AMN", + "AMP", + "ANP", + "BCE", + "BCF", + "BCG", + "BCH", + "BCI", + "BCJ", + "BCL", + "BCM", + "BCN", + "BCP", + "BEF", + "BEG", + "BEH", + "BEI", + "BEJ", + "BEL", + "BEM", + "BEN", + "BEP", + "BFG", + "BFH", + "BFI", + "BFJ", + "BFL", + "BFM", + "BFN", + "BFP", + "BGH", + "BGI", + "BGJ", + "BGL", + "BGM", + "BGN", + "BGP", + "BHI", + "BHJ", + "BHL", + "BHM", + "BHN", + "BHP", + "BIJ", + "BIL", + "BIM", + "BIN", + "BIP", + "BJL", + "BJM", + "BJN", + "BJP", + "BLM", + "BLN", + "BLP", + "BMN", + "BMP", + "BNP", + "CEF", + "CEG", + "CEH", + "CEI", + "CEJ", + "CEL", + "CEM", + "CEN", + "CEP", + "CFG", + "CFH", + "CFI", + "CFJ", + "CFL", + "CFM", + "CFN", + "CFP", + "CGH", + "CGI", + "CGJ", + "CGL", + "CGM", + "CGN", + "CGP", + "CHI", + "CHJ", + "CHL", + "CHM", + "CHN", + "CHP", + "CIJ", + "CIL", + "CIM", + "CIN", + "CIP", + "CJL", + "CJM", + "CJN", + "CJP", + "CLM", + "CLN", + "CLP", + "CMN", + "CMP", + "CNP", + "EFG", + "EFH", + "EFI", + "EFJ", + "EFL", + "EFM", + "EFN", + "EFP", + "EGH", + "EGI", + "EGJ", + "EGL", + "EGM", + "EGN", + "EGP", + "EHI", + "EHJ", + "EHL", + "EHM", + "EHN", + "EHP", + "EIJ", + "EIL", + "EIM", + "EIN", + "EIP", + "EJL", + "EJM", + "EJN", + "EJP", + "ELM", + "ELN", + "ELP", + "EMN", + "EMP", + "ENP", + "FGH", + "FGI", + "FGJ", + "FGL", + "FGM", + "FGN", + "FGP", + "FHI", + "FHJ", + "FHL", + "FHM", + "FHN", + "FHP", + "FIJ", + "FIL", + "FIM", + "FIN", + "FIP", + "FJL", + "FJM", + "FJN", + "FJP", + "FLM", + "FLN", + "FLP", + "FMN", + "FMP", + "FNP", + "GHI", + "GHJ", + "GHL", + "GHM", + "GHN", + "GHP", + "GIJ", + "GIL", + "GIM", + "GIN", + "GIP", + "GJL", + "GJM", + "GJN", + "GJP", + "GLM", + "GLN", + "GLP", + "GMN", + "GMP", + "GNP", + "HIJ", + "HIL", + "HIM", + "HIN", + "HIP", + "HJL", + "HJM", + "HJN", + "HJP", + "HLM", + "HLN", + "HLP", + "HMN", + "HMP", + "HNP", + "IJL", + "IJM", + "IJN", + "IJP", + "ILM", + "ILN", + "ILP", + "IMN", + "IMP", + "INP", + "JLM", + "JLN", + "JLP", + "JMN", + "JMP", + "JNP", + "LMN", + "LMP", + "LNP", + "MNP", + "ABCE", + "ABCF", + "ABCG", + "ABCH", + "ABCI", + "ABCJ", + "ABCL", + "ABCM", + "ABCN", + "ABCP", + "ABEF", + "ABEG", + "ABEH", + "ABEI", + "ABEJ", + "ABEL", + "ABEM", + "ABEN", + "ABEP", + "ABFG", + "ABFH", + "ABFI", + "ABFJ", + "ABFL", + "ABFM", + "ABFN", + "ABFP", + "ABGH", + "ABGI", + "ABGJ", + "ABGL", + "ABGM", + "ABGN", + "ABGP", + "ABHI", + "ABHJ", + "ABHL", + "ABHM", + "ABHN", + "ABHP", + "ABIJ", + "ABIL", + "ABIM", + "ABIN", + "ABIP", + "ABJL", + "ABJM", + "ABJN", + "ABJP", + "ABLM", + "ABLN", + "ABLP", + "ABMN", + "ABMP", + "ABNP", + "ACEF", + "ACEG", + "ACEH", + "ACEI", + "ACEJ", + "ACEL", + "ACEM", + "ACEN", + "ACEP", + "ACFG", + "ACFH", + "ACFI", + "ACFJ", + "ACFL", + "ACFM", + "ACFN", + "ACFP", + "ACGH", + "ACGI", + "ACGJ", + "ACGL", + "ACGM", + "ACGN", + "ACGP", + "ACHI", + "ACHJ", + "ACHL", + "ACHM", + "ACHN", + "ACHP", + "ACIJ", + "ACIL", + "ACIM", + "ACIN", + "ACIP", + "ACJL", + "ACJM", + "ACJN", + "ACJP", + "ACLM", + "ACLN", + "ACLP", + "ACMN", + "ACMP", + "ACNP", + "AEFG", + "AEFH", + "AEFI", + "AEFJ", + "AEFL", + "AEFM", + "AEFN", + "AEFP", + "AEGH", + "AEGI", + "AEGJ", + "AEGL", + "AEGM", + "AEGN", + "AEGP", + "AEHI", + "AEHJ", + "AEHL", + "AEHM", + "AEHN", + "AEHP", + "AEIJ", + "AEIL", + "AEIM", + "AEIN", + "AEIP", + "AEJL", + "AEJM", + "AEJN", + "AEJP", + "AELM", + "AELN", + "AELP", + "AEMN", + "AEMP", + "AENP", + "AFGH", + "AFGI", + "AFGJ", + "AFGL", + "AFGM", + "AFGN", + "AFGP", + "AFHI", + "AFHJ", + "AFHL", + "AFHM", + "AFHN", + "AFHP", + "AFIJ", + "AFIL", + "AFIM", + "AFIN", + "AFIP", + "AFJL", + "AFJM", + "AFJN", + "AFJP", + "AFLM", + "AFLN", + "AFLP", + "AFMN", + "AFMP", + "AFNP", + "AGHI", + "AGHJ", + "AGHL", + "AGHM", + "AGHN", + "AGHP", + "AGIJ", + "AGIL", + "AGIM", + "AGIN", + "AGIP", + "AGJL", + "AGJM", + "AGJN", + "AGJP", + "AGLM", + "AGLN", + "AGLP", + "AGMN", + "AGMP", + "AGNP", + "AHIJ", + "AHIL", + "AHIM", + "AHIN", + "AHIP", + "AHJL", + "AHJM", + "AHJN", + "AHJP", + "AHLM", + "AHLN", + "AHLP", + "AHMN", + "AHMP", + "AHNP", + "AIJL", + "AIJM", + "AIJN", + "AIJP", + "AILM", + "AILN", + "AILP", + "AIMN", + "AIMP", + "AINP", + "AJLM", + "AJLN", + "AJLP", + "AJMN", + "AJMP", + "AJNP", + "ALMN", + "ALMP", + "ALNP", + "AMNP", + "BCEF", + "BCEG", + "BCEH", + "BCEI", + "BCEJ", + "BCEL", + "BCEM", + "BCEN", + "BCEP", + "BCFG", + "BCFH", + "BCFI", + "BCFJ", + "BCFL", + "BCFM", + "BCFN", + "BCFP", + "BCGH", + "BCGI", + "BCGJ", + "BCGL", + "BCGM", + "BCGN", + "BCGP", + "BCHI", + "BCHJ", + "BCHL", + "BCHM", + "BCHN", + "BCHP", + "BCIJ", + "BCIL", + "BCIM", + "BCIN", + "BCIP", + "BCJL", + "BCJM", + "BCJN", + "BCJP", + "BCLM", + "BCLN", + "BCLP", + "BCMN", + "BCMP", + "BCNP", + "BEFG", + "BEFH", + "BEFI", + "BEFJ", + "BEFL", + "BEFM", + "BEFN", + "BEFP", + "BEGH", + "BEGI", + "BEGJ", + "BEGL", + "BEGM", + "BEGN", + "BEGP", + "BEHI", + "BEHJ", + "BEHL", + "BEHM", + "BEHN", + "BEHP", + "BEIJ", + "BEIL", + "BEIM", + "BEIN", + "BEIP", + "BEJL", + "BEJM", + "BEJN", + "BEJP", + "BELM", + "BELN", + "BELP", + "BEMN", + "BEMP", + "BENP", + "BFGH", + "BFGI", + "BFGJ", + "BFGL", + "BFGM", + "BFGN", + "BFGP", + "BFHI", + "BFHJ", + "BFHL", + "BFHM", + "BFHN", + "BFHP", + "BFIJ", + "BFIL", + "BFIM", + "BFIN", + "BFIP", + "BFJL", + "BFJM", + "BFJN", + "BFJP", + "BFLM", + "BFLN", + "BFLP", + "BFMN", + "BFMP", + "BFNP", + "BGHI", + "BGHJ", + "BGHL", + "BGHM", + "BGHN", + "BGHP", + "BGIJ", + "BGIL", + "BGIM", + "BGIN", + "BGIP", + "BGJL", + "BGJM", + "BGJN", + "BGJP", + "BGLM", + "BGLN", + "BGLP", + "BGMN", + "BGMP", + "BGNP", + "BHIJ", + "BHIL", + "BHIM", + "BHIN", + "BHIP", + "BHJL", + "BHJM", + "BHJN", + "BHJP", + "BHLM", + "BHLN", + "BHLP", + "BHMN", + "BHMP", + "BHNP", + "BIJL", + "BIJM", + "BIJN", + "BIJP", + "BILM", + "BILN", + "BILP", + "BIMN", + "BIMP", + "BINP", + "BJLM", + "BJLN", + "BJLP", + "BJMN", + "BJMP", + "BJNP", + "BLMN", + "BLMP", + "BLNP", + "BMNP", + "CEFG", + "CEFH", + "CEFI", + "CEFJ", + "CEFL", + "CEFM", + "CEFN", + "CEFP", + "CEGH", + "CEGI", + "CEGJ", + "CEGL", + "CEGM", + "CEGN", + "CEGP", + "CEHI", + "CEHJ", + "CEHL", + "CEHM", + "CEHN", + "CEHP", + "CEIJ", + "CEIL", + "CEIM", + "CEIN", + "CEIP", + "CEJL", + "CEJM", + "CEJN", + "CEJP", + "CELM", + "CELN", + "CELP", + "CEMN", + "CEMP", + "CENP", + "CFGH", + "CFGI", + "CFGJ", + "CFGL", + "CFGM", + "CFGN", + "CFGP", + "CFHI", + "CFHJ", + "CFHL", + "CFHM", + "CFHN", + "CFHP", + "CFIJ", + "CFIL", + "CFIM", + "CFIN", + "CFIP", + "CFJL", + "CFJM", + "CFJN", + "CFJP", + "CFLM", + "CFLN", + "CFLP", + "CFMN", + "CFMP", + "CFNP", + "CGHI", + "CGHJ", + "CGHL", + "CGHM", + "CGHN", + "CGHP", + "CGIJ", + "CGIL", + "CGIM", + "CGIN", + "CGIP", + "CGJL", + "CGJM", + "CGJN", + "CGJP", + "CGLM", + "CGLN", + "CGLP", + "CGMN", + "CGMP", + "CGNP", + "CHIJ", + "CHIL", + "CHIM", + "CHIN", + "CHIP", + "CHJL", + "CHJM", + "CHJN", + "CHJP", + "CHLM", + "CHLN", + "CHLP", + "CHMN", + "CHMP", + "CHNP", + "CIJL", + "CIJM", + "CIJN", + "CIJP", + "CILM", + "CILN", + "CILP", + "CIMN", + "CIMP", + "CINP", + "CJLM", + "CJLN", + "CJLP", + "CJMN", + "CJMP", + "CJNP", + "CLMN", + "CLMP", + "CLNP", + "CMNP", + "EFGH", + "EFGI", + "EFGJ", + "EFGL", + "EFGM", + "EFGN", + "EFGP", + "EFHI", + "EFHJ", + "EFHL", + "EFHM", + "EFHN", + "EFHP", + "EFIJ", + "EFIL", + "EFIM", + "EFIN", + "EFIP", + "EFJL", + "EFJM", + "EFJN", + "EFJP", + "EFLM", + "EFLN", + "EFLP", + "EFMN", + "EFMP", + "EFNP", + "EGHI", + "EGHJ", + "EGHL", + "EGHM", + "EGHN", + "EGHP", + "EGIJ", + "EGIL", + "EGIM", + "EGIN", + "EGIP", + "EGJL", + "EGJM", + "EGJN", + "EGJP", + "EGLM", + "EGLN", + "EGLP", + "EGMN", + "EGMP", + "EGNP", + "EHIJ", + "EHIL", + "EHIM", + "EHIN", + "EHIP", + "EHJL", + "EHJM", + "EHJN", + "EHJP", + "EHLM", + "EHLN", + "EHLP", + "EHMN", + "EHMP", + "EHNP", + "EIJL", + "EIJM", + "EIJN", + "EIJP", + "EILM", + "EILN", + "EILP", + "EIMN", + "EIMP", + "EINP", + "EJLM", + "EJLN", + "EJLP", + "EJMN", + "EJMP", + "EJNP", + "ELMN", + "ELMP", + "ELNP", + "EMNP", + "FGHI", + "FGHJ", + "FGHL", + "FGHM", + "FGHN", + "FGHP", + "FGIJ", + "FGIL", + "FGIM", + "FGIN", + "FGIP", + "FGJL", + "FGJM", + "FGJN", + "FGJP", + "FGLM", + "FGLN", + "FGLP", + "FGMN", + "FGMP", + "FGNP", + "FHIJ", + "FHIL", + "FHIM", + "FHIN", + "FHIP", + "FHJL", + "FHJM", + "FHJN", + "FHJP", + "FHLM", + "FHLN", + "FHLP", + "FHMN", + "FHMP", + "FHNP", + "FIJL", + "FIJM", + "FIJN", + "FIJP", + "FILM", + "FILN", + "FILP", + "FIMN", + "FIMP", + "FINP", + "FJLM", + "FJLN", + "FJLP", + "FJMN", + "FJMP", + "FJNP", + "FLMN", + "FLMP", + "FLNP", + "FMNP", + "GHIJ", + "GHIL", + "GHIM", + "GHIN", + "GHIP", + "GHJL", + "GHJM", + "GHJN", + "GHJP", + "GHLM", + "GHLN", + "GHLP", + "GHMN", + "GHMP", + "GHNP", + "GIJL", + "GIJM", + "GIJN", + "GIJP", + "GILM", + "GILN", + "GILP", + "GIMN", + "GIMP", + "GINP", + "GJLM", + "GJLN", + "GJLP", + "GJMN", + "GJMP", + "GJNP", + "GLMN", + "GLMP", + "GLNP", + "GMNP", + "HIJL", + "HIJM", + "HIJN", + "HIJP", + "HILM", + "HILN", + "HILP", + "HIMN", + "HIMP", + "HINP", + "HJLM", + "HJLN", + "HJLP", + "HJMN", + "HJMP", + "HJNP", + "HLMN", + "HLMP", + "HLNP", + "HMNP", + "IJLM", + "IJLN", + "IJLP", + "IJMN", + "IJMP", + "IJNP", + "ILMN", + "ILMP", + "ILNP", + "IMNP", + "JLMN", + "JLMP", + "JLNP", + "JMNP", + "LMNP", + "ABCEF", + "ABCEG", + "ABCEH", + "ABCEI", + "ABCEJ", + "ABCEL", + "ABCEM", + "ABCEN", + "ABCEP", + "ABCFG", + "ABCFH", + "ABCFI", + "ABCFJ", + "ABCFL", + "ABCFM", + "ABCFN", + "ABCFP", + "ABCGH", + "ABCGI", + "ABCGJ", + "ABCGL", + "ABCGM", + "ABCGN", + "ABCGP", + "ABCHI", + "ABCHJ", + "ABCHL", + "ABCHM", + "ABCHN", + "ABCHP", + "ABCIJ", + "ABCIL", + "ABCIM", + "ABCIN", + "ABCIP", + "ABCJL", + "ABCJM", + "ABCJN", + "ABCJP", + "ABCLM", + "ABCLN", + "ABCLP", + "ABCMN", + "ABCMP", + "ABCNP", + "ABEFG", + "ABEFH", + "ABEFI", + "ABEFJ", + "ABEFL", + "ABEFM", + "ABEFN", + "ABEFP", + "ABEGH", + "ABEGI", + "ABEGJ", + "ABEGL", + "ABEGM", + "ABEGN", + "ABEGP", + "ABEHI", + "ABEHJ", + "ABEHL", + "ABEHM", + "ABEHN", + "ABEHP", + "ABEIJ", + "ABEIL", + "ABEIM", + "ABEIN", + "ABEIP", + "ABEJL", + "ABEJM", + "ABEJN", + "ABEJP", + "ABELM", + "ABELN", + "ABELP", + "ABEMN", + "ABEMP", + "ABENP", + "ABFGH", + "ABFGI", + "ABFGJ", + "ABFGL", + "ABFGM", + "ABFGN", + "ABFGP", + "ABFHI", + "ABFHJ", + "ABFHL", + "ABFHM", + "ABFHN", + "ABFHP", + "ABFIJ", + "ABFIL", + "ABFIM", + "ABFIN", + "ABFIP", + "ABFJL", + "ABFJM", + "ABFJN", + "ABFJP", + "ABFLM", + "ABFLN", + "ABFLP", + "ABFMN", + "ABFMP", + "ABFNP", + "ABGHI", + "ABGHJ", + "ABGHL", + "ABGHM", + "ABGHN", + "ABGHP", + "ABGIJ", + "ABGIL", + "ABGIM", + "ABGIN", + "ABGIP", + "ABGJL", + "ABGJM", + "ABGJN", + "ABGJP", + "ABGLM", + "ABGLN", + "ABGLP", + "ABGMN", + "ABGMP", + "ABGNP", + "ABHIJ", + "ABHIL", + "ABHIM", + "ABHIN", + "ABHIP", + "ABHJL", + "ABHJM", + "ABHJN", + "ABHJP", + "ABHLM", + "ABHLN", + "ABHLP", + "ABHMN", + "ABHMP", + "ABHNP", + "ABIJL", + "ABIJM", + "ABIJN", + "ABIJP", + "ABILM", + "ABILN", + "ABILP", + "ABIMN", + "ABIMP", + "ABINP", + "ABJLM", + "ABJLN", + "ABJLP", + "ABJMN", + "ABJMP", + "ABJNP", + "ABLMN", + "ABLMP", + "ABLNP", + "ABMNP", + "ACEFG", + "ACEFH", + "ACEFI", + "ACEFJ", + "ACEFL", + "ACEFM", + "ACEFN", + "ACEFP", + "ACEGH", + "ACEGI", + "ACEGJ", + "ACEGL", + "ACEGM", + "ACEGN", + "ACEGP", + "ACEHI", + "ACEHJ", + "ACEHL", + "ACEHM", + "ACEHN", + "ACEHP", + "ACEIJ", + "ACEIL", + "ACEIM", + "ACEIN", + "ACEIP", + "ACEJL", + "ACEJM", + "ACEJN", + "ACEJP", + "ACELM", + "ACELN", + "ACELP", + "ACEMN", + "ACEMP", + "ACENP", + "ACFGH", + "ACFGI", + "ACFGJ", + "ACFGL", + "ACFGM", + "ACFGN", + "ACFGP", + "ACFHI", + "ACFHJ", + "ACFHL", + "ACFHM", + "ACFHN", + "ACFHP", + "ACFIJ", + "ACFIL", + "ACFIM", + "ACFIN", + "ACFIP", + "ACFJL", + "ACFJM", + "ACFJN", + "ACFJP", + "ACFLM", + "ACFLN", + "ACFLP", + "ACFMN", + "ACFMP", + "ACFNP", + "ACGHI", + "ACGHJ", + "ACGHL", + "ACGHM", + "ACGHN", + "ACGHP", + "ACGIJ", + "ACGIL", + "ACGIM", + "ACGIN", + "ACGIP", + "ACGJL", + "ACGJM", + "ACGJN", + "ACGJP", + "ACGLM", + "ACGLN", + "ACGLP", + "ACGMN", + "ACGMP", + "ACGNP", + "ACHIJ", + "ACHIL", + "ACHIM", + "ACHIN", + "ACHIP", + "ACHJL", + "ACHJM", + "ACHJN", + "ACHJP", + "ACHLM", + "ACHLN", + "ACHLP", + "ACHMN", + "ACHMP", + "ACHNP", + "ACIJL", + "ACIJM", + "ACIJN", + "ACIJP", + "ACILM", + "ACILN", + "ACILP", + "ACIMN", + "ACIMP", + "ACINP", + "ACJLM", + "ACJLN", + "ACJLP", + "ACJMN", + "ACJMP", + "ACJNP", + "ACLMN", + "ACLMP", + "ACLNP", + "ACMNP", + "AEFGH", + "AEFGI", + "AEFGJ", + "AEFGL", + "AEFGM", + "AEFGN", + "AEFGP", + "AEFHI", + "AEFHJ", + "AEFHL", + "AEFHM", + "AEFHN", + "AEFHP", + "AEFIJ", + "AEFIL", + "AEFIM", + "AEFIN", + "AEFIP", + "AEFJL", + "AEFJM", + "AEFJN", + "AEFJP", + "AEFLM", + "AEFLN", + "AEFLP", + "AEFMN", + "AEFMP", + "AEFNP", + "AEGHI", + "AEGHJ", + "AEGHL", + "AEGHM", + "AEGHN", + "AEGHP", + "AEGIJ", + "AEGIL", + "AEGIM", + "AEGIN", + "AEGIP", + "AEGJL", + "AEGJM", + "AEGJN", + "AEGJP", + "AEGLM", + "AEGLN", + "AEGLP", + "AEGMN", + "AEGMP", + "AEGNP", + "AEHIJ", + "AEHIL", + "AEHIM", + "AEHIN", + "AEHIP", + "AEHJL", + "AEHJM", + "AEHJN", + "AEHJP", + "AEHLM", + "AEHLN", + "AEHLP", + "AEHMN", + "AEHMP", + "AEHNP", + "AEIJL", + "AEIJM", + "AEIJN", + "AEIJP", + "AEILM", + "AEILN", + "AEILP", + "AEIMN", + "AEIMP", + "AEINP", + "AEJLM", + "AEJLN", + "AEJLP", + "AEJMN", + "AEJMP", + "AEJNP", + "AELMN", + "AELMP", + "AELNP", + "AEMNP", + "AFGHI", + "AFGHJ", + "AFGHL", + "AFGHM", + "AFGHN", + "AFGHP", + "AFGIJ", + "AFGIL", + "AFGIM", + "AFGIN", + "AFGIP", + "AFGJL", + "AFGJM", + "AFGJN", + "AFGJP", + "AFGLM", + "AFGLN", + "AFGLP", + "AFGMN", + "AFGMP", + "AFGNP", + "AFHIJ", + "AFHIL", + "AFHIM", + "AFHIN", + "AFHIP", + "AFHJL", + "AFHJM", + "AFHJN", + "AFHJP", + "AFHLM", + "AFHLN", + "AFHLP", + "AFHMN", + "AFHMP", + "AFHNP", + "AFIJL", + "AFIJM", + "AFIJN", + "AFIJP", + "AFILM", + "AFILN", + "AFILP", + "AFIMN", + "AFIMP", + "AFINP", + "AFJLM", + "AFJLN", + "AFJLP", + "AFJMN", + "AFJMP", + "AFJNP", + "AFLMN", + "AFLMP", + "AFLNP", + "AFMNP", + "AGHIJ", + "AGHIL", + "AGHIM", + "AGHIN", + "AGHIP", + "AGHJL", + "AGHJM", + "AGHJN", + "AGHJP", + "AGHLM", + "AGHLN", + "AGHLP", + "AGHMN", + "AGHMP", + "AGHNP", + "AGIJL", + "AGIJM", + "AGIJN", + "AGIJP", + "AGILM", + "AGILN", + "AGILP", + "AGIMN", + "AGIMP", + "AGINP", + "AGJLM", + "AGJLN", + "AGJLP", + "AGJMN", + "AGJMP", + "AGJNP", + "AGLMN", + "AGLMP", + "AGLNP", + "AGMNP", + "AHIJL", + "AHIJM", + "AHIJN", + "AHIJP", + "AHILM", + "AHILN", + "AHILP", + "AHIMN", + "AHIMP", + "AHINP", + "AHJLM", + "AHJLN", + "AHJLP", + "AHJMN", + "AHJMP", + "AHJNP", + "AHLMN", + "AHLMP", + "AHLNP", + "AHMNP", + "AIJLM", + "AIJLN", + "AIJLP", + "AIJMN", + "AIJMP", + "AIJNP", + "AILMN", + "AILMP", + "AILNP", + "AIMNP", + "AJLMN", + "AJLMP", + "AJLNP", + "AJMNP", + "ALMNP", + "BCEFG", + "BCEFH", + "BCEFI", + "BCEFJ", + "BCEFL", + "BCEFM", + "BCEFN", + "BCEFP", + "BCEGH", + "BCEGI", + "BCEGJ", + "BCEGL", + "BCEGM", + "BCEGN", + "BCEGP", + "BCEHI", + "BCEHJ", + "BCEHL", + "BCEHM", + "BCEHN", + "BCEHP", + "BCEIJ", + "BCEIL", + "BCEIM", + "BCEIN", + "BCEIP", + "BCEJL", + "BCEJM", + "BCEJN", + "BCEJP", + "BCELM", + "BCELN", + "BCELP", + "BCEMN", + "BCEMP", + "BCENP", + "BCFGH", + "BCFGI", + "BCFGJ", + "BCFGL", + "BCFGM", + "BCFGN", + "BCFGP", + "BCFHI", + "BCFHJ", + "BCFHL", + "BCFHM", + "BCFHN", + "BCFHP", + "BCFIJ", + "BCFIL", + "BCFIM", + "BCFIN", + "BCFIP", + "BCFJL", + "BCFJM", + "BCFJN", + "BCFJP", + "BCFLM", + "BCFLN", + "BCFLP", + "BCFMN", + "BCFMP", + "BCFNP", + "BCGHI", + "BCGHJ", + "BCGHL", + "BCGHM", + "BCGHN", + "BCGHP", + "BCGIJ", + "BCGIL", + "BCGIM", + "BCGIN", + "BCGIP", + "BCGJL", + "BCGJM", + "BCGJN", + "BCGJP", + "BCGLM", + "BCGLN", + "BCGLP", + "BCGMN", + "BCGMP", + "BCGNP", + "BCHIJ", + "BCHIL", + "BCHIM", + "BCHIN", + "BCHIP", + "BCHJL", + "BCHJM", + "BCHJN", + "BCHJP", + "BCHLM", + "BCHLN", + "BCHLP", + "BCHMN", + "BCHMP", + "BCHNP", + "BCIJL", + "BCIJM", + "BCIJN", + "BCIJP", + "BCILM", + "BCILN", + "BCILP", + "BCIMN", + "BCIMP", + "BCINP", + "BCJLM", + "BCJLN", + "BCJLP", + "BCJMN", + "BCJMP", + "BCJNP", + "BCLMN", + "BCLMP", + "BCLNP", + "BCMNP", + "BEFGH", + "BEFGI", + "BEFGJ", + "BEFGL", + "BEFGM", + "BEFGN", + "BEFGP", + "BEFHI", + "BEFHJ", + "BEFHL", + "BEFHM", + "BEFHN", + "BEFHP", + "BEFIJ", + "BEFIL", + "BEFIM", + "BEFIN", + "BEFIP", + "BEFJL", + "BEFJM", + "BEFJN", + "BEFJP", + "BEFLM", + "BEFLN", + "BEFLP", + "BEFMN", + "BEFMP", + "BEFNP", + "BEGHI", + "BEGHJ", + "BEGHL", + "BEGHM", + "BEGHN", + "BEGHP", + "BEGIJ", + "BEGIL", + "BEGIM", + "BEGIN", + "BEGIP", + "BEGJL", + "BEGJM", + "BEGJN", + "BEGJP", + "BEGLM", + "BEGLN", + "BEGLP", + "BEGMN", + "BEGMP", + "BEGNP", + "BEHIJ", + "BEHIL", + "BEHIM", + "BEHIN", + "BEHIP", + "BEHJL", + "BEHJM", + "BEHJN", + "BEHJP", + "BEHLM", + "BEHLN", + "BEHLP", + "BEHMN", + "BEHMP", + "BEHNP", + "BEIJL", + "BEIJM", + "BEIJN", + "BEIJP", + "BEILM", + "BEILN", + "BEILP", + "BEIMN", + "BEIMP", + "BEINP", + "BEJLM", + "BEJLN", + "BEJLP", + "BEJMN", + "BEJMP", + "BEJNP", + "BELMN", + "BELMP", + "BELNP", + "BEMNP", + "BFGHI", + "BFGHJ", + "BFGHL", + "BFGHM", + "BFGHN", + "BFGHP", + "BFGIJ", + "BFGIL", + "BFGIM", + "BFGIN", + "BFGIP", + "BFGJL", + "BFGJM", + "BFGJN", + "BFGJP", + "BFGLM", + "BFGLN", + "BFGLP", + "BFGMN", + "BFGMP", + "BFGNP", + "BFHIJ", + "BFHIL", + "BFHIM", + "BFHIN", + "BFHIP", + "BFHJL", + "BFHJM", + "BFHJN", + "BFHJP", + "BFHLM", + "BFHLN", + "BFHLP", + "BFHMN", + "BFHMP", + "BFHNP", + "BFIJL", + "BFIJM", + "BFIJN", + "BFIJP", + "BFILM", + "BFILN", + "BFILP", + "BFIMN", + "BFIMP", + "BFINP", + "BFJLM", + "BFJLN", + "BFJLP", + "BFJMN", + "BFJMP", + "BFJNP", + "BFLMN", + "BFLMP", + "BFLNP", + "BFMNP", + "BGHIJ", + "BGHIL", + "BGHIM", + "BGHIN", + "BGHIP", + "BGHJL", + "BGHJM", + "BGHJN", + "BGHJP", + "BGHLM", + "BGHLN", + "BGHLP", + "BGHMN", + "BGHMP", + "BGHNP", + "BGIJL", + "BGIJM", + "BGIJN", + "BGIJP", + "BGILM", + "BGILN", + "BGILP", + "BGIMN", + "BGIMP", + "BGINP", + "BGJLM", + "BGJLN", + "BGJLP", + "BGJMN", + "BGJMP", + "BGJNP", + "BGLMN", + "BGLMP", + "BGLNP", + "BGMNP", + "BHIJL", + "BHIJM", + "BHIJN", + "BHIJP", + "BHILM", + "BHILN", + "BHILP", + "BHIMN", + "BHIMP", + "BHINP", + "BHJLM", + "BHJLN", + "BHJLP", + "BHJMN", + "BHJMP", + "BHJNP", + "BHLMN", + "BHLMP", + "BHLNP", + "BHMNP", + "BIJLM", + "BIJLN", + "BIJLP", + "BIJMN", + "BIJMP", + "BIJNP", + "BILMN", + "BILMP", + "BILNP", + "BIMNP", + "BJLMN", + "BJLMP", + "BJLNP", + "BJMNP", + "BLMNP", + "CEFGH", + "CEFGI", + "CEFGJ", + "CEFGL", + "CEFGM", + "CEFGN", + "CEFGP", + "CEFHI", + "CEFHJ", + "CEFHL", + "CEFHM", + "CEFHN", + "CEFHP", + "CEFIJ", + "CEFIL", + "CEFIM", + "CEFIN", + "CEFIP", + "CEFJL", + "CEFJM", + "CEFJN", + "CEFJP", + "CEFLM", + "CEFLN", + "CEFLP", + "CEFMN", + "CEFMP", + "CEFNP", + "CEGHI", + "CEGHJ", + "CEGHL", + "CEGHM", + "CEGHN", + "CEGHP", + "CEGIJ", + "CEGIL", + "CEGIM", + "CEGIN", + "CEGIP", + "CEGJL", + "CEGJM", + "CEGJN", + "CEGJP", + "CEGLM", + "CEGLN", + "CEGLP", + "CEGMN", + "CEGMP", + "CEGNP", + "CEHIJ", + "CEHIL", + "CEHIM", + "CEHIN", + "CEHIP", + "CEHJL", + "CEHJM", + "CEHJN", + "CEHJP", + "CEHLM", + "CEHLN", + "CEHLP", + "CEHMN", + "CEHMP", + "CEHNP", + "CEIJL", + "CEIJM", + "CEIJN", + "CEIJP", + "CEILM", + "CEILN", + "CEILP", + "CEIMN", + "CEIMP", + "CEINP", + "CEJLM", + "CEJLN", + "CEJLP", + "CEJMN", + "CEJMP", + "CEJNP", + "CELMN", + "CELMP", + "CELNP", + "CEMNP", + "CFGHI", + "CFGHJ", + "CFGHL", + "CFGHM", + "CFGHN", + "CFGHP", + "CFGIJ", + "CFGIL", + "CFGIM", + "CFGIN", + "CFGIP", + "CFGJL", + "CFGJM", + "CFGJN", + "CFGJP", + "CFGLM", + "CFGLN", + "CFGLP", + "CFGMN", + "CFGMP", + "CFGNP", + "CFHIJ", + "CFHIL", + "CFHIM", + "CFHIN", + "CFHIP", + "CFHJL", + "CFHJM", + "CFHJN", + "CFHJP", + "CFHLM", + "CFHLN", + "CFHLP", + "CFHMN", + "CFHMP", + "CFHNP", + "CFIJL", + "CFIJM", + "CFIJN", + "CFIJP", + "CFILM", + "CFILN", + "CFILP", + "CFIMN", + "CFIMP", + "CFINP", + "CFJLM", + "CFJLN", + "CFJLP", + "CFJMN", + "CFJMP", + "CFJNP", + "CFLMN", + "CFLMP", + "CFLNP", + "CFMNP", + "CGHIJ", + "CGHIL", + "CGHIM", + "CGHIN", + "CGHIP", + "CGHJL", + "CGHJM", + "CGHJN", + "CGHJP", + "CGHLM", + "CGHLN", + "CGHLP", + "CGHMN", + "CGHMP", + "CGHNP", + "CGIJL", + "CGIJM", + "CGIJN", + "CGIJP", + "CGILM", + "CGILN", + "CGILP", + "CGIMN", + "CGIMP", + "CGINP", + "CGJLM", + "CGJLN", + "CGJLP", + "CGJMN", + "CGJMP", + "CGJNP", + "CGLMN", + "CGLMP", + "CGLNP", + "CGMNP", + "CHIJL", + "CHIJM", + "CHIJN", + "CHIJP", + "CHILM", + "CHILN", + "CHILP", + "CHIMN", + "CHIMP", + "CHINP", + "CHJLM", + "CHJLN", + "CHJLP", + "CHJMN", + "CHJMP", + "CHJNP", + "CHLMN", + "CHLMP", + "CHLNP", + "CHMNP", + "CIJLM", + "CIJLN", + "CIJLP", + "CIJMN", + "CIJMP", + "CIJNP", + "CILMN", + "CILMP", + "CILNP", + "CIMNP", + "CJLMN", + "CJLMP", + "CJLNP", + "CJMNP", + "CLMNP", + "EFGHI", + "EFGHJ", + "EFGHL", + "EFGHM", + "EFGHN", + "EFGHP", + "EFGIJ", + "EFGIL", + "EFGIM", + "EFGIN", + "EFGIP", + "EFGJL", + "EFGJM", + "EFGJN", + "EFGJP", + "EFGLM", + "EFGLN", + "EFGLP", + "EFGMN", + "EFGMP", + "EFGNP", + "EFHIJ", + "EFHIL", + "EFHIM", + "EFHIN", + "EFHIP", + "EFHJL", + "EFHJM", + "EFHJN", + "EFHJP", + "EFHLM", + "EFHLN", + "EFHLP", + "EFHMN", + "EFHMP", + "EFHNP", + "EFIJL", + "EFIJM", + "EFIJN", + "EFIJP", + "EFILM", + "EFILN", + "EFILP", + "EFIMN", + "EFIMP", + "EFINP", + "EFJLM", + "EFJLN", + "EFJLP", + "EFJMN", + "EFJMP", + "EFJNP", + "EFLMN", + "EFLMP", + "EFLNP", + "EFMNP", + "EGHIJ", + "EGHIL", + "EGHIM", + "EGHIN", + "EGHIP", + "EGHJL", + "EGHJM", + "EGHJN", + "EGHJP", + "EGHLM", + "EGHLN", + "EGHLP", + "EGHMN", + "EGHMP", + "EGHNP", + "EGIJL", + "EGIJM", + "EGIJN", + "EGIJP", + "EGILM", + "EGILN", + "EGILP", + "EGIMN", + "EGIMP", + "EGINP", + "EGJLM", + "EGJLN", + "EGJLP", + "EGJMN", + "EGJMP", + "EGJNP", + "EGLMN", + "EGLMP", + "EGLNP", + "EGMNP", + "EHIJL", + "EHIJM", + "EHIJN", + "EHIJP", + "EHILM", + "EHILN", + "EHILP", + "EHIMN", + "EHIMP", + "EHINP", + "EHJLM", + "EHJLN", + "EHJLP", + "EHJMN", + "EHJMP", + "EHJNP", + "EHLMN", + "EHLMP", + "EHLNP", + "EHMNP", + "EIJLM", + "EIJLN", + "EIJLP", + "EIJMN", + "EIJMP", + "EIJNP", + "EILMN", + "EILMP", + "EILNP", + "EIMNP", + "EJLMN", + "EJLMP", + "EJLNP", + "EJMNP", + "ELMNP", + "FGHIJ", + "FGHIL", + "FGHIM", + "FGHIN", + "FGHIP", + "FGHJL", + "FGHJM", + "FGHJN", + "FGHJP", + "FGHLM", + "FGHLN", + "FGHLP", + "FGHMN", + "FGHMP", + "FGHNP", + "FGIJL", + "FGIJM", + "FGIJN", + "FGIJP", + "FGILM", + "FGILN", + "FGILP", + "FGIMN", + "FGIMP", + "FGINP", + "FGJLM", + "FGJLN", + "FGJLP", + "FGJMN", + "FGJMP", + "FGJNP", + "FGLMN", + "FGLMP", + "FGLNP", + "FGMNP", + "FHIJL", + "FHIJM", + "FHIJN", + "FHIJP", + "FHILM", + "FHILN", + "FHILP", + "FHIMN", + "FHIMP", + "FHINP", + "FHJLM", + "FHJLN", + "FHJLP", + "FHJMN", + "FHJMP", + "FHJNP", + "FHLMN", + "FHLMP", + "FHLNP", + "FHMNP", + "FIJLM", + "FIJLN", + "FIJLP", + "FIJMN", + "FIJMP", + "FIJNP", + "FILMN", + "FILMP", + "FILNP", + "FIMNP", + "FJLMN", + "FJLMP", + "FJLNP", + "FJMNP", + "FLMNP", + "GHIJL", + "GHIJM", + "GHIJN", + "GHIJP", + "GHILM", + "GHILN", + "GHILP", + "GHIMN", + "GHIMP", + "GHINP", + "GHJLM", + "GHJLN", + "GHJLP", + "GHJMN", + "GHJMP", + "GHJNP", + "GHLMN", + "GHLMP", + "GHLNP", + "GHMNP", + "GIJLM", + "GIJLN", + "GIJLP", + "GIJMN", + "GIJMP", + "GIJNP", + "GILMN", + "GILMP", + "GILNP", + "GIMNP", + "GJLMN", + "GJLMP", + "GJLNP", + "GJMNP", + "GLMNP", + "HIJLM", + "HIJLN", + "HIJLP", + "HIJMN", + "HIJMP", + "HIJNP", + "HILMN", + "HILMP", + "HILNP", + "HIMNP", + "HJLMN", + "HJLMP", + "HJLNP", + "HJMNP", + "HLMNP", + "IJLMN", + "IJLMP", + "IJLNP", + "IJMNP", + "ILMNP", + "JLMNP", + "ABCEFG", + "ABCEFH", + "ABCEFI", + "ABCEFJ", + "ABCEFL", + "ABCEFM", + "ABCEFN", + "ABCEFP", + "ABCEGH", + "ABCEGI", + "ABCEGJ", + "ABCEGL", + "ABCEGM", + "ABCEGN", + "ABCEGP", + "ABCEHI", + "ABCEHJ", + "ABCEHL", + "ABCEHM", + "ABCEHN", + "ABCEHP", + "ABCEIJ", + "ABCEIL", + "ABCEIM", + "ABCEIN", + "ABCEIP", + "ABCEJL", + "ABCEJM", + "ABCEJN", + "ABCEJP", + "ABCELM", + "ABCELN", + "ABCELP", + "ABCEMN", + "ABCEMP", + "ABCENP", + "ABCFGH", + "ABCFGI", + "ABCFGJ", + "ABCFGL", + "ABCFGM", + "ABCFGN", + "ABCFGP", + "ABCFHI", + "ABCFHJ", + "ABCFHL", + "ABCFHM", + "ABCFHN", + "ABCFHP", + "ABCFIJ", + "ABCFIL", + "ABCFIM", + "ABCFIN", + "ABCFIP", + "ABCFJL", + "ABCFJM", + "ABCFJN", + "ABCFJP", + "ABCFLM", + "ABCFLN", + "ABCFLP", + "ABCFMN", + "ABCFMP", + "ABCFNP", + "ABCGHI", + "ABCGHJ", + "ABCGHL", + "ABCGHM", + "ABCGHN", + "ABCGHP", + "ABCGIJ", + "ABCGIL", + "ABCGIM", + "ABCGIN", + "ABCGIP", + "ABCGJL", + "ABCGJM", + "ABCGJN", + "ABCGJP", + "ABCGLM", + "ABCGLN", + "ABCGLP", + "ABCGMN", + "ABCGMP", + "ABCGNP", + "ABCHIJ", + "ABCHIL", + "ABCHIM", + "ABCHIN", + "ABCHIP", + "ABCHJL", + "ABCHJM", + "ABCHJN", + "ABCHJP", + "ABCHLM", + "ABCHLN", + "ABCHLP", + "ABCHMN", + "ABCHMP", + "ABCHNP", + "ABCIJL", + "ABCIJM", + "ABCIJN", + "ABCIJP", + "ABCILM", + "ABCILN", + "ABCILP", + "ABCIMN", + "ABCIMP", + "ABCINP", + "ABCJLM", + "ABCJLN", + "ABCJLP", + "ABCJMN", + "ABCJMP", + "ABCJNP", + "ABCLMN", + "ABCLMP", + "ABCLNP", + "ABCMNP", + "ABEFGH", + "ABEFGI", + "ABEFGJ", + "ABEFGL", + "ABEFGM", + "ABEFGN", + "ABEFGP", + "ABEFHI", + "ABEFHJ", + "ABEFHL", + "ABEFHM", + "ABEFHN", + "ABEFHP", + "ABEFIJ", + "ABEFIL", + "ABEFIM", + "ABEFIN", + "ABEFIP", + "ABEFJL", + "ABEFJM", + "ABEFJN", + "ABEFJP", + "ABEFLM", + "ABEFLN", + "ABEFLP", + "ABEFMN", + "ABEFMP", + "ABEFNP", + "ABEGHI", + "ABEGHJ", + "ABEGHL", + "ABEGHM", + "ABEGHN", + "ABEGHP", + "ABEGIJ", + "ABEGIL", + "ABEGIM", + "ABEGIN", + "ABEGIP", + "ABEGJL", + "ABEGJM", + "ABEGJN", + "ABEGJP", + "ABEGLM", + "ABEGLN", + "ABEGLP", + "ABEGMN", + "ABEGMP", + "ABEGNP", + "ABEHIJ", + "ABEHIL", + "ABEHIM", + "ABEHIN", + "ABEHIP", + "ABEHJL", + "ABEHJM", + "ABEHJN", + "ABEHJP", + "ABEHLM", + "ABEHLN", + "ABEHLP", + "ABEHMN", + "ABEHMP", + "ABEHNP", + "ABEIJL", + "ABEIJM", + "ABEIJN", + "ABEIJP", + "ABEILM", + "ABEILN", + "ABEILP", + "ABEIMN", + "ABEIMP", + "ABEINP", + "ABEJLM", + "ABEJLN", + "ABEJLP", + "ABEJMN", + "ABEJMP", + "ABEJNP", + "ABELMN", + "ABELMP", + "ABELNP", + "ABEMNP", + "ABFGHI", + "ABFGHJ", + "ABFGHL", + "ABFGHM", + "ABFGHN", + "ABFGHP", + "ABFGIJ", + "ABFGIL", + "ABFGIM", + "ABFGIN", + "ABFGIP", + "ABFGJL", + "ABFGJM", + "ABFGJN", + "ABFGJP", + "ABFGLM", + "ABFGLN", + "ABFGLP", + "ABFGMN", + "ABFGMP", + "ABFGNP", + "ABFHIJ", + "ABFHIL", + "ABFHIM", + "ABFHIN", + "ABFHIP", + "ABFHJL", + "ABFHJM", + "ABFHJN", + "ABFHJP", + "ABFHLM", + "ABFHLN", + "ABFHLP", + "ABFHMN", + "ABFHMP", + "ABFHNP", + "ABFIJL", + "ABFIJM", + "ABFIJN", + "ABFIJP", + "ABFILM", + "ABFILN", + "ABFILP", + "ABFIMN", + "ABFIMP", + "ABFINP", + "ABFJLM", + "ABFJLN", + "ABFJLP", + "ABFJMN", + "ABFJMP", + "ABFJNP", + "ABFLMN", + "ABFLMP", + "ABFLNP", + "ABFMNP", + "ABGHIJ", + "ABGHIL", + "ABGHIM", + "ABGHIN", + "ABGHIP", + "ABGHJL", + "ABGHJM", + "ABGHJN", + "ABGHJP", + "ABGHLM", + "ABGHLN", + "ABGHLP", + "ABGHMN", + "ABGHMP", + "ABGHNP", + "ABGIJL", + "ABGIJM", + "ABGIJN", + "ABGIJP", + "ABGILM", + "ABGILN", + "ABGILP", + "ABGIMN", + "ABGIMP", + "ABGINP", + "ABGJLM", + "ABGJLN", + "ABGJLP", + "ABGJMN", + "ABGJMP", + "ABGJNP", + "ABGLMN", + "ABGLMP", + "ABGLNP", + "ABGMNP", + "ABHIJL", + "ABHIJM", + "ABHIJN", + "ABHIJP", + "ABHILM", + "ABHILN", + "ABHILP", + "ABHIMN", + "ABHIMP", + "ABHINP", + "ABHJLM", + "ABHJLN", + "ABHJLP", + "ABHJMN", + "ABHJMP", + "ABHJNP", + "ABHLMN", + "ABHLMP", + "ABHLNP", + "ABHMNP", + "ABIJLM", + "ABIJLN", + "ABIJLP", + "ABIJMN", + "ABIJMP", + "ABIJNP", + "ABILMN", + "ABILMP", + "ABILNP", + "ABIMNP", + "ABJLMN", + "ABJLMP", + "ABJLNP", + "ABJMNP", + "ABLMNP", + "ACEFGH", + "ACEFGI", + "ACEFGJ", + "ACEFGL", + "ACEFGM", + "ACEFGN", + "ACEFGP", + "ACEFHI", + "ACEFHJ", + "ACEFHL", + "ACEFHM", + "ACEFHN", + "ACEFHP", + "ACEFIJ", + "ACEFIL", + "ACEFIM", + "ACEFIN", + "ACEFIP", + "ACEFJL", + "ACEFJM", + "ACEFJN", + "ACEFJP", + "ACEFLM", + "ACEFLN", + "ACEFLP", + "ACEFMN", + "ACEFMP", + "ACEFNP", + "ACEGHI", + "ACEGHJ", + "ACEGHL", + "ACEGHM", + "ACEGHN", + "ACEGHP", + "ACEGIJ", + "ACEGIL", + "ACEGIM", + "ACEGIN", + "ACEGIP", + "ACEGJL", + "ACEGJM", + "ACEGJN", + "ACEGJP", + "ACEGLM", + "ACEGLN", + "ACEGLP", + "ACEGMN", + "ACEGMP", + "ACEGNP", + "ACEHIJ", + "ACEHIL", + "ACEHIM", + "ACEHIN", + "ACEHIP", + "ACEHJL", + "ACEHJM", + "ACEHJN", + "ACEHJP", + "ACEHLM", + "ACEHLN", + "ACEHLP", + "ACEHMN", + "ACEHMP", + "ACEHNP", + "ACEIJL", + "ACEIJM", + "ACEIJN", + "ACEIJP", + "ACEILM", + "ACEILN", + "ACEILP", + "ACEIMN", + "ACEIMP", + "ACEINP", + "ACEJLM", + "ACEJLN", + "ACEJLP", + "ACEJMN", + "ACEJMP", + "ACEJNP", + "ACELMN", + "ACELMP", + "ACELNP", + "ACEMNP", + "ACFGHI", + "ACFGHJ", + "ACFGHL", + "ACFGHM", + "ACFGHN", + "ACFGHP", + "ACFGIJ", + "ACFGIL", + "ACFGIM", + "ACFGIN", + "ACFGIP", + "ACFGJL", + "ACFGJM", + "ACFGJN", + "ACFGJP", + "ACFGLM", + "ACFGLN", + "ACFGLP", + "ACFGMN", + "ACFGMP", + "ACFGNP", + "ACFHIJ", + "ACFHIL", + "ACFHIM", + "ACFHIN", + "ACFHIP", + "ACFHJL", + "ACFHJM", + "ACFHJN", + "ACFHJP", + "ACFHLM", + "ACFHLN", + "ACFHLP", + "ACFHMN", + "ACFHMP", + "ACFHNP", + "ACFIJL", + "ACFIJM", + "ACFIJN", + "ACFIJP", + "ACFILM", + "ACFILN", + "ACFILP", + "ACFIMN", + "ACFIMP", + "ACFINP", + "ACFJLM", + "ACFJLN", + "ACFJLP", + "ACFJMN", + "ACFJMP", + "ACFJNP", + "ACFLMN", + "ACFLMP", + "ACFLNP", + "ACFMNP", + "ACGHIJ", + "ACGHIL", + "ACGHIM", + "ACGHIN", + "ACGHIP", + "ACGHJL", + "ACGHJM", + "ACGHJN", + "ACGHJP", + "ACGHLM", + "ACGHLN", + "ACGHLP", + "ACGHMN", + "ACGHMP", + "ACGHNP", + "ACGIJL", + "ACGIJM", + "ACGIJN", + "ACGIJP", + "ACGILM", + "ACGILN", + "ACGILP", + "ACGIMN", + "ACGIMP", + "ACGINP", + "ACGJLM", + "ACGJLN", + "ACGJLP", + "ACGJMN", + "ACGJMP", + "ACGJNP", + "ACGLMN", + "ACGLMP", + "ACGLNP", + "ACGMNP", + "ACHIJL", + "ACHIJM", + "ACHIJN", + "ACHIJP", + "ACHILM", + "ACHILN", + "ACHILP", + "ACHIMN", + "ACHIMP", + "ACHINP", + "ACHJLM", + "ACHJLN", + "ACHJLP", + "ACHJMN", + "ACHJMP", + "ACHJNP", + "ACHLMN", + "ACHLMP", + "ACHLNP", + "ACHMNP", + "ACIJLM", + "ACIJLN", + "ACIJLP", + "ACIJMN", + "ACIJMP", + "ACIJNP", + "ACILMN", + "ACILMP", + "ACILNP", + "ACIMNP", + "ACJLMN", + "ACJLMP", + "ACJLNP", + "ACJMNP", + "ACLMNP", + "AEFGHI", + "AEFGHJ", + "AEFGHL", + "AEFGHM", + "AEFGHN", + "AEFGHP", + "AEFGIJ", + "AEFGIL", + "AEFGIM", + "AEFGIN", + "AEFGIP", + "AEFGJL", + "AEFGJM", + "AEFGJN", + "AEFGJP", + "AEFGLM", + "AEFGLN", + "AEFGLP", + "AEFGMN", + "AEFGMP", + "AEFGNP", + "AEFHIJ", + "AEFHIL", + "AEFHIM", + "AEFHIN", + "AEFHIP", + "AEFHJL", + "AEFHJM", + "AEFHJN", + "AEFHJP", + "AEFHLM", + "AEFHLN", + "AEFHLP", + "AEFHMN", + "AEFHMP", + "AEFHNP", + "AEFIJL", + "AEFIJM", + "AEFIJN", + "AEFIJP", + "AEFILM", + "AEFILN", + "AEFILP", + "AEFIMN", + "AEFIMP", + "AEFINP", + "AEFJLM", + "AEFJLN", + "AEFJLP", + "AEFJMN", + "AEFJMP", + "AEFJNP", + "AEFLMN", + "AEFLMP", + "AEFLNP", + "AEFMNP", + "AEGHIJ", + "AEGHIL", + "AEGHIM", + "AEGHIN", + "AEGHIP", + "AEGHJL", + "AEGHJM", + "AEGHJN", + "AEGHJP", + "AEGHLM", + "AEGHLN", + "AEGHLP", + "AEGHMN", + "AEGHMP", + "AEGHNP", + "AEGIJL", + "AEGIJM", + "AEGIJN", + "AEGIJP", + "AEGILM", + "AEGILN", + "AEGILP", + "AEGIMN", + "AEGIMP", + "AEGINP", + "AEGJLM", + "AEGJLN", + "AEGJLP", + "AEGJMN", + "AEGJMP", + "AEGJNP", + "AEGLMN", + "AEGLMP", + "AEGLNP", + "AEGMNP", + "AEHIJL", + "AEHIJM", + "AEHIJN", + "AEHIJP", + "AEHILM", + "AEHILN", + "AEHILP", + "AEHIMN", + "AEHIMP", + "AEHINP", + "AEHJLM", + "AEHJLN", + "AEHJLP", + "AEHJMN", + "AEHJMP", + "AEHJNP", + "AEHLMN", + "AEHLMP", + "AEHLNP", + "AEHMNP", + "AEIJLM", + "AEIJLN", + "AEIJLP", + "AEIJMN", + "AEIJMP", + "AEIJNP", + "AEILMN", + "AEILMP", + "AEILNP", + "AEIMNP", + "AEJLMN", + "AEJLMP", + "AEJLNP", + "AEJMNP", + "AELMNP", + "AFGHIJ", + "AFGHIL", + "AFGHIM", + "AFGHIN", + "AFGHIP", + "AFGHJL", + "AFGHJM", + "AFGHJN", + "AFGHJP", + "AFGHLM", + "AFGHLN", + "AFGHLP", + "AFGHMN", + "AFGHMP", + "AFGHNP", + "AFGIJL", + "AFGIJM", + "AFGIJN", + "AFGIJP", + "AFGILM", + "AFGILN", + "AFGILP", + "AFGIMN", + "AFGIMP", + "AFGINP", + "AFGJLM", + "AFGJLN", + "AFGJLP", + "AFGJMN", + "AFGJMP", + "AFGJNP", + "AFGLMN", + "AFGLMP", + "AFGLNP", + "AFGMNP", + "AFHIJL", + "AFHIJM", + "AFHIJN", + "AFHIJP", + "AFHILM", + "AFHILN", + "AFHILP", + "AFHIMN", + "AFHIMP", + "AFHINP", + "AFHJLM", + "AFHJLN", + "AFHJLP", + "AFHJMN", + "AFHJMP", + "AFHJNP", + "AFHLMN", + "AFHLMP", + "AFHLNP", + "AFHMNP", + "AFIJLM", + "AFIJLN", + "AFIJLP", + "AFIJMN", + "AFIJMP", + "AFIJNP", + "AFILMN", + "AFILMP", + "AFILNP", + "AFIMNP", + "AFJLMN", + "AFJLMP", + "AFJLNP", + "AFJMNP", + "AFLMNP", + "AGHIJL", + "AGHIJM", + "AGHIJN", + "AGHIJP", + "AGHILM", + "AGHILN", + "AGHILP", + "AGHIMN", + "AGHIMP", + "AGHINP", + "AGHJLM", + "AGHJLN", + "AGHJLP", + "AGHJMN", + "AGHJMP", + "AGHJNP", + "AGHLMN", + "AGHLMP", + "AGHLNP", + "AGHMNP", + "AGIJLM", + "AGIJLN", + "AGIJLP", + "AGIJMN", + "AGIJMP", + "AGIJNP", + "AGILMN", + "AGILMP", + "AGILNP", + "AGIMNP", + "AGJLMN", + "AGJLMP", + "AGJLNP", + "AGJMNP", + "AGLMNP", + "AHIJLM", + "AHIJLN", + "AHIJLP", + "AHIJMN", + "AHIJMP", + "AHIJNP", + "AHILMN", + "AHILMP", + "AHILNP", + "AHIMNP", + "AHJLMN", + "AHJLMP", + "AHJLNP", + "AHJMNP", + "AHLMNP", + "AIJLMN", + "AIJLMP", + "AIJLNP", + "AIJMNP", + "AILMNP", + "AJLMNP", + "BCEFGH", + "BCEFGI", + "BCEFGJ", + "BCEFGL", + "BCEFGM", + "BCEFGN", + "BCEFGP", + "BCEFHI", + "BCEFHJ", + "BCEFHL", + "BCEFHM", + "BCEFHN", + "BCEFHP", + "BCEFIJ", + "BCEFIL", + "BCEFIM", + "BCEFIN", + "BCEFIP", + "BCEFJL", + "BCEFJM", + "BCEFJN", + "BCEFJP", + "BCEFLM", + "BCEFLN", + "BCEFLP", + "BCEFMN", + "BCEFMP", + "BCEFNP", + "BCEGHI", + "BCEGHJ", + "BCEGHL", + "BCEGHM", + "BCEGHN", + "BCEGHP", + "BCEGIJ", + "BCEGIL", + "BCEGIM", + "BCEGIN", + "BCEGIP", + "BCEGJL", + "BCEGJM", + "BCEGJN", + "BCEGJP", + "BCEGLM", + "BCEGLN", + "BCEGLP", + "BCEGMN", + "BCEGMP", + "BCEGNP", + "BCEHIJ", + "BCEHIL", + "BCEHIM", + "BCEHIN", + "BCEHIP", + "BCEHJL", + "BCEHJM", + "BCEHJN", + "BCEHJP", + "BCEHLM", + "BCEHLN", + "BCEHLP", + "BCEHMN", + "BCEHMP", + "BCEHNP", + "BCEIJL", + "BCEIJM", + "BCEIJN", + "BCEIJP", + "BCEILM", + "BCEILN", + "BCEILP", + "BCEIMN", + "BCEIMP", + "BCEINP", + "BCEJLM", + "BCEJLN", + "BCEJLP", + "BCEJMN", + "BCEJMP", + "BCEJNP", + "BCELMN", + "BCELMP", + "BCELNP", + "BCEMNP", + "BCFGHI", + "BCFGHJ", + "BCFGHL", + "BCFGHM", + "BCFGHN", + "BCFGHP", + "BCFGIJ", + "BCFGIL", + "BCFGIM", + "BCFGIN", + "BCFGIP", + "BCFGJL", + "BCFGJM", + "BCFGJN", + "BCFGJP", + "BCFGLM", + "BCFGLN", + "BCFGLP", + "BCFGMN", + "BCFGMP", + "BCFGNP", + "BCFHIJ", + "BCFHIL", + "BCFHIM", + "BCFHIN", + "BCFHIP", + "BCFHJL", + "BCFHJM", + "BCFHJN", + "BCFHJP", + "BCFHLM", + "BCFHLN", + "BCFHLP", + "BCFHMN", + "BCFHMP", + "BCFHNP", + "BCFIJL", + "BCFIJM", + "BCFIJN", + "BCFIJP", + "BCFILM", + "BCFILN", + "BCFILP", + "BCFIMN", + "BCFIMP", + "BCFINP", + "BCFJLM", + "BCFJLN", + "BCFJLP", + "BCFJMN", + "BCFJMP", + "BCFJNP", + "BCFLMN", + "BCFLMP", + "BCFLNP", + "BCFMNP", + "BCGHIJ", + "BCGHIL", + "BCGHIM", + "BCGHIN", + "BCGHIP", + "BCGHJL", + "BCGHJM", + "BCGHJN", + "BCGHJP", + "BCGHLM", + "BCGHLN", + "BCGHLP", + "BCGHMN", + "BCGHMP", + "BCGHNP", + "BCGIJL", + "BCGIJM", + "BCGIJN", + "BCGIJP", + "BCGILM", + "BCGILN", + "BCGILP", + "BCGIMN", + "BCGIMP", + "BCGINP", + "BCGJLM", + "BCGJLN", + "BCGJLP", + "BCGJMN", + "BCGJMP", + "BCGJNP", + "BCGLMN", + "BCGLMP", + "BCGLNP", + "BCGMNP", + "BCHIJL", + "BCHIJM", + "BCHIJN", + "BCHIJP", + "BCHILM", + "BCHILN", + "BCHILP", + "BCHIMN", + "BCHIMP", + "BCHINP", + "BCHJLM", + "BCHJLN", + "BCHJLP", + "BCHJMN", + "BCHJMP", + "BCHJNP", + "BCHLMN", + "BCHLMP", + "BCHLNP", + "BCHMNP", + "BCIJLM", + "BCIJLN", + "BCIJLP", + "BCIJMN", + "BCIJMP", + "BCIJNP", + "BCILMN", + "BCILMP", + "BCILNP", + "BCIMNP", + "BCJLMN", + "BCJLMP", + "BCJLNP", + "BCJMNP", + "BCLMNP", + "BEFGHI", + "BEFGHJ", + "BEFGHL", + "BEFGHM", + "BEFGHN", + "BEFGHP", + "BEFGIJ", + "BEFGIL", + "BEFGIM", + "BEFGIN", + "BEFGIP", + "BEFGJL", + "BEFGJM", + "BEFGJN", + "BEFGJP", + "BEFGLM", + "BEFGLN", + "BEFGLP", + "BEFGMN", + "BEFGMP", + "BEFGNP", + "BEFHIJ", + "BEFHIL", + "BEFHIM", + "BEFHIN", + "BEFHIP", + "BEFHJL", + "BEFHJM", + "BEFHJN", + "BEFHJP", + "BEFHLM", + "BEFHLN", + "BEFHLP", + "BEFHMN", + "BEFHMP", + "BEFHNP", + "BEFIJL", + "BEFIJM", + "BEFIJN", + "BEFIJP", + "BEFILM", + "BEFILN", + "BEFILP", + "BEFIMN", + "BEFIMP", + "BEFINP", + "BEFJLM", + "BEFJLN", + "BEFJLP", + "BEFJMN", + "BEFJMP", + "BEFJNP", + "BEFLMN", + "BEFLMP", + "BEFLNP", + "BEFMNP", + "BEGHIJ", + "BEGHIL", + "BEGHIM", + "BEGHIN", + "BEGHIP", + "BEGHJL", + "BEGHJM", + "BEGHJN", + "BEGHJP", + "BEGHLM", + "BEGHLN", + "BEGHLP", + "BEGHMN", + "BEGHMP", + "BEGHNP", + "BEGIJL", + "BEGIJM", + "BEGIJN", + "BEGIJP", + "BEGILM", + "BEGILN", + "BEGILP", + "BEGIMN", + "BEGIMP", + "BEGINP", + "BEGJLM", + "BEGJLN", + "BEGJLP", + "BEGJMN", + "BEGJMP", + "BEGJNP", + "BEGLMN", + "BEGLMP", + "BEGLNP", + "BEGMNP", + "BEHIJL", + "BEHIJM", + "BEHIJN", + "BEHIJP", + "BEHILM", + "BEHILN", + "BEHILP", + "BEHIMN", + "BEHIMP", + "BEHINP", + "BEHJLM", + "BEHJLN", + "BEHJLP", + "BEHJMN", + "BEHJMP", + "BEHJNP", + "BEHLMN", + "BEHLMP", + "BEHLNP", + "BEHMNP", + "BEIJLM", + "BEIJLN", + "BEIJLP", + "BEIJMN", + "BEIJMP", + "BEIJNP", + "BEILMN", + "BEILMP", + "BEILNP", + "BEIMNP", + "BEJLMN", + "BEJLMP", + "BEJLNP", + "BEJMNP", + "BELMNP", + "BFGHIJ", + "BFGHIL", + "BFGHIM", + "BFGHIN", + "BFGHIP", + "BFGHJL", + "BFGHJM", + "BFGHJN", + "BFGHJP", + "BFGHLM", + "BFGHLN", + "BFGHLP", + "BFGHMN", + "BFGHMP", + "BFGHNP", + "BFGIJL", + "BFGIJM", + "BFGIJN", + "BFGIJP", + "BFGILM", + "BFGILN", + "BFGILP", + "BFGIMN", + "BFGIMP", + "BFGINP", + "BFGJLM", + "BFGJLN", + "BFGJLP", + "BFGJMN", + "BFGJMP", + "BFGJNP", + "BFGLMN", + "BFGLMP", + "BFGLNP", + "BFGMNP", + "BFHIJL", + "BFHIJM", + "BFHIJN", + "BFHIJP", + "BFHILM", + "BFHILN", + "BFHILP", + "BFHIMN", + "BFHIMP", + "BFHINP", + "BFHJLM", + "BFHJLN", + "BFHJLP", + "BFHJMN", + "BFHJMP", + "BFHJNP", + "BFHLMN", + "BFHLMP", + "BFHLNP", + "BFHMNP", + "BFIJLM", + "BFIJLN", + "BFIJLP", + "BFIJMN", + "BFIJMP", + "BFIJNP", + "BFILMN", + "BFILMP", + "BFILNP", + "BFIMNP", + "BFJLMN", + "BFJLMP", + "BFJLNP", + "BFJMNP", + "BFLMNP", + "BGHIJL", + "BGHIJM", + "BGHIJN", + "BGHIJP", + "BGHILM", + "BGHILN", + "BGHILP", + "BGHIMN", + "BGHIMP", + "BGHINP", + "BGHJLM", + "BGHJLN", + "BGHJLP", + "BGHJMN", + "BGHJMP", + "BGHJNP", + "BGHLMN", + "BGHLMP", + "BGHLNP", + "BGHMNP", + "BGIJLM", + "BGIJLN", + "BGIJLP", + "BGIJMN", + "BGIJMP", + "BGIJNP", + "BGILMN", + "BGILMP", + "BGILNP", + "BGIMNP", + "BGJLMN", + "BGJLMP", + "BGJLNP", + "BGJMNP", + "BGLMNP", + "BHIJLM", + "BHIJLN", + "BHIJLP", + "BHIJMN", + "BHIJMP", + "BHIJNP", + "BHILMN", + "BHILMP", + "BHILNP", + "BHIMNP", + "BHJLMN", + "BHJLMP", + "BHJLNP", + "BHJMNP", + "BHLMNP", + "BIJLMN", + "BIJLMP", + "BIJLNP", + "BIJMNP", + "BILMNP", + "BJLMNP", + "CEFGHI", + "CEFGHJ", + "CEFGHL", + "CEFGHM", + "CEFGHN", + "CEFGHP", + "CEFGIJ", + "CEFGIL", + "CEFGIM", + "CEFGIN", + "CEFGIP", + "CEFGJL", + "CEFGJM", + "CEFGJN", + "CEFGJP", + "CEFGLM", + "CEFGLN", + "CEFGLP", + "CEFGMN", + "CEFGMP", + "CEFGNP", + "CEFHIJ", + "CEFHIL", + "CEFHIM", + "CEFHIN", + "CEFHIP", + "CEFHJL", + "CEFHJM", + "CEFHJN", + "CEFHJP", + "CEFHLM", + "CEFHLN", + "CEFHLP", + "CEFHMN", + "CEFHMP", + "CEFHNP", + "CEFIJL", + "CEFIJM", + "CEFIJN", + "CEFIJP", + "CEFILM", + "CEFILN", + "CEFILP", + "CEFIMN", + "CEFIMP", + "CEFINP", + "CEFJLM", + "CEFJLN", + "CEFJLP", + "CEFJMN", + "CEFJMP", + "CEFJNP", + "CEFLMN", + "CEFLMP", + "CEFLNP", + "CEFMNP", + "CEGHIJ", + "CEGHIL", + "CEGHIM", + "CEGHIN", + "CEGHIP", + "CEGHJL", + "CEGHJM", + "CEGHJN", + "CEGHJP", + "CEGHLM", + "CEGHLN", + "CEGHLP", + "CEGHMN", + "CEGHMP", + "CEGHNP", + "CEGIJL", + "CEGIJM", + "CEGIJN", + "CEGIJP", + "CEGILM", + "CEGILN", + "CEGILP", + "CEGIMN", + "CEGIMP", + "CEGINP", + "CEGJLM", + "CEGJLN", + "CEGJLP", + "CEGJMN", + "CEGJMP", + "CEGJNP", + "CEGLMN", + "CEGLMP", + "CEGLNP", + "CEGMNP", + "CEHIJL", + "CEHIJM", + "CEHIJN", + "CEHIJP", + "CEHILM", + "CEHILN", + "CEHILP", + "CEHIMN", + "CEHIMP", + "CEHINP", + "CEHJLM", + "CEHJLN", + "CEHJLP", + "CEHJMN", + "CEHJMP", + "CEHJNP", + "CEHLMN", + "CEHLMP", + "CEHLNP", + "CEHMNP", + "CEIJLM", + "CEIJLN", + "CEIJLP", + "CEIJMN", + "CEIJMP", + "CEIJNP", + "CEILMN", + "CEILMP", + "CEILNP", + "CEIMNP", + "CEJLMN", + "CEJLMP", + "CEJLNP", + "CEJMNP", + "CELMNP", + "CFGHIJ", + "CFGHIL", + "CFGHIM", + "CFGHIN", + "CFGHIP", + "CFGHJL", + "CFGHJM", + "CFGHJN", + "CFGHJP", + "CFGHLM", + "CFGHLN", + "CFGHLP", + "CFGHMN", + "CFGHMP", + "CFGHNP", + "CFGIJL", + "CFGIJM", + "CFGIJN", + "CFGIJP", + "CFGILM", + "CFGILN", + "CFGILP", + "CFGIMN", + "CFGIMP", + "CFGINP", + "CFGJLM", + "CFGJLN", + "CFGJLP", + "CFGJMN", + "CFGJMP", + "CFGJNP", + "CFGLMN", + "CFGLMP", + "CFGLNP", + "CFGMNP", + "CFHIJL", + "CFHIJM", + "CFHIJN", + "CFHIJP", + "CFHILM", + "CFHILN", + "CFHILP", + "CFHIMN", + "CFHIMP", + "CFHINP", + "CFHJLM", + "CFHJLN", + "CFHJLP", + "CFHJMN", + "CFHJMP", + "CFHJNP", + "CFHLMN", + "CFHLMP", + "CFHLNP", + "CFHMNP", + "CFIJLM", + "CFIJLN", + "CFIJLP", + "CFIJMN", + "CFIJMP", + "CFIJNP", + "CFILMN", + "CFILMP", + "CFILNP", + "CFIMNP", + "CFJLMN", + "CFJLMP", + "CFJLNP", + "CFJMNP", + "CFLMNP", + "CGHIJL", + "CGHIJM", + "CGHIJN", + "CGHIJP", + "CGHILM", + "CGHILN", + "CGHILP", + "CGHIMN", + "CGHIMP", + "CGHINP", + "CGHJLM", + "CGHJLN", + "CGHJLP", + "CGHJMN", + "CGHJMP", + "CGHJNP", + "CGHLMN", + "CGHLMP", + "CGHLNP", + "CGHMNP", + "CGIJLM", + "CGIJLN", + "CGIJLP", + "CGIJMN", + "CGIJMP", + "CGIJNP", + "CGILMN", + "CGILMP", + "CGILNP", + "CGIMNP", + "CGJLMN", + "CGJLMP", + "CGJLNP", + "CGJMNP", + "CGLMNP", + "CHIJLM", + "CHIJLN", + "CHIJLP", + "CHIJMN", + "CHIJMP", + "CHIJNP", + "CHILMN", + "CHILMP", + "CHILNP", + "CHIMNP", + "CHJLMN", + "CHJLMP", + "CHJLNP", + "CHJMNP", + "CHLMNP", + "CIJLMN", + "CIJLMP", + "CIJLNP", + "CIJMNP", + "CILMNP", + "CJLMNP", + "EFGHIJ", + "EFGHIL", + "EFGHIM", + "EFGHIN", + "EFGHIP", + "EFGHJL", + "EFGHJM", + "EFGHJN", + "EFGHJP", + "EFGHLM", + "EFGHLN", + "EFGHLP", + "EFGHMN", + "EFGHMP", + "EFGHNP", + "EFGIJL", + "EFGIJM", + "EFGIJN", + "EFGIJP", + "EFGILM", + "EFGILN", + "EFGILP", + "EFGIMN", + "EFGIMP", + "EFGINP", + "EFGJLM", + "EFGJLN", + "EFGJLP", + "EFGJMN", + "EFGJMP", + "EFGJNP", + "EFGLMN", + "EFGLMP", + "EFGLNP", + "EFGMNP", + "EFHIJL", + "EFHIJM", + "EFHIJN", + "EFHIJP", + "EFHILM", + "EFHILN", + "EFHILP", + "EFHIMN", + "EFHIMP", + "EFHINP", + "EFHJLM", + "EFHJLN", + "EFHJLP", + "EFHJMN", + "EFHJMP", + "EFHJNP", + "EFHLMN", + "EFHLMP", + "EFHLNP", + "EFHMNP", + "EFIJLM", + "EFIJLN", + "EFIJLP", + "EFIJMN", + "EFIJMP", + "EFIJNP", + "EFILMN", + "EFILMP", + "EFILNP", + "EFIMNP", + "EFJLMN", + "EFJLMP", + "EFJLNP", + "EFJMNP", + "EFLMNP", + "EGHIJL", + "EGHIJM", + "EGHIJN", + "EGHIJP", + "EGHILM", + "EGHILN", + "EGHILP", + "EGHIMN", + "EGHIMP", + "EGHINP", + "EGHJLM", + "EGHJLN", + "EGHJLP", + "EGHJMN", + "EGHJMP", + "EGHJNP", + "EGHLMN", + "EGHLMP", + "EGHLNP", + "EGHMNP", + "EGIJLM", + "EGIJLN", + "EGIJLP", + "EGIJMN", + "EGIJMP", + "EGIJNP", + "EGILMN", + "EGILMP", + "EGILNP", + "EGIMNP", + "EGJLMN", + "EGJLMP", + "EGJLNP", + "EGJMNP", + "EGLMNP", + "EHIJLM", + "EHIJLN", + "EHIJLP", + "EHIJMN", + "EHIJMP", + "EHIJNP", + "EHILMN", + "EHILMP", + "EHILNP", + "EHIMNP", + "EHJLMN", + "EHJLMP", + "EHJLNP", + "EHJMNP", + "EHLMNP", + "EIJLMN", + "EIJLMP", + "EIJLNP", + "EIJMNP", + "EILMNP", + "EJLMNP", + "FGHIJL", + "FGHIJM", + "FGHIJN", + "FGHIJP", + "FGHILM", + "FGHILN", + "FGHILP", + "FGHIMN", + "FGHIMP", + "FGHINP", + "FGHJLM", + "FGHJLN", + "FGHJLP", + "FGHJMN", + "FGHJMP", + "FGHJNP", + "FGHLMN", + "FGHLMP", + "FGHLNP", + "FGHMNP", + "FGIJLM", + "FGIJLN", + "FGIJLP", + "FGIJMN", + "FGIJMP", + "FGIJNP", + "FGILMN", + "FGILMP", + "FGILNP", + "FGIMNP", + "FGJLMN", + "FGJLMP", + "FGJLNP", + "FGJMNP", + "FGLMNP", + "FHIJLM", + "FHIJLN", + "FHIJLP", + "FHIJMN", + "FHIJMP", + "FHIJNP", + "FHILMN", + "FHILMP", + "FHILNP", + "FHIMNP", + "FHJLMN", + "FHJLMP", + "FHJLNP", + "FHJMNP", + "FHLMNP", + "FIJLMN", + "FIJLMP", + "FIJLNP", + "FIJMNP", + "FILMNP", + "FJLMNP", + "GHIJLM", + "GHIJLN", + "GHIJLP", + "GHIJMN", + "GHIJMP", + "GHIJNP", + "GHILMN", + "GHILMP", + "GHILNP", + "GHIMNP", + "GHJLMN", + "GHJLMP", + "GHJLNP", + "GHJMNP", + "GHLMNP", + "GIJLMN", + "GIJLMP", + "GIJLNP", + "GIJMNP", + "GILMNP", + "GJLMNP", + "HIJLMN", + "HIJLMP", + "HIJLNP", + "HIJMNP", + "HILMNP", + "HJLMNP", + "IJLMNP", + "ABCEFGH", + "ABCEFGI", + "ABCEFGJ", + "ABCEFGL", + "ABCEFGM", + "ABCEFGN", + "ABCEFGP", + "ABCEFHI", + "ABCEFHJ", + "ABCEFHL", + "ABCEFHM", + "ABCEFHN", + "ABCEFHP", + "ABCEFIJ", + "ABCEFIL", + "ABCEFIM", + "ABCEFIN", + "ABCEFIP", + "ABCEFJL", + "ABCEFJM", + "ABCEFJN", + "ABCEFJP", + "ABCEFLM", + "ABCEFLN", + "ABCEFLP", + "ABCEFMN", + "ABCEFMP", + "ABCEFNP", + "ABCEGHI", + "ABCEGHJ", + "ABCEGHL", + "ABCEGHM", + "ABCEGHN", + "ABCEGHP", + "ABCEGIJ", + "ABCEGIL", + "ABCEGIM", + "ABCEGIN", + "ABCEGIP", + "ABCEGJL", + "ABCEGJM", + "ABCEGJN", + "ABCEGJP", + "ABCEGLM", + "ABCEGLN", + "ABCEGLP", + "ABCEGMN", + "ABCEGMP", + "ABCEGNP", + "ABCEHIJ", + "ABCEHIL", + "ABCEHIM", + "ABCEHIN", + "ABCEHIP", + "ABCEHJL", + "ABCEHJM", + "ABCEHJN", + "ABCEHJP", + "ABCEHLM", + "ABCEHLN", + "ABCEHLP", + "ABCEHMN", + "ABCEHMP", + "ABCEHNP", + "ABCEIJL", + "ABCEIJM", + "ABCEIJN", + "ABCEIJP", + "ABCEILM", + "ABCEILN", + "ABCEILP", + "ABCEIMN", + "ABCEIMP", + "ABCEINP", + "ABCEJLM", + "ABCEJLN", + "ABCEJLP", + "ABCEJMN", + "ABCEJMP", + "ABCEJNP", + "ABCELMN", + "ABCELMP", + "ABCELNP", + "ABCEMNP", + "ABCFGHI", + "ABCFGHJ", + "ABCFGHL", + "ABCFGHM", + "ABCFGHN", + "ABCFGHP", + "ABCFGIJ", + "ABCFGIL", + "ABCFGIM", + "ABCFGIN", + "ABCFGIP", + "ABCFGJL", + "ABCFGJM", + "ABCFGJN", + "ABCFGJP", + "ABCFGLM", + "ABCFGLN", + "ABCFGLP", + "ABCFGMN", + "ABCFGMP", + "ABCFGNP", + "ABCFHIJ", + "ABCFHIL", + "ABCFHIM", + "ABCFHIN", + "ABCFHIP", + "ABCFHJL", + "ABCFHJM", + "ABCFHJN", + "ABCFHJP", + "ABCFHLM", + "ABCFHLN", + "ABCFHLP", + "ABCFHMN", + "ABCFHMP", + "ABCFHNP", + "ABCFIJL", + "ABCFIJM", + "ABCFIJN", + "ABCFIJP", + "ABCFILM", + "ABCFILN", + "ABCFILP", + "ABCFIMN", + "ABCFIMP", + "ABCFINP", + "ABCFJLM", + "ABCFJLN", + "ABCFJLP", + "ABCFJMN", + "ABCFJMP", + "ABCFJNP", + "ABCFLMN", + "ABCFLMP", + "ABCFLNP", + "ABCFMNP", + "ABCGHIJ", + "ABCGHIL", + "ABCGHIM", + "ABCGHIN", + "ABCGHIP", + "ABCGHJL", + "ABCGHJM", + "ABCGHJN", + "ABCGHJP", + "ABCGHLM", + "ABCGHLN", + "ABCGHLP", + "ABCGHMN", + "ABCGHMP", + "ABCGHNP", + "ABCGIJL", + "ABCGIJM", + "ABCGIJN", + "ABCGIJP", + "ABCGILM", + "ABCGILN", + "ABCGILP", + "ABCGIMN", + "ABCGIMP", + "ABCGINP", + "ABCGJLM", + "ABCGJLN", + "ABCGJLP", + "ABCGJMN", + "ABCGJMP", + "ABCGJNP", + "ABCGLMN", + "ABCGLMP", + "ABCGLNP", + "ABCGMNP", + "ABCHIJL", + "ABCHIJM", + "ABCHIJN", + "ABCHIJP", + "ABCHILM", + "ABCHILN", + "ABCHILP", + "ABCHIMN", + "ABCHIMP", + "ABCHINP", + "ABCHJLM", + "ABCHJLN", + "ABCHJLP", + "ABCHJMN", + "ABCHJMP", + "ABCHJNP", + "ABCHLMN", + "ABCHLMP", + "ABCHLNP", + "ABCHMNP", + "ABCIJLM", + "ABCIJLN", + "ABCIJLP", + "ABCIJMN", + "ABCIJMP", + "ABCIJNP", + "ABCILMN", + "ABCILMP", + "ABCILNP", + "ABCIMNP", + "ABCJLMN", + "ABCJLMP", + "ABCJLNP", + "ABCJMNP", + "ABCLMNP", + "ABEFGHI", + "ABEFGHJ", + "ABEFGHL", + "ABEFGHM", + "ABEFGHN", + "ABEFGHP", + "ABEFGIJ", + "ABEFGIL", + "ABEFGIM", + "ABEFGIN", + "ABEFGIP", + "ABEFGJL", + "ABEFGJM", + "ABEFGJN", + "ABEFGJP", + "ABEFGLM", + "ABEFGLN", + "ABEFGLP", + "ABEFGMN", + "ABEFGMP", + "ABEFGNP", + "ABEFHIJ", + "ABEFHIL", + "ABEFHIM", + "ABEFHIN", + "ABEFHIP", + "ABEFHJL", + "ABEFHJM", + "ABEFHJN", + "ABEFHJP", + "ABEFHLM", + "ABEFHLN", + "ABEFHLP", + "ABEFHMN", + "ABEFHMP", + "ABEFHNP", + "ABEFIJL", + "ABEFIJM", + "ABEFIJN", + "ABEFIJP", + "ABEFILM", + "ABEFILN", + "ABEFILP", + "ABEFIMN", + "ABEFIMP", + "ABEFINP", + "ABEFJLM", + "ABEFJLN", + "ABEFJLP", + "ABEFJMN", + "ABEFJMP", + "ABEFJNP", + "ABEFLMN", + "ABEFLMP", + "ABEFLNP", + "ABEFMNP", + "ABEGHIJ", + "ABEGHIL", + "ABEGHIM", + "ABEGHIN", + "ABEGHIP", + "ABEGHJL", + "ABEGHJM", + "ABEGHJN", + "ABEGHJP", + "ABEGHLM", + "ABEGHLN", + "ABEGHLP", + "ABEGHMN", + "ABEGHMP", + "ABEGHNP", + "ABEGIJL", + "ABEGIJM", + "ABEGIJN", + "ABEGIJP", + "ABEGILM", + "ABEGILN", + "ABEGILP", + "ABEGIMN", + "ABEGIMP", + "ABEGINP", + "ABEGJLM", + "ABEGJLN", + "ABEGJLP", + "ABEGJMN", + "ABEGJMP", + "ABEGJNP", + "ABEGLMN", + "ABEGLMP", + "ABEGLNP", + "ABEGMNP", + "ABEHIJL", + "ABEHIJM", + "ABEHIJN", + "ABEHIJP", + "ABEHILM", + "ABEHILN", + "ABEHILP", + "ABEHIMN", + "ABEHIMP", + "ABEHINP", + "ABEHJLM", + "ABEHJLN", + "ABEHJLP", + "ABEHJMN", + "ABEHJMP", + "ABEHJNP", + "ABEHLMN", + "ABEHLMP", + "ABEHLNP", + "ABEHMNP", + "ABEIJLM", + "ABEIJLN", + "ABEIJLP", + "ABEIJMN", + "ABEIJMP", + "ABEIJNP", + "ABEILMN", + "ABEILMP", + "ABEILNP", + "ABEIMNP", + "ABEJLMN", + "ABEJLMP", + "ABEJLNP", + "ABEJMNP", + "ABELMNP", + "ABFGHIJ", + "ABFGHIL", + "ABFGHIM", + "ABFGHIN", + "ABFGHIP", + "ABFGHJL", + "ABFGHJM", + "ABFGHJN", + "ABFGHJP", + "ABFGHLM", + "ABFGHLN", + "ABFGHLP", + "ABFGHMN", + "ABFGHMP", + "ABFGHNP", + "ABFGIJL", + "ABFGIJM", + "ABFGIJN", + "ABFGIJP", + "ABFGILM", + "ABFGILN", + "ABFGILP", + "ABFGIMN", + "ABFGIMP", + "ABFGINP", + "ABFGJLM", + "ABFGJLN", + "ABFGJLP", + "ABFGJMN", + "ABFGJMP", + "ABFGJNP", + "ABFGLMN", + "ABFGLMP", + "ABFGLNP", + "ABFGMNP", + "ABFHIJL", + "ABFHIJM", + "ABFHIJN", + "ABFHIJP", + "ABFHILM", + "ABFHILN", + "ABFHILP", + "ABFHIMN", + "ABFHIMP", + "ABFHINP", + "ABFHJLM", + "ABFHJLN", + "ABFHJLP", + "ABFHJMN", + "ABFHJMP", + "ABFHJNP", + "ABFHLMN", + "ABFHLMP", + "ABFHLNP", + "ABFHMNP", + "ABFIJLM", + "ABFIJLN", + "ABFIJLP", + "ABFIJMN", + "ABFIJMP", + "ABFIJNP", + "ABFILMN", + "ABFILMP", + "ABFILNP", + "ABFIMNP", + "ABFJLMN", + "ABFJLMP", + "ABFJLNP", + "ABFJMNP", + "ABFLMNP", + "ABGHIJL", + "ABGHIJM", + "ABGHIJN", + "ABGHIJP", + "ABGHILM", + "ABGHILN", + "ABGHILP", + "ABGHIMN", + "ABGHIMP", + "ABGHINP", + "ABGHJLM", + "ABGHJLN", + "ABGHJLP", + "ABGHJMN", + "ABGHJMP", + "ABGHJNP", + "ABGHLMN", + "ABGHLMP", + "ABGHLNP", + "ABGHMNP", + "ABGIJLM", + "ABGIJLN", + "ABGIJLP", + "ABGIJMN", + "ABGIJMP", + "ABGIJNP", + "ABGILMN", + "ABGILMP", + "ABGILNP", + "ABGIMNP", + "ABGJLMN", + "ABGJLMP", + "ABGJLNP", + "ABGJMNP", + "ABGLMNP", + "ABHIJLM", + "ABHIJLN", + "ABHIJLP", + "ABHIJMN", + "ABHIJMP", + "ABHIJNP", + "ABHILMN", + "ABHILMP", + "ABHILNP", + "ABHIMNP", + "ABHJLMN", + "ABHJLMP", + "ABHJLNP", + "ABHJMNP", + "ABHLMNP", + "ABIJLMN", + "ABIJLMP", + "ABIJLNP", + "ABIJMNP", + "ABILMNP", + "ABJLMNP", + "ACEFGHI", + "ACEFGHJ", + "ACEFGHL", + "ACEFGHM", + "ACEFGHN", + "ACEFGHP", + "ACEFGIJ", + "ACEFGIL", + "ACEFGIM", + "ACEFGIN", + "ACEFGIP", + "ACEFGJL", + "ACEFGJM", + "ACEFGJN", + "ACEFGJP", + "ACEFGLM", + "ACEFGLN", + "ACEFGLP", + "ACEFGMN", + "ACEFGMP", + "ACEFGNP", + "ACEFHIJ", + "ACEFHIL", + "ACEFHIM", + "ACEFHIN", + "ACEFHIP", + "ACEFHJL", + "ACEFHJM", + "ACEFHJN", + "ACEFHJP", + "ACEFHLM", + "ACEFHLN", + "ACEFHLP", + "ACEFHMN", + "ACEFHMP", + "ACEFHNP", + "ACEFIJL", + "ACEFIJM", + "ACEFIJN", + "ACEFIJP", + "ACEFILM", + "ACEFILN", + "ACEFILP", + "ACEFIMN", + "ACEFIMP", + "ACEFINP", + "ACEFJLM", + "ACEFJLN", + "ACEFJLP", + "ACEFJMN", + "ACEFJMP", + "ACEFJNP", + "ACEFLMN", + "ACEFLMP", + "ACEFLNP", + "ACEFMNP", + "ACEGHIJ", + "ACEGHIL", + "ACEGHIM", + "ACEGHIN", + "ACEGHIP", + "ACEGHJL", + "ACEGHJM", + "ACEGHJN", + "ACEGHJP", + "ACEGHLM", + "ACEGHLN", + "ACEGHLP", + "ACEGHMN", + "ACEGHMP", + "ACEGHNP", + "ACEGIJL", + "ACEGIJM", + "ACEGIJN", + "ACEGIJP", + "ACEGILM", + "ACEGILN", + "ACEGILP", + "ACEGIMN", + "ACEGIMP", + "ACEGINP", + "ACEGJLM", + "ACEGJLN", + "ACEGJLP", + "ACEGJMN", + "ACEGJMP", + "ACEGJNP", + "ACEGLMN", + "ACEGLMP", + "ACEGLNP", + "ACEGMNP", + "ACEHIJL", + "ACEHIJM", + "ACEHIJN", + "ACEHIJP", + "ACEHILM", + "ACEHILN", + "ACEHILP", + "ACEHIMN", + "ACEHIMP", + "ACEHINP", + "ACEHJLM", + "ACEHJLN", + "ACEHJLP", + "ACEHJMN", + "ACEHJMP", + "ACEHJNP", + "ACEHLMN", + "ACEHLMP", + "ACEHLNP", + "ACEHMNP", + "ACEIJLM", + "ACEIJLN", + "ACEIJLP", + "ACEIJMN", + "ACEIJMP", + "ACEIJNP", + "ACEILMN", + "ACEILMP", + "ACEILNP", + "ACEIMNP", + "ACEJLMN", + "ACEJLMP", + "ACEJLNP", + "ACEJMNP", + "ACELMNP", + "ACFGHIJ", + "ACFGHIL", + "ACFGHIM", + "ACFGHIN", + "ACFGHIP", + "ACFGHJL", + "ACFGHJM", + "ACFGHJN", + "ACFGHJP", + "ACFGHLM", + "ACFGHLN", + "ACFGHLP", + "ACFGHMN", + "ACFGHMP", + "ACFGHNP", + "ACFGIJL", + "ACFGIJM", + "ACFGIJN", + "ACFGIJP", + "ACFGILM", + "ACFGILN", + "ACFGILP", + "ACFGIMN", + "ACFGIMP", + "ACFGINP", + "ACFGJLM", + "ACFGJLN", + "ACFGJLP", + "ACFGJMN", + "ACFGJMP", + "ACFGJNP", + "ACFGLMN", + "ACFGLMP", + "ACFGLNP", + "ACFGMNP", + "ACFHIJL", + "ACFHIJM", + "ACFHIJN", + "ACFHIJP", + "ACFHILM", + "ACFHILN", + "ACFHILP", + "ACFHIMN", + "ACFHIMP", + "ACFHINP", + "ACFHJLM", + "ACFHJLN", + "ACFHJLP", + "ACFHJMN", + "ACFHJMP", + "ACFHJNP", + "ACFHLMN", + "ACFHLMP", + "ACFHLNP", + "ACFHMNP", + "ACFIJLM", + "ACFIJLN", + "ACFIJLP", + "ACFIJMN", + "ACFIJMP", + "ACFIJNP", + "ACFILMN", + "ACFILMP", + "ACFILNP", + "ACFIMNP", + "ACFJLMN", + "ACFJLMP", + "ACFJLNP", + "ACFJMNP", + "ACFLMNP", + "ACGHIJL", + "ACGHIJM", + "ACGHIJN", + "ACGHIJP", + "ACGHILM", + "ACGHILN", + "ACGHILP", + "ACGHIMN", + "ACGHIMP", + "ACGHINP", + "ACGHJLM", + "ACGHJLN", + "ACGHJLP", + "ACGHJMN", + "ACGHJMP", + "ACGHJNP", + "ACGHLMN", + "ACGHLMP", + "ACGHLNP", + "ACGHMNP", + "ACGIJLM", + "ACGIJLN", + "ACGIJLP", + "ACGIJMN", + "ACGIJMP", + "ACGIJNP", + "ACGILMN", + "ACGILMP", + "ACGILNP", + "ACGIMNP", + "ACGJLMN", + "ACGJLMP", + "ACGJLNP", + "ACGJMNP", + "ACGLMNP", + "ACHIJLM", + "ACHIJLN", + "ACHIJLP", + "ACHIJMN", + "ACHIJMP", + "ACHIJNP", + "ACHILMN", + "ACHILMP", + "ACHILNP", + "ACHIMNP", + "ACHJLMN", + "ACHJLMP", + "ACHJLNP", + "ACHJMNP", + "ACHLMNP", + "ACIJLMN", + "ACIJLMP", + "ACIJLNP", + "ACIJMNP", + "ACILMNP", + "ACJLMNP", + "AEFGHIJ", + "AEFGHIL", + "AEFGHIM", + "AEFGHIN", + "AEFGHIP", + "AEFGHJL", + "AEFGHJM", + "AEFGHJN", + "AEFGHJP", + "AEFGHLM", + "AEFGHLN", + "AEFGHLP", + "AEFGHMN", + "AEFGHMP", + "AEFGHNP", + "AEFGIJL", + "AEFGIJM", + "AEFGIJN", + "AEFGIJP", + "AEFGILM", + "AEFGILN", + "AEFGILP", + "AEFGIMN", + "AEFGIMP", + "AEFGINP", + "AEFGJLM", + "AEFGJLN", + "AEFGJLP", + "AEFGJMN", + "AEFGJMP", + "AEFGJNP", + "AEFGLMN", + "AEFGLMP", + "AEFGLNP", + "AEFGMNP", + "AEFHIJL", + "AEFHIJM", + "AEFHIJN", + "AEFHIJP", + "AEFHILM", + "AEFHILN", + "AEFHILP", + "AEFHIMN", + "AEFHIMP", + "AEFHINP", + "AEFHJLM", + "AEFHJLN", + "AEFHJLP", + "AEFHJMN", + "AEFHJMP", + "AEFHJNP", + "AEFHLMN", + "AEFHLMP", + "AEFHLNP", + "AEFHMNP", + "AEFIJLM", + "AEFIJLN", + "AEFIJLP", + "AEFIJMN", + "AEFIJMP", + "AEFIJNP", + "AEFILMN", + "AEFILMP", + "AEFILNP", + "AEFIMNP", + "AEFJLMN", + "AEFJLMP", + "AEFJLNP", + "AEFJMNP", + "AEFLMNP", + "AEGHIJL", + "AEGHIJM", + "AEGHIJN", + "AEGHIJP", + "AEGHILM", + "AEGHILN", + "AEGHILP", + "AEGHIMN", + "AEGHIMP", + "AEGHINP", + "AEGHJLM", + "AEGHJLN", + "AEGHJLP", + "AEGHJMN", + "AEGHJMP", + "AEGHJNP", + "AEGHLMN", + "AEGHLMP", + "AEGHLNP", + "AEGHMNP", + "AEGIJLM", + "AEGIJLN", + "AEGIJLP", + "AEGIJMN", + "AEGIJMP", + "AEGIJNP", + "AEGILMN", + "AEGILMP", + "AEGILNP", + "AEGIMNP", + "AEGJLMN", + "AEGJLMP", + "AEGJLNP", + "AEGJMNP", + "AEGLMNP", + "AEHIJLM", + "AEHIJLN", + "AEHIJLP", + "AEHIJMN", + "AEHIJMP", + "AEHIJNP", + "AEHILMN", + "AEHILMP", + "AEHILNP", + "AEHIMNP", + "AEHJLMN", + "AEHJLMP", + "AEHJLNP", + "AEHJMNP", + "AEHLMNP", + "AEIJLMN", + "AEIJLMP", + "AEIJLNP", + "AEIJMNP", + "AEILMNP", + "AEJLMNP", + "AFGHIJL", + "AFGHIJM", + "AFGHIJN", + "AFGHIJP", + "AFGHILM", + "AFGHILN", + "AFGHILP", + "AFGHIMN", + "AFGHIMP", + "AFGHINP", + "AFGHJLM", + "AFGHJLN", + "AFGHJLP", + "AFGHJMN", + "AFGHJMP", + "AFGHJNP", + "AFGHLMN", + "AFGHLMP", + "AFGHLNP", + "AFGHMNP", + "AFGIJLM", + "AFGIJLN", + "AFGIJLP", + "AFGIJMN", + "AFGIJMP", + "AFGIJNP", + "AFGILMN", + "AFGILMP", + "AFGILNP", + "AFGIMNP", + "AFGJLMN", + "AFGJLMP", + "AFGJLNP", + "AFGJMNP", + "AFGLMNP", + "AFHIJLM", + "AFHIJLN", + "AFHIJLP", + "AFHIJMN", + "AFHIJMP", + "AFHIJNP", + "AFHILMN", + "AFHILMP", + "AFHILNP", + "AFHIMNP", + "AFHJLMN", + "AFHJLMP", + "AFHJLNP", + "AFHJMNP", + "AFHLMNP", + "AFIJLMN", + "AFIJLMP", + "AFIJLNP", + "AFIJMNP", + "AFILMNP", + "AFJLMNP", + "AGHIJLM", + "AGHIJLN", + "AGHIJLP", + "AGHIJMN", + "AGHIJMP", + "AGHIJNP", + "AGHILMN", + "AGHILMP", + "AGHILNP", + "AGHIMNP", + "AGHJLMN", + "AGHJLMP", + "AGHJLNP", + "AGHJMNP", + "AGHLMNP", + "AGIJLMN", + "AGIJLMP", + "AGIJLNP", + "AGIJMNP", + "AGILMNP", + "AGJLMNP", + "AHIJLMN", + "AHIJLMP", + "AHIJLNP", + "AHIJMNP", + "AHILMNP", + "AHJLMNP", + "AIJLMNP", + "BCEFGHI", + "BCEFGHJ", + "BCEFGHL", + "BCEFGHM", + "BCEFGHN", + "BCEFGHP", + "BCEFGIJ", + "BCEFGIL", + "BCEFGIM", + "BCEFGIN", + "BCEFGIP", + "BCEFGJL", + "BCEFGJM", + "BCEFGJN", + "BCEFGJP", + "BCEFGLM", + "BCEFGLN", + "BCEFGLP", + "BCEFGMN", + "BCEFGMP", + "BCEFGNP", + "BCEFHIJ", + "BCEFHIL", + "BCEFHIM", + "BCEFHIN", + "BCEFHIP", + "BCEFHJL", + "BCEFHJM", + "BCEFHJN", + "BCEFHJP", + "BCEFHLM", + "BCEFHLN", + "BCEFHLP", + "BCEFHMN", + "BCEFHMP", + "BCEFHNP", + "BCEFIJL", + "BCEFIJM", + "BCEFIJN", + "BCEFIJP", + "BCEFILM", + "BCEFILN", + "BCEFILP", + "BCEFIMN", + "BCEFIMP", + "BCEFINP", + "BCEFJLM", + "BCEFJLN", + "BCEFJLP", + "BCEFJMN", + "BCEFJMP", + "BCEFJNP", + "BCEFLMN", + "BCEFLMP", + "BCEFLNP", + "BCEFMNP", + "BCEGHIJ", + "BCEGHIL", + "BCEGHIM", + "BCEGHIN", + "BCEGHIP", + "BCEGHJL", + "BCEGHJM", + "BCEGHJN", + "BCEGHJP", + "BCEGHLM", + "BCEGHLN", + "BCEGHLP", + "BCEGHMN", + "BCEGHMP", + "BCEGHNP", + "BCEGIJL", + "BCEGIJM", + "BCEGIJN", + "BCEGIJP", + "BCEGILM", + "BCEGILN", + "BCEGILP", + "BCEGIMN", + "BCEGIMP", + "BCEGINP", + "BCEGJLM", + "BCEGJLN", + "BCEGJLP", + "BCEGJMN", + "BCEGJMP", + "BCEGJNP", + "BCEGLMN", + "BCEGLMP", + "BCEGLNP", + "BCEGMNP", + "BCEHIJL", + "BCEHIJM", + "BCEHIJN", + "BCEHIJP", + "BCEHILM", + "BCEHILN", + "BCEHILP", + "BCEHIMN", + "BCEHIMP", + "BCEHINP", + "BCEHJLM", + "BCEHJLN", + "BCEHJLP", + "BCEHJMN", + "BCEHJMP", + "BCEHJNP", + "BCEHLMN", + "BCEHLMP", + "BCEHLNP", + "BCEHMNP", + "BCEIJLM", + "BCEIJLN", + "BCEIJLP", + "BCEIJMN", + "BCEIJMP", + "BCEIJNP", + "BCEILMN", + "BCEILMP", + "BCEILNP", + "BCEIMNP", + "BCEJLMN", + "BCEJLMP", + "BCEJLNP", + "BCEJMNP", + "BCELMNP", + "BCFGHIJ", + "BCFGHIL", + "BCFGHIM", + "BCFGHIN", + "BCFGHIP", + "BCFGHJL", + "BCFGHJM", + "BCFGHJN", + "BCFGHJP", + "BCFGHLM", + "BCFGHLN", + "BCFGHLP", + "BCFGHMN", + "BCFGHMP", + "BCFGHNP", + "BCFGIJL", + "BCFGIJM", + "BCFGIJN", + "BCFGIJP", + "BCFGILM", + "BCFGILN", + "BCFGILP", + "BCFGIMN", + "BCFGIMP", + "BCFGINP", + "BCFGJLM", + "BCFGJLN", + "BCFGJLP", + "BCFGJMN", + "BCFGJMP", + "BCFGJNP", + "BCFGLMN", + "BCFGLMP", + "BCFGLNP", + "BCFGMNP", + "BCFHIJL", + "BCFHIJM", + "BCFHIJN", + "BCFHIJP", + "BCFHILM", + "BCFHILN", + "BCFHILP", + "BCFHIMN", + "BCFHIMP", + "BCFHINP", + "BCFHJLM", + "BCFHJLN", + "BCFHJLP", + "BCFHJMN", + "BCFHJMP", + "BCFHJNP", + "BCFHLMN", + "BCFHLMP", + "BCFHLNP", + "BCFHMNP", + "BCFIJLM", + "BCFIJLN", + "BCFIJLP", + "BCFIJMN", + "BCFIJMP", + "BCFIJNP", + "BCFILMN", + "BCFILMP", + "BCFILNP", + "BCFIMNP", + "BCFJLMN", + "BCFJLMP", + "BCFJLNP", + "BCFJMNP", + "BCFLMNP", + "BCGHIJL", + "BCGHIJM", + "BCGHIJN", + "BCGHIJP", + "BCGHILM", + "BCGHILN", + "BCGHILP", + "BCGHIMN", + "BCGHIMP", + "BCGHINP", + "BCGHJLM", + "BCGHJLN", + "BCGHJLP", + "BCGHJMN", + "BCGHJMP", + "BCGHJNP", + "BCGHLMN", + "BCGHLMP", + "BCGHLNP", + "BCGHMNP", + "BCGIJLM", + "BCGIJLN", + "BCGIJLP", + "BCGIJMN", + "BCGIJMP", + "BCGIJNP", + "BCGILMN", + "BCGILMP", + "BCGILNP", + "BCGIMNP", + "BCGJLMN", + "BCGJLMP", + "BCGJLNP", + "BCGJMNP", + "BCGLMNP", + "BCHIJLM", + "BCHIJLN", + "BCHIJLP", + "BCHIJMN", + "BCHIJMP", + "BCHIJNP", + "BCHILMN", + "BCHILMP", + "BCHILNP", + "BCHIMNP", + "BCHJLMN", + "BCHJLMP", + "BCHJLNP", + "BCHJMNP", + "BCHLMNP", + "BCIJLMN", + "BCIJLMP", + "BCIJLNP", + "BCIJMNP", + "BCILMNP", + "BCJLMNP", + "BEFGHIJ", + "BEFGHIL", + "BEFGHIM", + "BEFGHIN", + "BEFGHIP", + "BEFGHJL", + "BEFGHJM", + "BEFGHJN", + "BEFGHJP", + "BEFGHLM", + "BEFGHLN", + "BEFGHLP", + "BEFGHMN", + "BEFGHMP", + "BEFGHNP", + "BEFGIJL", + "BEFGIJM", + "BEFGIJN", + "BEFGIJP", + "BEFGILM", + "BEFGILN", + "BEFGILP", + "BEFGIMN", + "BEFGIMP", + "BEFGINP", + "BEFGJLM", + "BEFGJLN", + "BEFGJLP", + "BEFGJMN", + "BEFGJMP", + "BEFGJNP", + "BEFGLMN", + "BEFGLMP", + "BEFGLNP", + "BEFGMNP", + "BEFHIJL", + "BEFHIJM", + "BEFHIJN", + "BEFHIJP", + "BEFHILM", + "BEFHILN", + "BEFHILP", + "BEFHIMN", + "BEFHIMP", + "BEFHINP", + "BEFHJLM", + "BEFHJLN", + "BEFHJLP", + "BEFHJMN", + "BEFHJMP", + "BEFHJNP", + "BEFHLMN", + "BEFHLMP", + "BEFHLNP", + "BEFHMNP", + "BEFIJLM", + "BEFIJLN", + "BEFIJLP", + "BEFIJMN", + "BEFIJMP", + "BEFIJNP", + "BEFILMN", + "BEFILMP", + "BEFILNP", + "BEFIMNP", + "BEFJLMN", + "BEFJLMP", + "BEFJLNP", + "BEFJMNP", + "BEFLMNP", + "BEGHIJL", + "BEGHIJM", + "BEGHIJN", + "BEGHIJP", + "BEGHILM", + "BEGHILN", + "BEGHILP", + "BEGHIMN", + "BEGHIMP", + "BEGHINP", + "BEGHJLM", + "BEGHJLN", + "BEGHJLP", + "BEGHJMN", + "BEGHJMP", + "BEGHJNP", + "BEGHLMN", + "BEGHLMP", + "BEGHLNP", + "BEGHMNP", + "BEGIJLM", + "BEGIJLN", + "BEGIJLP", + "BEGIJMN", + "BEGIJMP", + "BEGIJNP", + "BEGILMN", + "BEGILMP", + "BEGILNP", + "BEGIMNP", + "BEGJLMN", + "BEGJLMP", + "BEGJLNP", + "BEGJMNP", + "BEGLMNP", + "BEHIJLM", + "BEHIJLN", + "BEHIJLP", + "BEHIJMN", + "BEHIJMP", + "BEHIJNP", + "BEHILMN", + "BEHILMP", + "BEHILNP", + "BEHIMNP", + "BEHJLMN", + "BEHJLMP", + "BEHJLNP", + "BEHJMNP", + "BEHLMNP", + "BEIJLMN", + "BEIJLMP", + "BEIJLNP", + "BEIJMNP", + "BEILMNP", + "BEJLMNP", + "BFGHIJL", + "BFGHIJM", + "BFGHIJN", + "BFGHIJP", + "BFGHILM", + "BFGHILN", + "BFGHILP", + "BFGHIMN", + "BFGHIMP", + "BFGHINP", + "BFGHJLM", + "BFGHJLN", + "BFGHJLP", + "BFGHJMN", + "BFGHJMP", + "BFGHJNP", + "BFGHLMN", + "BFGHLMP", + "BFGHLNP", + "BFGHMNP", + "BFGIJLM", + "BFGIJLN", + "BFGIJLP", + "BFGIJMN", + "BFGIJMP", + "BFGIJNP", + "BFGILMN", + "BFGILMP", + "BFGILNP", + "BFGIMNP", + "BFGJLMN", + "BFGJLMP", + "BFGJLNP", + "BFGJMNP", + "BFGLMNP", + "BFHIJLM", + "BFHIJLN", + "BFHIJLP", + "BFHIJMN", + "BFHIJMP", + "BFHIJNP", + "BFHILMN", + "BFHILMP", + "BFHILNP", + "BFHIMNP", + "BFHJLMN", + "BFHJLMP", + "BFHJLNP", + "BFHJMNP", + "BFHLMNP", + "BFIJLMN", + "BFIJLMP", + "BFIJLNP", + "BFIJMNP", + "BFILMNP", + "BFJLMNP", + "BGHIJLM", + "BGHIJLN", + "BGHIJLP", + "BGHIJMN", + "BGHIJMP", + "BGHIJNP", + "BGHILMN", + "BGHILMP", + "BGHILNP", + "BGHIMNP", + "BGHJLMN", + "BGHJLMP", + "BGHJLNP", + "BGHJMNP", + "BGHLMNP", + "BGIJLMN", + "BGIJLMP", + "BGIJLNP", + "BGIJMNP", + "BGILMNP", + "BGJLMNP", + "BHIJLMN", + "BHIJLMP", + "BHIJLNP", + "BHIJMNP", + "BHILMNP", + "BHJLMNP", + "BIJLMNP", + "CEFGHIJ", + "CEFGHIL", + "CEFGHIM", + "CEFGHIN", + "CEFGHIP", + "CEFGHJL", + "CEFGHJM", + "CEFGHJN", + "CEFGHJP", + "CEFGHLM", + "CEFGHLN", + "CEFGHLP", + "CEFGHMN", + "CEFGHMP", + "CEFGHNP", + "CEFGIJL", + "CEFGIJM", + "CEFGIJN", + "CEFGIJP", + "CEFGILM", + "CEFGILN", + "CEFGILP", + "CEFGIMN", + "CEFGIMP", + "CEFGINP", + "CEFGJLM", + "CEFGJLN", + "CEFGJLP", + "CEFGJMN", + "CEFGJMP", + "CEFGJNP", + "CEFGLMN", + "CEFGLMP", + "CEFGLNP", + "CEFGMNP", + "CEFHIJL", + "CEFHIJM", + "CEFHIJN", + "CEFHIJP", + "CEFHILM", + "CEFHILN", + "CEFHILP", + "CEFHIMN", + "CEFHIMP", + "CEFHINP", + "CEFHJLM", + "CEFHJLN", + "CEFHJLP", + "CEFHJMN", + "CEFHJMP", + "CEFHJNP", + "CEFHLMN", + "CEFHLMP", + "CEFHLNP", + "CEFHMNP", + "CEFIJLM", + "CEFIJLN", + "CEFIJLP", + "CEFIJMN", + "CEFIJMP", + "CEFIJNP", + "CEFILMN", + "CEFILMP", + "CEFILNP", + "CEFIMNP", + "CEFJLMN", + "CEFJLMP", + "CEFJLNP", + "CEFJMNP", + "CEFLMNP", + "CEGHIJL", + "CEGHIJM", + "CEGHIJN", + "CEGHIJP", + "CEGHILM", + "CEGHILN", + "CEGHILP", + "CEGHIMN", + "CEGHIMP", + "CEGHINP", + "CEGHJLM", + "CEGHJLN", + "CEGHJLP", + "CEGHJMN", + "CEGHJMP", + "CEGHJNP", + "CEGHLMN", + "CEGHLMP", + "CEGHLNP", + "CEGHMNP", + "CEGIJLM", + "CEGIJLN", + "CEGIJLP", + "CEGIJMN", + "CEGIJMP", + "CEGIJNP", + "CEGILMN", + "CEGILMP", + "CEGILNP", + "CEGIMNP", + "CEGJLMN", + "CEGJLMP", + "CEGJLNP", + "CEGJMNP", + "CEGLMNP", + "CEHIJLM", + "CEHIJLN", + "CEHIJLP", + "CEHIJMN", + "CEHIJMP", + "CEHIJNP", + "CEHILMN", + "CEHILMP", + "CEHILNP", + "CEHIMNP", + "CEHJLMN", + "CEHJLMP", + "CEHJLNP", + "CEHJMNP", + "CEHLMNP", + "CEIJLMN", + "CEIJLMP", + "CEIJLNP", + "CEIJMNP", + "CEILMNP", + "CEJLMNP", + "CFGHIJL", + "CFGHIJM", + "CFGHIJN", + "CFGHIJP", + "CFGHILM", + "CFGHILN", + "CFGHILP", + "CFGHIMN", + "CFGHIMP", + "CFGHINP", + "CFGHJLM", + "CFGHJLN", + "CFGHJLP", + "CFGHJMN", + "CFGHJMP", + "CFGHJNP", + "CFGHLMN", + "CFGHLMP", + "CFGHLNP", + "CFGHMNP", + "CFGIJLM", + "CFGIJLN", + "CFGIJLP", + "CFGIJMN", + "CFGIJMP", + "CFGIJNP", + "CFGILMN", + "CFGILMP", + "CFGILNP", + "CFGIMNP", + "CFGJLMN", + "CFGJLMP", + "CFGJLNP", + "CFGJMNP", + "CFGLMNP", + "CFHIJLM", + "CFHIJLN", + "CFHIJLP", + "CFHIJMN", + "CFHIJMP", + "CFHIJNP", + "CFHILMN", + "CFHILMP", + "CFHILNP", + "CFHIMNP", + "CFHJLMN", + "CFHJLMP", + "CFHJLNP", + "CFHJMNP", + "CFHLMNP", + "CFIJLMN", + "CFIJLMP", + "CFIJLNP", + "CFIJMNP", + "CFILMNP", + "CFJLMNP", + "CGHIJLM", + "CGHIJLN", + "CGHIJLP", + "CGHIJMN", + "CGHIJMP", + "CGHIJNP", + "CGHILMN", + "CGHILMP", + "CGHILNP", + "CGHIMNP", + "CGHJLMN", + "CGHJLMP", + "CGHJLNP", + "CGHJMNP", + "CGHLMNP", + "CGIJLMN", + "CGIJLMP", + "CGIJLNP", + "CGIJMNP", + "CGILMNP", + "CGJLMNP", + "CHIJLMN", + "CHIJLMP", + "CHIJLNP", + "CHIJMNP", + "CHILMNP", + "CHJLMNP", + "CIJLMNP", + "EFGHIJL", + "EFGHIJM", + "EFGHIJN", + "EFGHIJP", + "EFGHILM", + "EFGHILN", + "EFGHILP", + "EFGHIMN", + "EFGHIMP", + "EFGHINP", + "EFGHJLM", + "EFGHJLN", + "EFGHJLP", + "EFGHJMN", + "EFGHJMP", + "EFGHJNP", + "EFGHLMN", + "EFGHLMP", + "EFGHLNP", + "EFGHMNP", + "EFGIJLM", + "EFGIJLN", + "EFGIJLP", + "EFGIJMN", + "EFGIJMP", + "EFGIJNP", + "EFGILMN", + "EFGILMP", + "EFGILNP", + "EFGIMNP", + "EFGJLMN", + "EFGJLMP", + "EFGJLNP", + "EFGJMNP", + "EFGLMNP", + "EFHIJLM", + "EFHIJLN", + "EFHIJLP", + "EFHIJMN", + "EFHIJMP", + "EFHIJNP", + "EFHILMN", + "EFHILMP", + "EFHILNP", + "EFHIMNP", + "EFHJLMN", + "EFHJLMP", + "EFHJLNP", + "EFHJMNP", + "EFHLMNP", + "EFIJLMN", + "EFIJLMP", + "EFIJLNP", + "EFIJMNP", + "EFILMNP", + "EFJLMNP", + "EGHIJLM", + "EGHIJLN", + "EGHIJLP", + "EGHIJMN", + "EGHIJMP", + "EGHIJNP", + "EGHILMN", + "EGHILMP", + "EGHILNP", + "EGHIMNP", + "EGHJLMN", + "EGHJLMP", + "EGHJLNP", + "EGHJMNP", + "EGHLMNP", + "EGIJLMN", + "EGIJLMP", + "EGIJLNP", + "EGIJMNP", + "EGILMNP", + "EGJLMNP", + "EHIJLMN", + "EHIJLMP", + "EHIJLNP", + "EHIJMNP", + "EHILMNP", + "EHJLMNP", + "EIJLMNP", + "FGHIJLM", + "FGHIJLN", + "FGHIJLP", + "FGHIJMN", + "FGHIJMP", + "FGHIJNP", + "FGHILMN", + "FGHILMP", + "FGHILNP", + "FGHIMNP", + "FGHJLMN", + "FGHJLMP", + "FGHJLNP", + "FGHJMNP", + "FGHLMNP", + "FGIJLMN", + "FGIJLMP", + "FGIJLNP", + "FGIJMNP", + "FGILMNP", + "FGJLMNP", + "FHIJLMN", + "FHIJLMP", + "FHIJLNP", + "FHIJMNP", + "FHILMNP", + "FHJLMNP", + "FIJLMNP", + "GHIJLMN", + "GHIJLMP", + "GHIJLNP", + "GHIJMNP", + "GHILMNP", + "GHJLMNP", + "GIJLMNP", + "HIJLMNP", + "ABCEFGHI", + "ABCEFGHJ", + "ABCEFGHL", + "ABCEFGHM", + "ABCEFGHN", + "ABCEFGHP", + "ABCEFGIJ", + "ABCEFGIL", + "ABCEFGIM", + "ABCEFGIN", + "ABCEFGIP", + "ABCEFGJL", + "ABCEFGJM", + "ABCEFGJN", + "ABCEFGJP", + "ABCEFGLM", + "ABCEFGLN", + "ABCEFGLP", + "ABCEFGMN", + "ABCEFGMP", + "ABCEFGNP", + "ABCEFHIJ", + "ABCEFHIL", + "ABCEFHIM", + "ABCEFHIN", + "ABCEFHIP", + "ABCEFHJL", + "ABCEFHJM", + "ABCEFHJN", + "ABCEFHJP", + "ABCEFHLM", + "ABCEFHLN", + "ABCEFHLP", + "ABCEFHMN", + "ABCEFHMP", + "ABCEFHNP", + "ABCEFIJL", + "ABCEFIJM", + "ABCEFIJN", + "ABCEFIJP", + "ABCEFILM", + "ABCEFILN", + "ABCEFILP", + "ABCEFIMN", + "ABCEFIMP", + "ABCEFINP", + "ABCEFJLM", + "ABCEFJLN", + "ABCEFJLP", + "ABCEFJMN", + "ABCEFJMP", + "ABCEFJNP", + "ABCEFLMN", + "ABCEFLMP", + "ABCEFLNP", + "ABCEFMNP", + "ABCEGHIJ", + "ABCEGHIL", + "ABCEGHIM", + "ABCEGHIN", + "ABCEGHIP", + "ABCEGHJL", + "ABCEGHJM", + "ABCEGHJN", + "ABCEGHJP", + "ABCEGHLM", + "ABCEGHLN", + "ABCEGHLP", + "ABCEGHMN", + "ABCEGHMP", + "ABCEGHNP", + "ABCEGIJL", + "ABCEGIJM", + "ABCEGIJN", + "ABCEGIJP", + "ABCEGILM", + "ABCEGILN", + "ABCEGILP", + "ABCEGIMN", + "ABCEGIMP", + "ABCEGINP", + "ABCEGJLM", + "ABCEGJLN", + "ABCEGJLP", + "ABCEGJMN", + "ABCEGJMP", + "ABCEGJNP", + "ABCEGLMN", + "ABCEGLMP", + "ABCEGLNP", + "ABCEGMNP", + "ABCEHIJL", + "ABCEHIJM", + "ABCEHIJN", + "ABCEHIJP", + "ABCEHILM", + "ABCEHILN", + "ABCEHILP", + "ABCEHIMN", + "ABCEHIMP", + "ABCEHINP", + "ABCEHJLM", + "ABCEHJLN", + "ABCEHJLP", + "ABCEHJMN", + "ABCEHJMP", + "ABCEHJNP", + "ABCEHLMN", + "ABCEHLMP", + "ABCEHLNP", + "ABCEHMNP", + "ABCEIJLM", + "ABCEIJLN", + "ABCEIJLP", + "ABCEIJMN", + "ABCEIJMP", + "ABCEIJNP", + "ABCEILMN", + "ABCEILMP", + "ABCEILNP", + "ABCEIMNP", + "ABCEJLMN", + "ABCEJLMP", + "ABCEJLNP", + "ABCEJMNP", + "ABCELMNP", + "ABCFGHIJ", + "ABCFGHIL", + "ABCFGHIM", + "ABCFGHIN", + "ABCFGHIP", + "ABCFGHJL", + "ABCFGHJM", + "ABCFGHJN", + "ABCFGHJP", + "ABCFGHLM", + "ABCFGHLN", + "ABCFGHLP", + "ABCFGHMN", + "ABCFGHMP", + "ABCFGHNP", + "ABCFGIJL", + "ABCFGIJM", + "ABCFGIJN", + "ABCFGIJP", + "ABCFGILM", + "ABCFGILN", + "ABCFGILP", + "ABCFGIMN", + "ABCFGIMP", + "ABCFGINP", + "ABCFGJLM", + "ABCFGJLN", + "ABCFGJLP", + "ABCFGJMN", + "ABCFGJMP", + "ABCFGJNP", + "ABCFGLMN", + "ABCFGLMP", + "ABCFGLNP", + "ABCFGMNP", + "ABCFHIJL", + "ABCFHIJM", + "ABCFHIJN", + "ABCFHIJP", + "ABCFHILM", + "ABCFHILN", + "ABCFHILP", + "ABCFHIMN", + "ABCFHIMP", + "ABCFHINP", + "ABCFHJLM", + "ABCFHJLN", + "ABCFHJLP", + "ABCFHJMN", + "ABCFHJMP", + "ABCFHJNP", + "ABCFHLMN", + "ABCFHLMP", + "ABCFHLNP", + "ABCFHMNP", + "ABCFIJLM", + "ABCFIJLN", + "ABCFIJLP", + "ABCFIJMN", + "ABCFIJMP", + "ABCFIJNP", + "ABCFILMN", + "ABCFILMP", + "ABCFILNP", + "ABCFIMNP", + "ABCFJLMN", + "ABCFJLMP", + "ABCFJLNP", + "ABCFJMNP", + "ABCFLMNP", + "ABCGHIJL", + "ABCGHIJM", + "ABCGHIJN", + "ABCGHIJP", + "ABCGHILM", + "ABCGHILN", + "ABCGHILP", + "ABCGHIMN", + "ABCGHIMP", + "ABCGHINP", + "ABCGHJLM", + "ABCGHJLN", + "ABCGHJLP", + "ABCGHJMN", + "ABCGHJMP", + "ABCGHJNP", + "ABCGHLMN", + "ABCGHLMP", + "ABCGHLNP", + "ABCGHMNP", + "ABCGIJLM", + "ABCGIJLN", + "ABCGIJLP", + "ABCGIJMN", + "ABCGIJMP", + "ABCGIJNP", + "ABCGILMN", + "ABCGILMP", + "ABCGILNP", + "ABCGIMNP", + "ABCGJLMN", + "ABCGJLMP", + "ABCGJLNP", + "ABCGJMNP", + "ABCGLMNP", + "ABCHIJLM", + "ABCHIJLN", + "ABCHIJLP", + "ABCHIJMN", + "ABCHIJMP", + "ABCHIJNP", + "ABCHILMN", + "ABCHILMP", + "ABCHILNP", + "ABCHIMNP", + "ABCHJLMN", + "ABCHJLMP", + "ABCHJLNP", + "ABCHJMNP", + "ABCHLMNP", + "ABCIJLMN", + "ABCIJLMP", + "ABCIJLNP", + "ABCIJMNP", + "ABCILMNP", + "ABCJLMNP", + "ABEFGHIJ", + "ABEFGHIL", + "ABEFGHIM", + "ABEFGHIN", + "ABEFGHIP", + "ABEFGHJL", + "ABEFGHJM", + "ABEFGHJN", + "ABEFGHJP", + "ABEFGHLM", + "ABEFGHLN", + "ABEFGHLP", + "ABEFGHMN", + "ABEFGHMP", + "ABEFGHNP", + "ABEFGIJL", + "ABEFGIJM", + "ABEFGIJN", + "ABEFGIJP", + "ABEFGILM", + "ABEFGILN", + "ABEFGILP", + "ABEFGIMN", + "ABEFGIMP", + "ABEFGINP", + "ABEFGJLM", + "ABEFGJLN", + "ABEFGJLP", + "ABEFGJMN", + "ABEFGJMP", + "ABEFGJNP", + "ABEFGLMN", + "ABEFGLMP", + "ABEFGLNP", + "ABEFGMNP", + "ABEFHIJL", + "ABEFHIJM", + "ABEFHIJN", + "ABEFHIJP", + "ABEFHILM", + "ABEFHILN", + "ABEFHILP", + "ABEFHIMN", + "ABEFHIMP", + "ABEFHINP", + "ABEFHJLM", + "ABEFHJLN", + "ABEFHJLP", + "ABEFHJMN", + "ABEFHJMP", + "ABEFHJNP", + "ABEFHLMN", + "ABEFHLMP", + "ABEFHLNP", + "ABEFHMNP", + "ABEFIJLM", + "ABEFIJLN", + "ABEFIJLP", + "ABEFIJMN", + "ABEFIJMP", + "ABEFIJNP", + "ABEFILMN", + "ABEFILMP", + "ABEFILNP", + "ABEFIMNP", + "ABEFJLMN", + "ABEFJLMP", + "ABEFJLNP", + "ABEFJMNP", + "ABEFLMNP", + "ABEGHIJL", + "ABEGHIJM", + "ABEGHIJN", + "ABEGHIJP", + "ABEGHILM", + "ABEGHILN", + "ABEGHILP", + "ABEGHIMN", + "ABEGHIMP", + "ABEGHINP", + "ABEGHJLM", + "ABEGHJLN", + "ABEGHJLP", + "ABEGHJMN", + "ABEGHJMP", + "ABEGHJNP", + "ABEGHLMN", + "ABEGHLMP", + "ABEGHLNP", + "ABEGHMNP", + "ABEGIJLM", + "ABEGIJLN", + "ABEGIJLP", + "ABEGIJMN", + "ABEGIJMP", + "ABEGIJNP", + "ABEGILMN", + "ABEGILMP", + "ABEGILNP", + "ABEGIMNP", + "ABEGJLMN", + "ABEGJLMP", + "ABEGJLNP", + "ABEGJMNP", + "ABEGLMNP", + "ABEHIJLM", + "ABEHIJLN", + "ABEHIJLP", + "ABEHIJMN", + "ABEHIJMP", + "ABEHIJNP", + "ABEHILMN", + "ABEHILMP", + "ABEHILNP", + "ABEHIMNP", + "ABEHJLMN", + "ABEHJLMP", + "ABEHJLNP", + "ABEHJMNP", + "ABEHLMNP", + "ABEIJLMN", + "ABEIJLMP", + "ABEIJLNP", + "ABEIJMNP", + "ABEILMNP", + "ABEJLMNP", + "ABFGHIJL", + "ABFGHIJM", + "ABFGHIJN", + "ABFGHIJP", + "ABFGHILM", + "ABFGHILN", + "ABFGHILP", + "ABFGHIMN", + "ABFGHIMP", + "ABFGHINP", + "ABFGHJLM", + "ABFGHJLN", + "ABFGHJLP", + "ABFGHJMN", + "ABFGHJMP", + "ABFGHJNP", + "ABFGHLMN", + "ABFGHLMP", + "ABFGHLNP", + "ABFGHMNP", + "ABFGIJLM", + "ABFGIJLN", + "ABFGIJLP", + "ABFGIJMN", + "ABFGIJMP", + "ABFGIJNP", + "ABFGILMN", + "ABFGILMP", + "ABFGILNP", + "ABFGIMNP", + "ABFGJLMN", + "ABFGJLMP", + "ABFGJLNP", + "ABFGJMNP", + "ABFGLMNP", + "ABFHIJLM", + "ABFHIJLN", + "ABFHIJLP", + "ABFHIJMN", + "ABFHIJMP", + "ABFHIJNP", + "ABFHILMN", + "ABFHILMP", + "ABFHILNP", + "ABFHIMNP", + "ABFHJLMN", + "ABFHJLMP", + "ABFHJLNP", + "ABFHJMNP", + "ABFHLMNP", + "ABFIJLMN", + "ABFIJLMP", + "ABFIJLNP", + "ABFIJMNP", + "ABFILMNP", + "ABFJLMNP", + "ABGHIJLM", + "ABGHIJLN", + "ABGHIJLP", + "ABGHIJMN", + "ABGHIJMP", + "ABGHIJNP", + "ABGHILMN", + "ABGHILMP", + "ABGHILNP", + "ABGHIMNP", + "ABGHJLMN", + "ABGHJLMP", + "ABGHJLNP", + "ABGHJMNP", + "ABGHLMNP", + "ABGIJLMN", + "ABGIJLMP", + "ABGIJLNP", + "ABGIJMNP", + "ABGILMNP", + "ABGJLMNP", + "ABHIJLMN", + "ABHIJLMP", + "ABHIJLNP", + "ABHIJMNP", + "ABHILMNP", + "ABHJLMNP", + "ABIJLMNP", + "ACEFGHIJ", + "ACEFGHIL", + "ACEFGHIM", + "ACEFGHIN", + "ACEFGHIP", + "ACEFGHJL", + "ACEFGHJM", + "ACEFGHJN", + "ACEFGHJP", + "ACEFGHLM", + "ACEFGHLN", + "ACEFGHLP", + "ACEFGHMN", + "ACEFGHMP", + "ACEFGHNP", + "ACEFGIJL", + "ACEFGIJM", + "ACEFGIJN", + "ACEFGIJP", + "ACEFGILM", + "ACEFGILN", + "ACEFGILP", + "ACEFGIMN", + "ACEFGIMP", + "ACEFGINP", + "ACEFGJLM", + "ACEFGJLN", + "ACEFGJLP", + "ACEFGJMN", + "ACEFGJMP", + "ACEFGJNP", + "ACEFGLMN", + "ACEFGLMP", + "ACEFGLNP", + "ACEFGMNP", + "ACEFHIJL", + "ACEFHIJM", + "ACEFHIJN", + "ACEFHIJP", + "ACEFHILM", + "ACEFHILN", + "ACEFHILP", + "ACEFHIMN", + "ACEFHIMP", + "ACEFHINP", + "ACEFHJLM", + "ACEFHJLN", + "ACEFHJLP", + "ACEFHJMN", + "ACEFHJMP", + "ACEFHJNP", + "ACEFHLMN", + "ACEFHLMP", + "ACEFHLNP", + "ACEFHMNP", + "ACEFIJLM", + "ACEFIJLN", + "ACEFIJLP", + "ACEFIJMN", + "ACEFIJMP", + "ACEFIJNP", + "ACEFILMN", + "ACEFILMP", + "ACEFILNP", + "ACEFIMNP", + "ACEFJLMN", + "ACEFJLMP", + "ACEFJLNP", + "ACEFJMNP", + "ACEFLMNP", + "ACEGHIJL", + "ACEGHIJM", + "ACEGHIJN", + "ACEGHIJP", + "ACEGHILM", + "ACEGHILN", + "ACEGHILP", + "ACEGHIMN", + "ACEGHIMP", + "ACEGHINP", + "ACEGHJLM", + "ACEGHJLN", + "ACEGHJLP", + "ACEGHJMN", + "ACEGHJMP", + "ACEGHJNP", + "ACEGHLMN", + "ACEGHLMP", + "ACEGHLNP", + "ACEGHMNP", + "ACEGIJLM", + "ACEGIJLN", + "ACEGIJLP", + "ACEGIJMN", + "ACEGIJMP", + "ACEGIJNP", + "ACEGILMN", + "ACEGILMP", + "ACEGILNP", + "ACEGIMNP", + "ACEGJLMN", + "ACEGJLMP", + "ACEGJLNP", + "ACEGJMNP", + "ACEGLMNP", + "ACEHIJLM", + "ACEHIJLN", + "ACEHIJLP", + "ACEHIJMN", + "ACEHIJMP", + "ACEHIJNP", + "ACEHILMN", + "ACEHILMP", + "ACEHILNP", + "ACEHIMNP", + "ACEHJLMN", + "ACEHJLMP", + "ACEHJLNP", + "ACEHJMNP", + "ACEHLMNP", + "ACEIJLMN", + "ACEIJLMP", + "ACEIJLNP", + "ACEIJMNP", + "ACEILMNP", + "ACEJLMNP", + "ACFGHIJL", + "ACFGHIJM", + "ACFGHIJN", + "ACFGHIJP", + "ACFGHILM", + "ACFGHILN", + "ACFGHILP", + "ACFGHIMN", + "ACFGHIMP", + "ACFGHINP", + "ACFGHJLM", + "ACFGHJLN", + "ACFGHJLP", + "ACFGHJMN", + "ACFGHJMP", + "ACFGHJNP", + "ACFGHLMN", + "ACFGHLMP", + "ACFGHLNP", + "ACFGHMNP", + "ACFGIJLM", + "ACFGIJLN", + "ACFGIJLP", + "ACFGIJMN", + "ACFGIJMP", + "ACFGIJNP", + "ACFGILMN", + "ACFGILMP", + "ACFGILNP", + "ACFGIMNP", + "ACFGJLMN", + "ACFGJLMP", + "ACFGJLNP", + "ACFGJMNP", + "ACFGLMNP", + "ACFHIJLM", + "ACFHIJLN", + "ACFHIJLP", + "ACFHIJMN", + "ACFHIJMP", + "ACFHIJNP", + "ACFHILMN", + "ACFHILMP", + "ACFHILNP", + "ACFHIMNP", + "ACFHJLMN", + "ACFHJLMP", + "ACFHJLNP", + "ACFHJMNP", + "ACFHLMNP", + "ACFIJLMN", + "ACFIJLMP", + "ACFIJLNP", + "ACFIJMNP", + "ACFILMNP", + "ACFJLMNP", + "ACGHIJLM", + "ACGHIJLN", + "ACGHIJLP", + "ACGHIJMN", + "ACGHIJMP", + "ACGHIJNP", + "ACGHILMN", + "ACGHILMP", + "ACGHILNP", + "ACGHIMNP", + "ACGHJLMN", + "ACGHJLMP", + "ACGHJLNP", + "ACGHJMNP", + "ACGHLMNP", + "ACGIJLMN", + "ACGIJLMP", + "ACGIJLNP", + "ACGIJMNP", + "ACGILMNP", + "ACGJLMNP", + "ACHIJLMN", + "ACHIJLMP", + "ACHIJLNP", + "ACHIJMNP", + "ACHILMNP", + "ACHJLMNP", + "ACIJLMNP", + "AEFGHIJL", + "AEFGHIJM", + "AEFGHIJN", + "AEFGHIJP", + "AEFGHILM", + "AEFGHILN", + "AEFGHILP", + "AEFGHIMN", + "AEFGHIMP", + "AEFGHINP", + "AEFGHJLM", + "AEFGHJLN", + "AEFGHJLP", + "AEFGHJMN", + "AEFGHJMP", + "AEFGHJNP", + "AEFGHLMN", + "AEFGHLMP", + "AEFGHLNP", + "AEFGHMNP", + "AEFGIJLM", + "AEFGIJLN", + "AEFGIJLP", + "AEFGIJMN", + "AEFGIJMP", + "AEFGIJNP", + "AEFGILMN", + "AEFGILMP", + "AEFGILNP", + "AEFGIMNP", + "AEFGJLMN", + "AEFGJLMP", + "AEFGJLNP", + "AEFGJMNP", + "AEFGLMNP", + "AEFHIJLM", + "AEFHIJLN", + "AEFHIJLP", + "AEFHIJMN", + "AEFHIJMP", + "AEFHIJNP", + "AEFHILMN", + "AEFHILMP", + "AEFHILNP", + "AEFHIMNP", + "AEFHJLMN", + "AEFHJLMP", + "AEFHJLNP", + "AEFHJMNP", + "AEFHLMNP", + "AEFIJLMN", + "AEFIJLMP", + "AEFIJLNP", + "AEFIJMNP", + "AEFILMNP", + "AEFJLMNP", + "AEGHIJLM", + "AEGHIJLN", + "AEGHIJLP", + "AEGHIJMN", + "AEGHIJMP", + "AEGHIJNP", + "AEGHILMN", + "AEGHILMP", + "AEGHILNP", + "AEGHIMNP", + "AEGHJLMN", + "AEGHJLMP", + "AEGHJLNP", + "AEGHJMNP", + "AEGHLMNP", + "AEGIJLMN", + "AEGIJLMP", + "AEGIJLNP", + "AEGIJMNP", + "AEGILMNP", + "AEGJLMNP", + "AEHIJLMN", + "AEHIJLMP", + "AEHIJLNP", + "AEHIJMNP", + "AEHILMNP", + "AEHJLMNP", + "AEIJLMNP", + "AFGHIJLM", + "AFGHIJLN", + "AFGHIJLP", + "AFGHIJMN", + "AFGHIJMP", + "AFGHIJNP", + "AFGHILMN", + "AFGHILMP", + "AFGHILNP", + "AFGHIMNP", + "AFGHJLMN", + "AFGHJLMP", + "AFGHJLNP", + "AFGHJMNP", + "AFGHLMNP", + "AFGIJLMN", + "AFGIJLMP", + "AFGIJLNP", + "AFGIJMNP", + "AFGILMNP", + "AFGJLMNP", + "AFHIJLMN", + "AFHIJLMP", + "AFHIJLNP", + "AFHIJMNP", + "AFHILMNP", + "AFHJLMNP", + "AFIJLMNP", + "AGHIJLMN", + "AGHIJLMP", + "AGHIJLNP", + "AGHIJMNP", + "AGHILMNP", + "AGHJLMNP", + "AGIJLMNP", + "AHIJLMNP", + "BCEFGHIJ", + "BCEFGHIL", + "BCEFGHIM", + "BCEFGHIN", + "BCEFGHIP", + "BCEFGHJL", + "BCEFGHJM", + "BCEFGHJN", + "BCEFGHJP", + "BCEFGHLM", + "BCEFGHLN", + "BCEFGHLP", + "BCEFGHMN", + "BCEFGHMP", + "BCEFGHNP", + "BCEFGIJL", + "BCEFGIJM", + "BCEFGIJN", + "BCEFGIJP", + "BCEFGILM", + "BCEFGILN", + "BCEFGILP", + "BCEFGIMN", + "BCEFGIMP", + "BCEFGINP", + "BCEFGJLM", + "BCEFGJLN", + "BCEFGJLP", + "BCEFGJMN", + "BCEFGJMP", + "BCEFGJNP", + "BCEFGLMN", + "BCEFGLMP", + "BCEFGLNP", + "BCEFGMNP", + "BCEFHIJL", + "BCEFHIJM", + "BCEFHIJN", + "BCEFHIJP", + "BCEFHILM", + "BCEFHILN", + "BCEFHILP", + "BCEFHIMN", + "BCEFHIMP", + "BCEFHINP", + "BCEFHJLM", + "BCEFHJLN", + "BCEFHJLP", + "BCEFHJMN", + "BCEFHJMP", + "BCEFHJNP", + "BCEFHLMN", + "BCEFHLMP", + "BCEFHLNP", + "BCEFHMNP", + "BCEFIJLM", + "BCEFIJLN", + "BCEFIJLP", + "BCEFIJMN", + "BCEFIJMP", + "BCEFIJNP", + "BCEFILMN", + "BCEFILMP", + "BCEFILNP", + "BCEFIMNP", + "BCEFJLMN", + "BCEFJLMP", + "BCEFJLNP", + "BCEFJMNP", + "BCEFLMNP", + "BCEGHIJL", + "BCEGHIJM", + "BCEGHIJN", + "BCEGHIJP", + "BCEGHILM", + "BCEGHILN", + "BCEGHILP", + "BCEGHIMN", + "BCEGHIMP", + "BCEGHINP", + "BCEGHJLM", + "BCEGHJLN", + "BCEGHJLP", + "BCEGHJMN", + "BCEGHJMP", + "BCEGHJNP", + "BCEGHLMN", + "BCEGHLMP", + "BCEGHLNP", + "BCEGHMNP", + "BCEGIJLM", + "BCEGIJLN", + "BCEGIJLP", + "BCEGIJMN", + "BCEGIJMP", + "BCEGIJNP", + "BCEGILMN", + "BCEGILMP", + "BCEGILNP", + "BCEGIMNP", + "BCEGJLMN", + "BCEGJLMP", + "BCEGJLNP", + "BCEGJMNP", + "BCEGLMNP", + "BCEHIJLM", + "BCEHIJLN", + "BCEHIJLP", + "BCEHIJMN", + "BCEHIJMP", + "BCEHIJNP", + "BCEHILMN", + "BCEHILMP", + "BCEHILNP", + "BCEHIMNP", + "BCEHJLMN", + "BCEHJLMP", + "BCEHJLNP", + "BCEHJMNP", + "BCEHLMNP", + "BCEIJLMN", + "BCEIJLMP", + "BCEIJLNP", + "BCEIJMNP", + "BCEILMNP", + "BCEJLMNP", + "BCFGHIJL", + "BCFGHIJM", + "BCFGHIJN", + "BCFGHIJP", + "BCFGHILM", + "BCFGHILN", + "BCFGHILP", + "BCFGHIMN", + "BCFGHIMP", + "BCFGHINP", + "BCFGHJLM", + "BCFGHJLN", + "BCFGHJLP", + "BCFGHJMN", + "BCFGHJMP", + "BCFGHJNP", + "BCFGHLMN", + "BCFGHLMP", + "BCFGHLNP", + "BCFGHMNP", + "BCFGIJLM", + "BCFGIJLN", + "BCFGIJLP", + "BCFGIJMN", + "BCFGIJMP", + "BCFGIJNP", + "BCFGILMN", + "BCFGILMP", + "BCFGILNP", + "BCFGIMNP", + "BCFGJLMN", + "BCFGJLMP", + "BCFGJLNP", + "BCFGJMNP", + "BCFGLMNP", + "BCFHIJLM", + "BCFHIJLN", + "BCFHIJLP", + "BCFHIJMN", + "BCFHIJMP", + "BCFHIJNP", + "BCFHILMN", + "BCFHILMP", + "BCFHILNP", + "BCFHIMNP", + "BCFHJLMN", + "BCFHJLMP", + "BCFHJLNP", + "BCFHJMNP", + "BCFHLMNP", + "BCFIJLMN", + "BCFIJLMP", + "BCFIJLNP", + "BCFIJMNP", + "BCFILMNP", + "BCFJLMNP", + "BCGHIJLM", + "BCGHIJLN", + "BCGHIJLP", + "BCGHIJMN", + "BCGHIJMP", + "BCGHIJNP", + "BCGHILMN", + "BCGHILMP", + "BCGHILNP", + "BCGHIMNP", + "BCGHJLMN", + "BCGHJLMP", + "BCGHJLNP", + "BCGHJMNP", + "BCGHLMNP", + "BCGIJLMN", + "BCGIJLMP", + "BCGIJLNP", + "BCGIJMNP", + "BCGILMNP", + "BCGJLMNP", + "BCHIJLMN", + "BCHIJLMP", + "BCHIJLNP", + "BCHIJMNP", + "BCHILMNP", + "BCHJLMNP", + "BCIJLMNP", + "BEFGHIJL", + "BEFGHIJM", + "BEFGHIJN", + "BEFGHIJP", + "BEFGHILM", + "BEFGHILN", + "BEFGHILP", + "BEFGHIMN", + "BEFGHIMP", + "BEFGHINP", + "BEFGHJLM", + "BEFGHJLN", + "BEFGHJLP", + "BEFGHJMN", + "BEFGHJMP", + "BEFGHJNP", + "BEFGHLMN", + "BEFGHLMP", + "BEFGHLNP", + "BEFGHMNP", + "BEFGIJLM", + "BEFGIJLN", + "BEFGIJLP", + "BEFGIJMN", + "BEFGIJMP", + "BEFGIJNP", + "BEFGILMN", + "BEFGILMP", + "BEFGILNP", + "BEFGIMNP", + "BEFGJLMN", + "BEFGJLMP", + "BEFGJLNP", + "BEFGJMNP", + "BEFGLMNP", + "BEFHIJLM", + "BEFHIJLN", + "BEFHIJLP", + "BEFHIJMN", + "BEFHIJMP", + "BEFHIJNP", + "BEFHILMN", + "BEFHILMP", + "BEFHILNP", + "BEFHIMNP", + "BEFHJLMN", + "BEFHJLMP", + "BEFHJLNP", + "BEFHJMNP", + "BEFHLMNP", + "BEFIJLMN", + "BEFIJLMP", + "BEFIJLNP", + "BEFIJMNP", + "BEFILMNP", + "BEFJLMNP", + "BEGHIJLM", + "BEGHIJLN", + "BEGHIJLP", + "BEGHIJMN", + "BEGHIJMP", + "BEGHIJNP", + "BEGHILMN", + "BEGHILMP", + "BEGHILNP", + "BEGHIMNP", + "BEGHJLMN", + "BEGHJLMP", + "BEGHJLNP", + "BEGHJMNP", + "BEGHLMNP", + "BEGIJLMN", + "BEGIJLMP", + "BEGIJLNP", + "BEGIJMNP", + "BEGILMNP", + "BEGJLMNP", + "BEHIJLMN", + "BEHIJLMP", + "BEHIJLNP", + "BEHIJMNP", + "BEHILMNP", + "BEHJLMNP", + "BEIJLMNP", + "BFGHIJLM", + "BFGHIJLN", + "BFGHIJLP", + "BFGHIJMN", + "BFGHIJMP", + "BFGHIJNP", + "BFGHILMN", + "BFGHILMP", + "BFGHILNP", + "BFGHIMNP", + "BFGHJLMN", + "BFGHJLMP", + "BFGHJLNP", + "BFGHJMNP", + "BFGHLMNP", + "BFGIJLMN", + "BFGIJLMP", + "BFGIJLNP", + "BFGIJMNP", + "BFGILMNP", + "BFGJLMNP", + "BFHIJLMN", + "BFHIJLMP", + "BFHIJLNP", + "BFHIJMNP", + "BFHILMNP", + "BFHJLMNP", + "BFIJLMNP", + "BGHIJLMN", + "BGHIJLMP", + "BGHIJLNP", + "BGHIJMNP", + "BGHILMNP", + "BGHJLMNP", + "BGIJLMNP", + "BHIJLMNP", + "CEFGHIJL", + "CEFGHIJM", + "CEFGHIJN", + "CEFGHIJP", + "CEFGHILM", + "CEFGHILN", + "CEFGHILP", + "CEFGHIMN", + "CEFGHIMP", + "CEFGHINP", + "CEFGHJLM", + "CEFGHJLN", + "CEFGHJLP", + "CEFGHJMN", + "CEFGHJMP", + "CEFGHJNP", + "CEFGHLMN", + "CEFGHLMP", + "CEFGHLNP", + "CEFGHMNP", + "CEFGIJLM", + "CEFGIJLN", + "CEFGIJLP", + "CEFGIJMN", + "CEFGIJMP", + "CEFGIJNP", + "CEFGILMN", + "CEFGILMP", + "CEFGILNP", + "CEFGIMNP", + "CEFGJLMN", + "CEFGJLMP", + "CEFGJLNP", + "CEFGJMNP", + "CEFGLMNP", + "CEFHIJLM", + "CEFHIJLN", + "CEFHIJLP", + "CEFHIJMN", + "CEFHIJMP", + "CEFHIJNP", + "CEFHILMN", + "CEFHILMP", + "CEFHILNP", + "CEFHIMNP", + "CEFHJLMN", + "CEFHJLMP", + "CEFHJLNP", + "CEFHJMNP", + "CEFHLMNP", + "CEFIJLMN", + "CEFIJLMP", + "CEFIJLNP", + "CEFIJMNP", + "CEFILMNP", + "CEFJLMNP", + "CEGHIJLM", + "CEGHIJLN", + "CEGHIJLP", + "CEGHIJMN", + "CEGHIJMP", + "CEGHIJNP", + "CEGHILMN", + "CEGHILMP", + "CEGHILNP", + "CEGHIMNP", + "CEGHJLMN", + "CEGHJLMP", + "CEGHJLNP", + "CEGHJMNP", + "CEGHLMNP", + "CEGIJLMN", + "CEGIJLMP", + "CEGIJLNP", + "CEGIJMNP", + "CEGILMNP", + "CEGJLMNP", + "CEHIJLMN", + "CEHIJLMP", + "CEHIJLNP", + "CEHIJMNP", + "CEHILMNP", + "CEHJLMNP", + "CEIJLMNP", + "CFGHIJLM", + "CFGHIJLN", + "CFGHIJLP", + "CFGHIJMN", + "CFGHIJMP", + "CFGHIJNP", + "CFGHILMN", + "CFGHILMP", + "CFGHILNP", + "CFGHIMNP", + "CFGHJLMN", + "CFGHJLMP", + "CFGHJLNP", + "CFGHJMNP", + "CFGHLMNP", + "CFGIJLMN", + "CFGIJLMP", + "CFGIJLNP", + "CFGIJMNP", + "CFGILMNP", + "CFGJLMNP", + "CFHIJLMN", + "CFHIJLMP", + "CFHIJLNP", + "CFHIJMNP", + "CFHILMNP", + "CFHJLMNP", + "CFIJLMNP", + "CGHIJLMN", + "CGHIJLMP", + "CGHIJLNP", + "CGHIJMNP", + "CGHILMNP", + "CGHJLMNP", + "CGIJLMNP", + "CHIJLMNP", + "EFGHIJLM", + "EFGHIJLN", + "EFGHIJLP", + "EFGHIJMN", + "EFGHIJMP", + "EFGHIJNP", + "EFGHILMN", + "EFGHILMP", + "EFGHILNP", + "EFGHIMNP", + "EFGHJLMN", + "EFGHJLMP", + "EFGHJLNP", + "EFGHJMNP", + "EFGHLMNP", + "EFGIJLMN", + "EFGIJLMP", + "EFGIJLNP", + "EFGIJMNP", + "EFGILMNP", + "EFGJLMNP", + "EFHIJLMN", + "EFHIJLMP", + "EFHIJLNP", + "EFHIJMNP", + "EFHILMNP", + "EFHJLMNP", + "EFIJLMNP", + "EGHIJLMN", + "EGHIJLMP", + "EGHIJLNP", + "EGHIJMNP", + "EGHILMNP", + "EGHJLMNP", + "EGIJLMNP", + "EHIJLMNP", + "FGHIJLMN", + "FGHIJLMP", + "FGHIJLNP", + "FGHIJMNP", + "FGHILMNP", + "FGHJLMNP", + "FGIJLMNP", + "FHIJLMNP", + "GHIJLMNP", + "ABCEFGHIJ", + "ABCEFGHIL", + "ABCEFGHIM", + "ABCEFGHIN", + "ABCEFGHIP", + "ABCEFGHJL", + "ABCEFGHJM", + "ABCEFGHJN", + "ABCEFGHJP", + "ABCEFGHLM", + "ABCEFGHLN", + "ABCEFGHLP", + "ABCEFGHMN", + "ABCEFGHMP", + "ABCEFGHNP", + "ABCEFGIJL", + "ABCEFGIJM", + "ABCEFGIJN", + "ABCEFGIJP", + "ABCEFGILM", + "ABCEFGILN", + "ABCEFGILP", + "ABCEFGIMN", + "ABCEFGIMP", + "ABCEFGINP", + "ABCEFGJLM", + "ABCEFGJLN", + "ABCEFGJLP", + "ABCEFGJMN", + "ABCEFGJMP", + "ABCEFGJNP", + "ABCEFGLMN", + "ABCEFGLMP", + "ABCEFGLNP", + "ABCEFGMNP", + "ABCEFHIJL", + "ABCEFHIJM", + "ABCEFHIJN", + "ABCEFHIJP", + "ABCEFHILM", + "ABCEFHILN", + "ABCEFHILP", + "ABCEFHIMN", + "ABCEFHIMP", + "ABCEFHINP", + "ABCEFHJLM", + "ABCEFHJLN", + "ABCEFHJLP", + "ABCEFHJMN", + "ABCEFHJMP", + "ABCEFHJNP", + "ABCEFHLMN", + "ABCEFHLMP", + "ABCEFHLNP", + "ABCEFHMNP", + "ABCEFIJLM", + "ABCEFIJLN", + "ABCEFIJLP", + "ABCEFIJMN", + "ABCEFIJMP", + "ABCEFIJNP", + "ABCEFILMN", + "ABCEFILMP", + "ABCEFILNP", + "ABCEFIMNP", + "ABCEFJLMN", + "ABCEFJLMP", + "ABCEFJLNP", + "ABCEFJMNP", + "ABCEFLMNP", + "ABCEGHIJL", + "ABCEGHIJM", + "ABCEGHIJN", + "ABCEGHIJP", + "ABCEGHILM", + "ABCEGHILN", + "ABCEGHILP", + "ABCEGHIMN", + "ABCEGHIMP", + "ABCEGHINP", + "ABCEGHJLM", + "ABCEGHJLN", + "ABCEGHJLP", + "ABCEGHJMN", + "ABCEGHJMP", + "ABCEGHJNP", + "ABCEGHLMN", + "ABCEGHLMP", + "ABCEGHLNP", + "ABCEGHMNP", + "ABCEGIJLM", + "ABCEGIJLN", + "ABCEGIJLP", + "ABCEGIJMN", + "ABCEGIJMP", + "ABCEGIJNP", + "ABCEGILMN", + "ABCEGILMP", + "ABCEGILNP", + "ABCEGIMNP", + "ABCEGJLMN", + "ABCEGJLMP", + "ABCEGJLNP", + "ABCEGJMNP", + "ABCEGLMNP", + "ABCEHIJLM", + "ABCEHIJLN", + "ABCEHIJLP", + "ABCEHIJMN", + "ABCEHIJMP", + "ABCEHIJNP", + "ABCEHILMN", + "ABCEHILMP", + "ABCEHILNP", + "ABCEHIMNP", + "ABCEHJLMN", + "ABCEHJLMP", + "ABCEHJLNP", + "ABCEHJMNP", + "ABCEHLMNP", + "ABCEIJLMN", + "ABCEIJLMP", + "ABCEIJLNP", + "ABCEIJMNP", + "ABCEILMNP", + "ABCEJLMNP", + "ABCFGHIJL", + "ABCFGHIJM", + "ABCFGHIJN", + "ABCFGHIJP", + "ABCFGHILM", + "ABCFGHILN", + "ABCFGHILP", + "ABCFGHIMN", + "ABCFGHIMP", + "ABCFGHINP", + "ABCFGHJLM", + "ABCFGHJLN", + "ABCFGHJLP", + "ABCFGHJMN", + "ABCFGHJMP", + "ABCFGHJNP", + "ABCFGHLMN", + "ABCFGHLMP", + "ABCFGHLNP", + "ABCFGHMNP", + "ABCFGIJLM", + "ABCFGIJLN", + "ABCFGIJLP", + "ABCFGIJMN", + "ABCFGIJMP", + "ABCFGIJNP", + "ABCFGILMN", + "ABCFGILMP", + "ABCFGILNP", + "ABCFGIMNP", + "ABCFGJLMN", + "ABCFGJLMP", + "ABCFGJLNP", + "ABCFGJMNP", + "ABCFGLMNP", + "ABCFHIJLM", + "ABCFHIJLN", + "ABCFHIJLP", + "ABCFHIJMN", + "ABCFHIJMP", + "ABCFHIJNP", + "ABCFHILMN", + "ABCFHILMP", + "ABCFHILNP", + "ABCFHIMNP", + "ABCFHJLMN", + "ABCFHJLMP", + "ABCFHJLNP", + "ABCFHJMNP", + "ABCFHLMNP", + "ABCFIJLMN", + "ABCFIJLMP", + "ABCFIJLNP", + "ABCFIJMNP", + "ABCFILMNP", + "ABCFJLMNP", + "ABCGHIJLM", + "ABCGHIJLN", + "ABCGHIJLP", + "ABCGHIJMN", + "ABCGHIJMP", + "ABCGHIJNP", + "ABCGHILMN", + "ABCGHILMP", + "ABCGHILNP", + "ABCGHIMNP", + "ABCGHJLMN", + "ABCGHJLMP", + "ABCGHJLNP", + "ABCGHJMNP", + "ABCGHLMNP", + "ABCGIJLMN", + "ABCGIJLMP", + "ABCGIJLNP", + "ABCGIJMNP", + "ABCGILMNP", + "ABCGJLMNP", + "ABCHIJLMN", + "ABCHIJLMP", + "ABCHIJLNP", + "ABCHIJMNP", + "ABCHILMNP", + "ABCHJLMNP", + "ABCIJLMNP", + "ABEFGHIJL", + "ABEFGHIJM", + "ABEFGHIJN", + "ABEFGHIJP", + "ABEFGHILM", + "ABEFGHILN", + "ABEFGHILP", + "ABEFGHIMN", + "ABEFGHIMP", + "ABEFGHINP", + "ABEFGHJLM", + "ABEFGHJLN", + "ABEFGHJLP", + "ABEFGHJMN", + "ABEFGHJMP", + "ABEFGHJNP", + "ABEFGHLMN", + "ABEFGHLMP", + "ABEFGHLNP", + "ABEFGHMNP", + "ABEFGIJLM", + "ABEFGIJLN", + "ABEFGIJLP", + "ABEFGIJMN", + "ABEFGIJMP", + "ABEFGIJNP", + "ABEFGILMN", + "ABEFGILMP", + "ABEFGILNP", + "ABEFGIMNP", + "ABEFGJLMN", + "ABEFGJLMP", + "ABEFGJLNP", + "ABEFGJMNP", + "ABEFGLMNP", + "ABEFHIJLM", + "ABEFHIJLN", + "ABEFHIJLP", + "ABEFHIJMN", + "ABEFHIJMP", + "ABEFHIJNP", + "ABEFHILMN", + "ABEFHILMP", + "ABEFHILNP", + "ABEFHIMNP", + "ABEFHJLMN", + "ABEFHJLMP", + "ABEFHJLNP", + "ABEFHJMNP", + "ABEFHLMNP", + "ABEFIJLMN", + "ABEFIJLMP", + "ABEFIJLNP", + "ABEFIJMNP", + "ABEFILMNP", + "ABEFJLMNP", + "ABEGHIJLM", + "ABEGHIJLN", + "ABEGHIJLP", + "ABEGHIJMN", + "ABEGHIJMP", + "ABEGHIJNP", + "ABEGHILMN", + "ABEGHILMP", + "ABEGHILNP", + "ABEGHIMNP", + "ABEGHJLMN", + "ABEGHJLMP", + "ABEGHJLNP", + "ABEGHJMNP", + "ABEGHLMNP", + "ABEGIJLMN", + "ABEGIJLMP", + "ABEGIJLNP", + "ABEGIJMNP", + "ABEGILMNP", + "ABEGJLMNP", + "ABEHIJLMN", + "ABEHIJLMP", + "ABEHIJLNP", + "ABEHIJMNP", + "ABEHILMNP", + "ABEHJLMNP", + "ABEIJLMNP", + "ABFGHIJLM", + "ABFGHIJLN", + "ABFGHIJLP", + "ABFGHIJMN", + "ABFGHIJMP", + "ABFGHIJNP", + "ABFGHILMN", + "ABFGHILMP", + "ABFGHILNP", + "ABFGHIMNP", + "ABFGHJLMN", + "ABFGHJLMP", + "ABFGHJLNP", + "ABFGHJMNP", + "ABFGHLMNP", + "ABFGIJLMN", + "ABFGIJLMP", + "ABFGIJLNP", + "ABFGIJMNP", + "ABFGILMNP", + "ABFGJLMNP", + "ABFHIJLMN", + "ABFHIJLMP", + "ABFHIJLNP", + "ABFHIJMNP", + "ABFHILMNP", + "ABFHJLMNP", + "ABFIJLMNP", + "ABGHIJLMN", + "ABGHIJLMP", + "ABGHIJLNP", + "ABGHIJMNP", + "ABGHILMNP", + "ABGHJLMNP", + "ABGIJLMNP", + "ABHIJLMNP", + "ACEFGHIJL", + "ACEFGHIJM", + "ACEFGHIJN", + "ACEFGHIJP", + "ACEFGHILM", + "ACEFGHILN", + "ACEFGHILP", + "ACEFGHIMN", + "ACEFGHIMP", + "ACEFGHINP", + "ACEFGHJLM", + "ACEFGHJLN", + "ACEFGHJLP", + "ACEFGHJMN", + "ACEFGHJMP", + "ACEFGHJNP", + "ACEFGHLMN", + "ACEFGHLMP", + "ACEFGHLNP", + "ACEFGHMNP", + "ACEFGIJLM", + "ACEFGIJLN", + "ACEFGIJLP", + "ACEFGIJMN", + "ACEFGIJMP", + "ACEFGIJNP", + "ACEFGILMN", + "ACEFGILMP", + "ACEFGILNP", + "ACEFGIMNP", + "ACEFGJLMN", + "ACEFGJLMP", + "ACEFGJLNP", + "ACEFGJMNP", + "ACEFGLMNP", + "ACEFHIJLM", + "ACEFHIJLN", + "ACEFHIJLP", + "ACEFHIJMN", + "ACEFHIJMP", + "ACEFHIJNP", + "ACEFHILMN", + "ACEFHILMP", + "ACEFHILNP", + "ACEFHIMNP", + "ACEFHJLMN", + "ACEFHJLMP", + "ACEFHJLNP", + "ACEFHJMNP", + "ACEFHLMNP", + "ACEFIJLMN", + "ACEFIJLMP", + "ACEFIJLNP", + "ACEFIJMNP", + "ACEFILMNP", + "ACEFJLMNP", + "ACEGHIJLM", + "ACEGHIJLN", + "ACEGHIJLP", + "ACEGHIJMN", + "ACEGHIJMP", + "ACEGHIJNP", + "ACEGHILMN", + "ACEGHILMP", + "ACEGHILNP", + "ACEGHIMNP", + "ACEGHJLMN", + "ACEGHJLMP", + "ACEGHJLNP", + "ACEGHJMNP", + "ACEGHLMNP", + "ACEGIJLMN", + "ACEGIJLMP", + "ACEGIJLNP", + "ACEGIJMNP", + "ACEGILMNP", + "ACEGJLMNP", + "ACEHIJLMN", + "ACEHIJLMP", + "ACEHIJLNP", + "ACEHIJMNP", + "ACEHILMNP", + "ACEHJLMNP", + "ACEIJLMNP", + "ACFGHIJLM", + "ACFGHIJLN", + "ACFGHIJLP", + "ACFGHIJMN", + "ACFGHIJMP", + "ACFGHIJNP", + "ACFGHILMN", + "ACFGHILMP", + "ACFGHILNP", + "ACFGHIMNP", + "ACFGHJLMN", + "ACFGHJLMP", + "ACFGHJLNP", + "ACFGHJMNP", + "ACFGHLMNP", + "ACFGIJLMN", + "ACFGIJLMP", + "ACFGIJLNP", + "ACFGIJMNP", + "ACFGILMNP", + "ACFGJLMNP", + "ACFHIJLMN", + "ACFHIJLMP", + "ACFHIJLNP", + "ACFHIJMNP", + "ACFHILMNP", + "ACFHJLMNP", + "ACFIJLMNP", + "ACGHIJLMN", + "ACGHIJLMP", + "ACGHIJLNP", + "ACGHIJMNP", + "ACGHILMNP", + "ACGHJLMNP", + "ACGIJLMNP", + "ACHIJLMNP", + "AEFGHIJLM", + "AEFGHIJLN", + "AEFGHIJLP", + "AEFGHIJMN", + "AEFGHIJMP", + "AEFGHIJNP", + "AEFGHILMN", + "AEFGHILMP", + "AEFGHILNP", + "AEFGHIMNP", + "AEFGHJLMN", + "AEFGHJLMP", + "AEFGHJLNP", + "AEFGHJMNP", + "AEFGHLMNP", + "AEFGIJLMN", + "AEFGIJLMP", + "AEFGIJLNP", + "AEFGIJMNP", + "AEFGILMNP", + "AEFGJLMNP", + "AEFHIJLMN", + "AEFHIJLMP", + "AEFHIJLNP", + "AEFHIJMNP", + "AEFHILMNP", + "AEFHJLMNP", + "AEFIJLMNP", + "AEGHIJLMN", + "AEGHIJLMP", + "AEGHIJLNP", + "AEGHIJMNP", + "AEGHILMNP", + "AEGHJLMNP", + "AEGIJLMNP", + "AEHIJLMNP", + "AFGHIJLMN", + "AFGHIJLMP", + "AFGHIJLNP", + "AFGHIJMNP", + "AFGHILMNP", + "AFGHJLMNP", + "AFGIJLMNP", + "AFHIJLMNP", + "AGHIJLMNP", + "BCEFGHIJL", + "BCEFGHIJM", + "BCEFGHIJN", + "BCEFGHIJP", + "BCEFGHILM", + "BCEFGHILN", + "BCEFGHILP", + "BCEFGHIMN", + "BCEFGHIMP", + "BCEFGHINP", + "BCEFGHJLM", + "BCEFGHJLN", + "BCEFGHJLP", + "BCEFGHJMN", + "BCEFGHJMP", + "BCEFGHJNP", + "BCEFGHLMN", + "BCEFGHLMP", + "BCEFGHLNP", + "BCEFGHMNP", + "BCEFGIJLM", + "BCEFGIJLN", + "BCEFGIJLP", + "BCEFGIJMN", + "BCEFGIJMP", + "BCEFGIJNP", + "BCEFGILMN", + "BCEFGILMP", + "BCEFGILNP", + "BCEFGIMNP", + "BCEFGJLMN", + "BCEFGJLMP", + "BCEFGJLNP", + "BCEFGJMNP", + "BCEFGLMNP", + "BCEFHIJLM", + "BCEFHIJLN", + "BCEFHIJLP", + "BCEFHIJMN", + "BCEFHIJMP", + "BCEFHIJNP", + "BCEFHILMN", + "BCEFHILMP", + "BCEFHILNP", + "BCEFHIMNP", + "BCEFHJLMN", + "BCEFHJLMP", + "BCEFHJLNP", + "BCEFHJMNP", + "BCEFHLMNP", + "BCEFIJLMN", + "BCEFIJLMP", + "BCEFIJLNP", + "BCEFIJMNP", + "BCEFILMNP", + "BCEFJLMNP", + "BCEGHIJLM", + "BCEGHIJLN", + "BCEGHIJLP", + "BCEGHIJMN", + "BCEGHIJMP", + "BCEGHIJNP", + "BCEGHILMN", + "BCEGHILMP", + "BCEGHILNP", + "BCEGHIMNP", + "BCEGHJLMN", + "BCEGHJLMP", + "BCEGHJLNP", + "BCEGHJMNP", + "BCEGHLMNP", + "BCEGIJLMN", + "BCEGIJLMP", + "BCEGIJLNP", + "BCEGIJMNP", + "BCEGILMNP", + "BCEGJLMNP", + "BCEHIJLMN", + "BCEHIJLMP", + "BCEHIJLNP", + "BCEHIJMNP", + "BCEHILMNP", + "BCEHJLMNP", + "BCEIJLMNP", + "BCFGHIJLM", + "BCFGHIJLN", + "BCFGHIJLP", + "BCFGHIJMN", + "BCFGHIJMP", + "BCFGHIJNP", + "BCFGHILMN", + "BCFGHILMP", + "BCFGHILNP", + "BCFGHIMNP", + "BCFGHJLMN", + "BCFGHJLMP", + "BCFGHJLNP", + "BCFGHJMNP", + "BCFGHLMNP", + "BCFGIJLMN", + "BCFGIJLMP", + "BCFGIJLNP", + "BCFGIJMNP", + "BCFGILMNP", + "BCFGJLMNP", + "BCFHIJLMN", + "BCFHIJLMP", + "BCFHIJLNP", + "BCFHIJMNP", + "BCFHILMNP", + "BCFHJLMNP", + "BCFIJLMNP", + "BCGHIJLMN", + "BCGHIJLMP", + "BCGHIJLNP", + "BCGHIJMNP", + "BCGHILMNP", + "BCGHJLMNP", + "BCGIJLMNP", + "BCHIJLMNP", + "BEFGHIJLM", + "BEFGHIJLN", + "BEFGHIJLP", + "BEFGHIJMN", + "BEFGHIJMP", + "BEFGHIJNP", + "BEFGHILMN", + "BEFGHILMP", + "BEFGHILNP", + "BEFGHIMNP", + "BEFGHJLMN", + "BEFGHJLMP", + "BEFGHJLNP", + "BEFGHJMNP", + "BEFGHLMNP", + "BEFGIJLMN", + "BEFGIJLMP", + "BEFGIJLNP", + "BEFGIJMNP", + "BEFGILMNP", + "BEFGJLMNP", + "BEFHIJLMN", + "BEFHIJLMP", + "BEFHIJLNP", + "BEFHIJMNP", + "BEFHILMNP", + "BEFHJLMNP", + "BEFIJLMNP", + "BEGHIJLMN", + "BEGHIJLMP", + "BEGHIJLNP", + "BEGHIJMNP", + "BEGHILMNP", + "BEGHJLMNP", + "BEGIJLMNP", + "BEHIJLMNP", + "BFGHIJLMN", + "BFGHIJLMP", + "BFGHIJLNP", + "BFGHIJMNP", + "BFGHILMNP", + "BFGHJLMNP", + "BFGIJLMNP", + "BFHIJLMNP", + "BGHIJLMNP", + "CEFGHIJLM", + "CEFGHIJLN", + "CEFGHIJLP", + "CEFGHIJMN", + "CEFGHIJMP", + "CEFGHIJNP", + "CEFGHILMN", + "CEFGHILMP", + "CEFGHILNP", + "CEFGHIMNP", + "CEFGHJLMN", + "CEFGHJLMP", + "CEFGHJLNP", + "CEFGHJMNP", + "CEFGHLMNP", + "CEFGIJLMN", + "CEFGIJLMP", + "CEFGIJLNP", + "CEFGIJMNP", + "CEFGILMNP", + "CEFGJLMNP", + "CEFHIJLMN", + "CEFHIJLMP", + "CEFHIJLNP", + "CEFHIJMNP", + "CEFHILMNP", + "CEFHJLMNP", + "CEFIJLMNP", + "CEGHIJLMN", + "CEGHIJLMP", + "CEGHIJLNP", + "CEGHIJMNP", + "CEGHILMNP", + "CEGHJLMNP", + "CEGIJLMNP", + "CEHIJLMNP", + "CFGHIJLMN", + "CFGHIJLMP", + "CFGHIJLNP", + "CFGHIJMNP", + "CFGHILMNP", + "CFGHJLMNP", + "CFGIJLMNP", + "CFHIJLMNP", + "CGHIJLMNP", + "EFGHIJLMN", + "EFGHIJLMP", + "EFGHIJLNP", + "EFGHIJMNP", + "EFGHILMNP", + "EFGHJLMNP", + "EFGIJLMNP", + "EFHIJLMNP", + "EGHIJLMNP", + "FGHIJLMNP", + "ABCEFGHIJL", + "ABCEFGHIJM", + "ABCEFGHIJN", + "ABCEFGHIJP", + "ABCEFGHILM", + "ABCEFGHILN", + "ABCEFGHILP", + "ABCEFGHIMN", + "ABCEFGHIMP", + "ABCEFGHINP", + "ABCEFGHJLM", + "ABCEFGHJLN", + "ABCEFGHJLP", + "ABCEFGHJMN", + "ABCEFGHJMP", + "ABCEFGHJNP", + "ABCEFGHLMN", + "ABCEFGHLMP", + "ABCEFGHLNP", + "ABCEFGHMNP", + "ABCEFGIJLM", + "ABCEFGIJLN", + "ABCEFGIJLP", + "ABCEFGIJMN", + "ABCEFGIJMP", + "ABCEFGIJNP", + "ABCEFGILMN", + "ABCEFGILMP", + "ABCEFGILNP", + "ABCEFGIMNP", + "ABCEFGJLMN", + "ABCEFGJLMP", + "ABCEFGJLNP", + "ABCEFGJMNP", + "ABCEFGLMNP", + "ABCEFHIJLM", + "ABCEFHIJLN", + "ABCEFHIJLP", + "ABCEFHIJMN", + "ABCEFHIJMP", + "ABCEFHIJNP", + "ABCEFHILMN", + "ABCEFHILMP", + "ABCEFHILNP", + "ABCEFHIMNP", + "ABCEFHJLMN", + "ABCEFHJLMP", + "ABCEFHJLNP", + "ABCEFHJMNP", + "ABCEFHLMNP", + "ABCEFIJLMN", + "ABCEFIJLMP", + "ABCEFIJLNP", + "ABCEFIJMNP", + "ABCEFILMNP", + "ABCEFJLMNP", + "ABCEGHIJLM", + "ABCEGHIJLN", + "ABCEGHIJLP", + "ABCEGHIJMN", + "ABCEGHIJMP", + "ABCEGHIJNP", + "ABCEGHILMN", + "ABCEGHILMP", + "ABCEGHILNP", + "ABCEGHIMNP", + "ABCEGHJLMN", + "ABCEGHJLMP", + "ABCEGHJLNP", + "ABCEGHJMNP", + "ABCEGHLMNP", + "ABCEGIJLMN", + "ABCEGIJLMP", + "ABCEGIJLNP", + "ABCEGIJMNP", + "ABCEGILMNP", + "ABCEGJLMNP", + "ABCEHIJLMN", + "ABCEHIJLMP", + "ABCEHIJLNP", + "ABCEHIJMNP", + "ABCEHILMNP", + "ABCEHJLMNP", + "ABCEIJLMNP", + "ABCFGHIJLM", + "ABCFGHIJLN", + "ABCFGHIJLP", + "ABCFGHIJMN", + "ABCFGHIJMP", + "ABCFGHIJNP", + "ABCFGHILMN", + "ABCFGHILMP", + "ABCFGHILNP", + "ABCFGHIMNP", + "ABCFGHJLMN", + "ABCFGHJLMP", + "ABCFGHJLNP", + "ABCFGHJMNP", + "ABCFGHLMNP", + "ABCFGIJLMN", + "ABCFGIJLMP", + "ABCFGIJLNP", + "ABCFGIJMNP", + "ABCFGILMNP", + "ABCFGJLMNP", + "ABCFHIJLMN", + "ABCFHIJLMP", + "ABCFHIJLNP", + "ABCFHIJMNP", + "ABCFHILMNP", + "ABCFHJLMNP", + "ABCFIJLMNP", + "ABCGHIJLMN", + "ABCGHIJLMP", + "ABCGHIJLNP", + "ABCGHIJMNP", + "ABCGHILMNP", + "ABCGHJLMNP", + "ABCGIJLMNP", + "ABCHIJLMNP", + "ABEFGHIJLM", + "ABEFGHIJLN", + "ABEFGHIJLP", + "ABEFGHIJMN", + "ABEFGHIJMP", + "ABEFGHIJNP", + "ABEFGHILMN", + "ABEFGHILMP", + "ABEFGHILNP", + "ABEFGHIMNP", + "ABEFGHJLMN", + "ABEFGHJLMP", + "ABEFGHJLNP", + "ABEFGHJMNP", + "ABEFGHLMNP", + "ABEFGIJLMN", + "ABEFGIJLMP", + "ABEFGIJLNP", + "ABEFGIJMNP", + "ABEFGILMNP", + "ABEFGJLMNP", + "ABEFHIJLMN", + "ABEFHIJLMP", + "ABEFHIJLNP", + "ABEFHIJMNP", + "ABEFHILMNP", + "ABEFHJLMNP", + "ABEFIJLMNP", + "ABEGHIJLMN", + "ABEGHIJLMP", + "ABEGHIJLNP", + "ABEGHIJMNP", + "ABEGHILMNP", + "ABEGHJLMNP", + "ABEGIJLMNP", + "ABEHIJLMNP", + "ABFGHIJLMN", + "ABFGHIJLMP", + "ABFGHIJLNP", + "ABFGHIJMNP", + "ABFGHILMNP", + "ABFGHJLMNP", + "ABFGIJLMNP", + "ABFHIJLMNP", + "ABGHIJLMNP", + "ACEFGHIJLM", + "ACEFGHIJLN", + "ACEFGHIJLP", + "ACEFGHIJMN", + "ACEFGHIJMP", + "ACEFGHIJNP", + "ACEFGHILMN", + "ACEFGHILMP", + "ACEFGHILNP", + "ACEFGHIMNP", + "ACEFGHJLMN", + "ACEFGHJLMP", + "ACEFGHJLNP", + "ACEFGHJMNP", + "ACEFGHLMNP", + "ACEFGIJLMN", + "ACEFGIJLMP", + "ACEFGIJLNP", + "ACEFGIJMNP", + "ACEFGILMNP", + "ACEFGJLMNP", + "ACEFHIJLMN", + "ACEFHIJLMP", + "ACEFHIJLNP", + "ACEFHIJMNP", + "ACEFHILMNP", + "ACEFHJLMNP", + "ACEFIJLMNP", + "ACEGHIJLMN", + "ACEGHIJLMP", + "ACEGHIJLNP", + "ACEGHIJMNP", + "ACEGHILMNP", + "ACEGHJLMNP", + "ACEGIJLMNP", + "ACEHIJLMNP", + "ACFGHIJLMN", + "ACFGHIJLMP", + "ACFGHIJLNP", + "ACFGHIJMNP", + "ACFGHILMNP", + "ACFGHJLMNP", + "ACFGIJLMNP", + "ACFHIJLMNP", + "ACGHIJLMNP", + "AEFGHIJLMN", + "AEFGHIJLMP", + "AEFGHIJLNP", + "AEFGHIJMNP", + "AEFGHILMNP", + "AEFGHJLMNP", + "AEFGIJLMNP", + "AEFHIJLMNP", + "AEGHIJLMNP", + "AFGHIJLMNP", + "BCEFGHIJLM", + "BCEFGHIJLN", + "BCEFGHIJLP", + "BCEFGHIJMN", + "BCEFGHIJMP", + "BCEFGHIJNP", + "BCEFGHILMN", + "BCEFGHILMP", + "BCEFGHILNP", + "BCEFGHIMNP", + "BCEFGHJLMN", + "BCEFGHJLMP", + "BCEFGHJLNP", + "BCEFGHJMNP", + "BCEFGHLMNP", + "BCEFGIJLMN", + "BCEFGIJLMP", + "BCEFGIJLNP", + "BCEFGIJMNP", + "BCEFGILMNP", + "BCEFGJLMNP", + "BCEFHIJLMN", + "BCEFHIJLMP", + "BCEFHIJLNP", + "BCEFHIJMNP", + "BCEFHILMNP", + "BCEFHJLMNP", + "BCEFIJLMNP", + "BCEGHIJLMN", + "BCEGHIJLMP", + "BCEGHIJLNP", + "BCEGHIJMNP", + "BCEGHILMNP", + "BCEGHJLMNP", + "BCEGIJLMNP", + "BCEHIJLMNP", + "BCFGHIJLMN", + "BCFGHIJLMP", + "BCFGHIJLNP", + "BCFGHIJMNP", + "BCFGHILMNP", + "BCFGHJLMNP", + "BCFGIJLMNP", + "BCFHIJLMNP", + "BCGHIJLMNP", + "BEFGHIJLMN", + "BEFGHIJLMP", + "BEFGHIJLNP", + "BEFGHIJMNP", + "BEFGHILMNP", + "BEFGHJLMNP", + "BEFGIJLMNP", + "BEFHIJLMNP", + "BEGHIJLMNP", + "BFGHIJLMNP", + "CEFGHIJLMN", + "CEFGHIJLMP", + "CEFGHIJLNP", + "CEFGHIJMNP", + "CEFGHILMNP", + "CEFGHJLMNP", + "CEFGIJLMNP", + "CEFHIJLMNP", + "CEGHIJLMNP", + "CFGHIJLMNP", + "EFGHIJLMNP", + "ABCEFGHIJLM", + "ABCEFGHIJLN", + "ABCEFGHIJLP", + "ABCEFGHIJMN", + "ABCEFGHIJMP", + "ABCEFGHIJNP", + "ABCEFGHILMN", + "ABCEFGHILMP", + "ABCEFGHILNP", + "ABCEFGHIMNP", + "ABCEFGHJLMN", + "ABCEFGHJLMP", + "ABCEFGHJLNP", + "ABCEFGHJMNP", + "ABCEFGHLMNP", + "ABCEFGIJLMN", + "ABCEFGIJLMP", + "ABCEFGIJLNP", + "ABCEFGIJMNP", + "ABCEFGILMNP", + "ABCEFGJLMNP", + "ABCEFHIJLMN", + "ABCEFHIJLMP", + "ABCEFHIJLNP", + "ABCEFHIJMNP", + "ABCEFHILMNP", + "ABCEFHJLMNP", + "ABCEFIJLMNP", + "ABCEGHIJLMN", + "ABCEGHIJLMP", + "ABCEGHIJLNP", + "ABCEGHIJMNP", + "ABCEGHILMNP", + "ABCEGHJLMNP", + "ABCEGIJLMNP", + "ABCEHIJLMNP", + "ABCFGHIJLMN", + "ABCFGHIJLMP", + "ABCFGHIJLNP", + "ABCFGHIJMNP", + "ABCFGHILMNP", + "ABCFGHJLMNP", + "ABCFGIJLMNP", + "ABCFHIJLMNP", + "ABCGHIJLMNP", + "ABEFGHIJLMN", + "ABEFGHIJLMP", + "ABEFGHIJLNP", + "ABEFGHIJMNP", + "ABEFGHILMNP", + "ABEFGHJLMNP", + "ABEFGIJLMNP", + "ABEFHIJLMNP", + "ABEGHIJLMNP", + "ABFGHIJLMNP", + "ACEFGHIJLMN", + "ACEFGHIJLMP", + "ACEFGHIJLNP", + "ACEFGHIJMNP", + "ACEFGHILMNP", + "ACEFGHJLMNP", + "ACEFGIJLMNP", + "ACEFHIJLMNP", + "ACEGHIJLMNP", + "ACFGHIJLMNP", + "AEFGHIJLMNP", + "BCEFGHIJLMN", + "BCEFGHIJLMP", + "BCEFGHIJLNP", + "BCEFGHIJMNP", + "BCEFGHILMNP", + "BCEFGHJLMNP", + "BCEFGIJLMNP", + "BCEFHIJLMNP", + "BCEGHIJLMNP", + "BCFGHIJLMNP", + "BEFGHIJLMNP", + "CEFGHIJLMNP", + "ABCEFGHIJLMN", + "ABCEFGHIJLMP", + "ABCEFGHIJLNP", + "ABCEFGHIJMNP", + "ABCEFGHILMNP", + "ABCEFGHJLMNP", + "ABCEFGIJLMNP", + "ABCEFHIJLMNP", + "ABCEGHIJLMNP", + "ABCFGHIJLMNP", + "ABEFGHIJLMNP", + "ACEFGHIJLMNP", + "BCEFGHIJLMNP", + "ABCEFGHIJLMNP" + ] +} diff --git a/backend/schemas/source/base/FederalProgramNames.json b/backend/schemas/source/base/FederalProgramNames.json index dccdfde0b1..f276611be5 100644 --- a/backend/schemas/source/base/FederalProgramNames.json +++ b/backend/schemas/source/base/FederalProgramNames.json @@ -5766,4 +5766,4 @@ "FAMILY VIOLENCE PREVENTION AND SERVICES/CULTURALLY SPECIFIC DOMESTIC VIOLENCE AND SEXUAL VIOLENCE SERVICES", "EASTERN NEVADA CONSERVATION, RECREATION AND DEVELOPMENT" ] -} \ No newline at end of file +} From db36a765ab30bcbf9bef7320dc2aa231af355465 Mon Sep 17 00:00:00 2001 From: danswick Date: Mon, 25 Sep 2023 18:25:16 -0700 Subject: [PATCH 08/13] one more linting fix --- backend/dissemination/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/dissemination/README.md b/backend/dissemination/README.md index a5357e0efe..a17498caf1 100644 --- a/backend/dissemination/README.md +++ b/backend/dissemination/README.md @@ -91,5 +91,5 @@ When adding a new API version. 2. Copy the contents of an existing API as a starting point. 3. Update `docker-compose.yml` and `docker-compose-web.yml` to change the `PGRST_DB_SCHEMAS` key to reflect all the active schemas. 1. ADD TO THE END OF THIS LIST. The first entry is the default. Only add to the front of the list if we are certain the schema should become the new default. - 2. This is likely true of TESTED patch version bumps (v1_0_0 to v1_0_1), and _maybe_ minor version bumps (v1_0_0 to v1_1_0). MAJOR bumps require change management messaging. + 2. This is likely true of TESTED patch version bumps (v1*0_0 to v1_0_1), and \_maybe* minor version bumps (v1_0_0 to v1_1_0). MAJOR bumps require change management messaging. 4. Update `APIViewTests` to make sure you're testing the right schema. (That file might want some love...) From 3667023200e34e85be0f40a9c091de9c81e04182 Mon Sep 17 00:00:00 2001 From: Matt Henry Date: Tue, 26 Sep 2023 12:52:19 -0400 Subject: [PATCH 09/13] Only check styles the team is editing directly --- backend/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/package.json b/backend/package.json index 8c3bfa18ec..b69a5b0188 100644 --- a/backend/package.json +++ b/backend/package.json @@ -13,8 +13,8 @@ "dev": "node build-assets.js --watch", "check:eslint": "npx eslint --ignore-path ../.gitignore static/js", "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", - "check:stylelint": "npx stylelint '**/*.{css,scss,sass}'", - "fix:stylelint": "npx stylelint --fix '**/*.{css,scss,sass}'", + "check:stylelint": "npx stylelint 'backend/static/scss'", + "fix:stylelint": "npx stylelint --fix 'backend/static/scss'", "check:prettier": "npx prettier . --check", "fix:prettier": "npx prettier . --write", "check-all": "run-p check:*", From d04927d26f1f3cbb451fcfc6c6872d92e91150e9 Mon Sep 17 00:00:00 2001 From: Matt Henry Date: Tue, 26 Sep 2023 13:42:21 -0400 Subject: [PATCH 10/13] Use prefix notation for media queries Stylelint's default rule for media query syntax uses the newer context notation. However, that syntax requires [fairly recent browsers](https://caniuse.com/mdn-css_at-rules_media_or_syntax). --- backend/.stylelintrc.json | 3 ++- backend/static/scss/_form.scss | 2 +- backend/static/scss/_header.scss | 2 +- backend/static/scss/_home.scss | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/.stylelintrc.json b/backend/.stylelintrc.json index 66e29fdad8..4ba60a9229 100644 --- a/backend/.stylelintrc.json +++ b/backend/.stylelintrc.json @@ -3,6 +3,7 @@ "rules": { "selector-class-pattern": null, "no-descending-specificity": null, - "function-no-unknown": null + "function-no-unknown": null, + "media-feature-range-notation": "prefix" } } diff --git a/backend/static/scss/_form.scss b/backend/static/scss/_form.scss index c693bde358..5ccd21b1ef 100644 --- a/backend/static/scss/_form.scss +++ b/backend/static/scss/_form.scss @@ -263,7 +263,7 @@ ul.usa-error-message { /* stylelint-enable */ -@media (width >= 64em) { +@media (min-width: 64em) { .sticky-nav { align-self: flex-start; position: sticky; diff --git a/backend/static/scss/_header.scss b/backend/static/scss/_header.scss index cf2faa97fc..847b3b3eb3 100644 --- a/backend/static/scss/_header.scss +++ b/backend/static/scss/_header.scss @@ -1,6 +1,6 @@ @use 'uswds-core' as *; -@media (width >= 64em) { +@media (min-width: 64em) { .usa-logo { margin: 0; } diff --git a/backend/static/scss/_home.scss b/backend/static/scss/_home.scss index 21c4faa232..c8dd80dc66 100644 --- a/backend/static/scss/_home.scss +++ b/backend/static/scss/_home.scss @@ -42,7 +42,7 @@ font-family: family('sans'); /* stylelint-disable-line */ } -@media (width >= 64em) { +@media (min-width: 64em) { .usa-hero { min-height: 30rem; From 604813f6ae7af6d819e15047b648cf3642c3b27a Mon Sep 17 00:00:00 2001 From: Matt Henry Date: Tue, 26 Sep 2023 13:46:43 -0400 Subject: [PATCH 11/13] Fix stylelint path --- backend/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/package.json b/backend/package.json index b69a5b0188..c17cd0cba2 100644 --- a/backend/package.json +++ b/backend/package.json @@ -13,8 +13,8 @@ "dev": "node build-assets.js --watch", "check:eslint": "npx eslint --ignore-path ../.gitignore static/js", "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", - "check:stylelint": "npx stylelint 'backend/static/scss'", - "fix:stylelint": "npx stylelint --fix 'backend/static/scss'", + "check:stylelint": "npx stylelint './static/scss'", + "fix:stylelint": "npx stylelint --fix './static/scss'", "check:prettier": "npx prettier . --check", "fix:prettier": "npx prettier . --write", "check-all": "run-p check:*", From 18b0d428e78909976da41e3203bb34cf3cd59b9c Mon Sep 17 00:00:00 2001 From: danswick Date: Tue, 26 Sep 2023 12:42:31 -0700 Subject: [PATCH 12/13] revert prettier changes --- backend/apt.yml | 6 +- backend/audit/management/commands/README.md | 5 +- backend/audit/tools/README.md | 3 +- backend/build-assets.js | 57 +- backend/cypress.config.js | 7 +- backend/cypress/fixtures/fail-res.json | 18 +- backend/cypress/fixtures/sac-Test-report.json | 68 +- backend/cypress/fixtures/success-res.json | 6 +- backend/cypress/plugins/index.js | 6 +- backend/cypress/support/audit-info-form.js | 50 +- .../cypress/support/auditee-certification.js | 34 +- backend/cypress/support/auditee-info.js | 6 +- .../cypress/support/auditor-certification.js | 4 +- backend/cypress/support/check-access.js | 20 +- backend/cypress/support/commands.js | 6 +- backend/cypress/support/cross-validation.js | 2 +- .../cypress/support/dissemination-table.js | 10 +- backend/cypress/support/file-uploaded-msg.js | 27 +- backend/cypress/support/general-info.js | 100 +- backend/cypress/support/login-gov.js | 5 +- backend/cypress/support/logout-gov.js | 10 +- backend/cypress/support/workbook-uploads.js | 48 +- backend/dissemination/README.md | 22 +- backend/dissemination/data-model/fac.md | 101 +- backend/docker-compose-web.yml | 32 +- backend/docker-compose.yml | 30 +- backend/manifests/task-manifest-staging.yml | 38 +- backend/schemas/source/base/ClusterNames.json | 2 +- .../base/ComplianceRequirementTypes.json | 16390 ++++++++-------- .../source/base/FederalProgramNames.json | 2 +- 30 files changed, 8545 insertions(+), 8570 deletions(-) diff --git a/backend/apt.yml b/backend/apt.yml index 091985689e..7f4a7d9c1b 100644 --- a/backend/apt.yml +++ b/backend/apt.yml @@ -7,8 +7,8 @@ # to a defined s3 bucket. Running v15 also matches the client and server database versions. cleancache: true keys: - - https://www.postgresql.org/media/keys/ACCC4CF8.asc +- https://www.postgresql.org/media/keys/ACCC4CF8.asc repos: - - deb https://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main +- deb https://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main packages: - - postgresql-client-15 +- postgresql-client-15 diff --git a/backend/audit/management/commands/README.md b/backend/audit/management/commands/README.md index 5f99896ebf..8242068d93 100644 --- a/backend/audit/management/commands/README.md +++ b/backend/audit/management/commands/README.md @@ -7,7 +7,6 @@ fac loaddata audit/fixtures/CognizantBaseline.json --app audit.CognizantBaseline ``` If the fixture does not exist follow the steps below to create it. - # csv_to_pg To use this, you need to have data in your SQLite DB. @@ -26,7 +25,6 @@ fac csv_to_pg --path fixture-data/clean-ay19 (`fac` is a shorthand for... `docker compose run web manage.py ...`) This will load the CSVs from the files in the S3 bucket into the PG database. This approach is being used because we can also replicate it in our dev, staging, and preview environments. - # make_cog_baseline Once census_gen19 and census_cfda19 tables have been populated, run the program to calculate and populate CognizantBaseline table. @@ -35,11 +33,10 @@ The command for this is: ```bash fac make_cog_baseline ``` - Now create a fixture for this table as follows: ```bash fac dumpdata audit.CognizantBaseline --output audit/fixtures/CognizantBaseline.json ``` -Make sure that the fixture file is tracjed in git +Make sure that the fixture file is tracjed in git \ No newline at end of file diff --git a/backend/audit/tools/README.md b/backend/audit/tools/README.md index d97f66abde..83bdd56582 100644 --- a/backend/audit/tools/README.md +++ b/backend/audit/tools/README.md @@ -1,3 +1,4 @@ + # generate-sqlite-files The purpose of this tool is to take public, Census-generated pipe-delimited CSV files and turn them into an SQLite database. @@ -15,7 +16,7 @@ It also creates two directories: `ay19` and `clean-ay19`. The second of these is ### Warning -This will overwrite any SQLite file in this directory with that name. We assume that is OK. +This will overwrite any SQLite file in this directory with that name. We assume that is OK. The `.gitignore` in this directory should ignore the `.zip` and `.sqlite3` files. diff --git a/backend/build-assets.js b/backend/build-assets.js index 5470bd06cf..8132e895e7 100644 --- a/backend/build-assets.js +++ b/backend/build-assets.js @@ -8,13 +8,13 @@ const { sassPlugin } = require('esbuild-sass-plugin'); const watch = process.argv.includes('--watch'); -const jsPath = glob.sync(path.join('.', 'static', 'js', '*.js')); +const jsPath = glob.sync(path.join('.','static','js','*.js')); const buildProps = { entryPoints: [...jsPath, 'static/scss/main.scss'], outdir: 'static/compiled', - minify: process.env.NODE_ENV === 'production', - sourcemap: process.env.NODE_ENV !== 'production', + minify: process.env.NODE_ENV === "production", + sourcemap: process.env.NODE_ENV !== "production", target: ['chrome58', 'firefox57', 'safari11', 'edge18'], bundle: true, format: 'iife', @@ -29,26 +29,23 @@ const buildProps = { plugins: [ sassPlugin({ loadPaths: [ - './node_modules/@uswds', - './node_modules/@uswds/uswds/packages', - './static/compiled/js', + "./node_modules/@uswds", + "./node_modules/@uswds/uswds/packages", + "./static/compiled/js", ], }), - ], -}; + ] +} if (watch) { buildProps.watch = { onRebuild(error, result) { - runPostcss( - 'static/compiled/scss/main.css', - 'static/compiled/scss/main-post.css' - ); + runPostcss('static/compiled/scss/main.css', 'static/compiled/scss/main-post.css'); - if (error) console.error('watch build failed:', error); - else console.info('watch build succeeded:', result); + if (error) console.error('watch build failed:', error) + else console.info('watch build succeeded:', result) }, - }; + } } const runPostcss = (cssIn, cssOut) => { @@ -57,26 +54,22 @@ const runPostcss = (cssIn, cssOut) => { fs.readFile(cssIn, (err, css) => { postcss([autoprefixer]) .process(css, { from: cssIn, to: cssOut }) - .then((result) => { - fs.writeFile(cssOut, result.css, () => true); - if (result.map) { - fs.writeFile(cssOut + '.map', result.map.toString(), () => true); + .then(result => { + fs.writeFile(cssOut, result.css, () => true) + if ( result.map ) { + fs.writeFile(cssOut + '.map', result.map.toString(), () => true) } - }); - }); -}; + }) + }) +} -require('esbuild') - .build(buildProps) - .then(() => { - runPostcss( - 'static/compiled/scss/main.css', - 'static/compiled/scss/main-post.css' - ); +require('esbuild').build(buildProps) + .then(() => { + runPostcss('static/compiled/scss/main.css', 'static/compiled/scss/main-post.css'); if (watch) { - console.info('Watching assets…'); + console.info('Watching assets…') } else { - console.info('Assets compiled ✅'); + console.info('Assets compiled ✅') } }) - .catch(() => process.exit(1)); + .catch(() => process.exit(1)) diff --git a/backend/cypress.config.js b/backend/cypress.config.js index 8febd9e4e8..297a7ed92e 100644 --- a/backend/cypress.config.js +++ b/backend/cypress.config.js @@ -8,11 +8,8 @@ module.exports = defineConfig({ return require('./cypress/plugins/index.js')(on, config); }, baseUrl: 'http://localhost:8000/', - excludeSpecPattern: [ - '*/*/**/sf-sac-general-info.cy.js', - '*/*/**/display-submissions.cy.js', - ], + excludeSpecPattern: ['*/*/**/sf-sac-general-info.cy.js', '*/*/**/display-submissions.cy.js'], video: false, screenshotOnRunFailure: true, - }, + } }); diff --git a/backend/cypress/fixtures/fail-res.json b/backend/cypress/fixtures/fail-res.json index e8d2c09c82..7e6362f5e1 100644 --- a/backend/cypress/fixtures/fail-res.json +++ b/backend/cypress/fixtures/fail-res.json @@ -1,10 +1,10 @@ { - "status": "error", - "message": "File upload failed", - "error": { - "code": 400, - "description": "The file upload request was invalid", - "type": "error_field", - "message": "Field Error: undefined" - } -} + "status": "error", + "message": "File upload failed", + "error": { + "code": 400, + "description": "The file upload request was invalid", + "type": "error_field", + "message": "Field Error: undefined" + } +} \ No newline at end of file diff --git a/backend/cypress/fixtures/sac-Test-report.json b/backend/cypress/fixtures/sac-Test-report.json index f708dc4303..42d32e1e58 100644 --- a/backend/cypress/fixtures/sac-Test-report.json +++ b/backend/cypress/fixtures/sac-Test-report.json @@ -1,32 +1,38 @@ { - "date_created": "2023-07-11", - "submission_status": "in_progress", - "report_id": "2023MAY0001000001", - "auditee_fiscal_period_start": "05/08/2023", - "auditee_fiscal_period_end": "05/08/2024", - "audit_type": "single-audit", - "audit_period_covered": "annual", - "auditee_uei": "CMBSGK6P7BE1", - "auditee_name": "Commonwealth Of Virginia", - "auditee_address_line_1": "1111 E BROAD ST", - "auditee_city": "RICHMOND", - "auditee_state": "VA", - "auditee_zip": "23219", - "auditee_contact_name": "John Doe", - "auditee_contact_title": "Keymaster", - "auditee_phone": "5558675309", - "auditee_email": "va@test.com", - "auditee_contacts": ["a@a.com", "b@b.com"], - "user_provided_organization_type": "local", - "auditor_firm_name": "House of Audit", - "auditor_country": "USA", - "auditor_address_line_1": "123 Around the corner", - "auditor_city": "Centreville", - "auditor_state": "VA", - "auditor_zip": "20121", - "auditor_contact_name": "Jane Doe", - "auditor_contact_title": "auditor", - "auditor_phone": "0008675309", - "auditor_email": "qualified.human.accountant@auditor.com", - "auditor_contacts": ["c@c.com", "d@d.com"] -} + "date_created": "2023-07-11", + "submission_status": "in_progress", + "report_id": "2023MAY0001000001", + "auditee_fiscal_period_start": "05/08/2023", + "auditee_fiscal_period_end": "05/08/2024", + "audit_type": "single-audit", + "audit_period_covered": "annual", + "auditee_uei": "CMBSGK6P7BE1", + "auditee_name": "Commonwealth Of Virginia", + "auditee_address_line_1": "1111 E BROAD ST", + "auditee_city": "RICHMOND", + "auditee_state": "VA", + "auditee_zip": "23219", + "auditee_contact_name": "John Doe", + "auditee_contact_title": "Keymaster", + "auditee_phone": "5558675309", + "auditee_email": "va@test.com", + "auditee_contacts": [ + "a@a.com", + "b@b.com" + ], + "user_provided_organization_type": "local", + "auditor_firm_name": "House of Audit", + "auditor_country": "USA", + "auditor_address_line_1": "123 Around the corner", + "auditor_city": "Centreville", + "auditor_state": "VA", + "auditor_zip": "20121", + "auditor_contact_name": "Jane Doe", + "auditor_contact_title": "auditor", + "auditor_phone": "0008675309", + "auditor_email": "qualified.human.accountant@auditor.com", + "auditor_contacts": [ + "c@c.com", + "d@d.com" + ] +} \ No newline at end of file diff --git a/backend/cypress/fixtures/success-res.json b/backend/cypress/fixtures/success-res.json index e9bd02d6e3..6e049caaad 100644 --- a/backend/cypress/fixtures/success-res.json +++ b/backend/cypress/fixtures/success-res.json @@ -1,4 +1,4 @@ { - "status": "success", - "message": "File successfully validated! Your work has been saved." -} + "status": "success", + "message": "File successfully validated! Your work has been saved." +} \ No newline at end of file diff --git a/backend/cypress/plugins/index.js b/backend/cypress/plugins/index.js index 15eca1440c..f39f3dcb34 100644 --- a/backend/cypress/plugins/index.js +++ b/backend/cypress/plugins/index.js @@ -17,7 +17,7 @@ */ // eslint-disable-next-line no-unused-vars module.exports = (on, config) => { - on('task', { - generateOTP: require('cypress-otp'), + on("task", { + generateOTP: require("cypress-otp") }); -}; +} diff --git a/backend/cypress/support/audit-info-form.js b/backend/cypress/support/audit-info-form.js index 40a2642305..c4cca71fb2 100644 --- a/backend/cypress/support/audit-info-form.js +++ b/backend/cypress/support/audit-info-form.js @@ -2,36 +2,36 @@ Re-useable code for silling out the audit information form. */ export function testAuditInformationForm() { - // Select everything for the GAAP multiple choice checkboxes. - // Will pop the three conditional non-GAAP questions. - cy.get('[id^=gaap_results--]').each((item) => { - cy.get(item).click({ force: true }); - }); + // Select everything for the GAAP multiple choice checkboxes. + // Will pop the three conditional non-GAAP questions. + cy.get('[id^=gaap_results--]').each((item) => { + cy.get(item).click({force: true}); + }); - // Select everything for question i - cy.get('[id^=sp_framework_basis--]').each((item) => { - cy.get(item).click({ force: true }); - }); + // Select everything for question i + cy.get('[id^=sp_framework_basis--]').each((item) => { + cy.get(item).click({force: true}); + }); - // Question ii is a true/false, and is covered below + // Question ii is a true/false, and is covered below - // Select everything for question iii - cy.get('[id^=sp_framework_opinions--]').each((item) => { - cy.get(item).click({ force: true }); - }); + // Select everything for question iii + cy.get('[id^=sp_framework_opinions--]').each((item) => { + cy.get(item).click({force: true}); + }); - // Answer 'Yes' to all Yes/No questions. - cy.get('[id$=--true]').each((item) => { - cy.get(item).click({ force: true }); - }); + // Answer 'Yes' to all Yes/No questions. + cy.get('[id$=--true]').each((item) => { + cy.get(item).click({force: true}); + }); - // Enter 750000 into the dollar theshold number field. - cy.get('#dollar_threshold').type('750000').blur(); + // Enter 750000 into the dollar theshold number field. + cy.get('#dollar_threshold').type('750000').blur(); - // Select 0 and 1 for the multiple select agencies field. - cy.get('#agencies').select(['00', '01']).blur(); + // Select 0 and 1 for the multiple select agencies field. + cy.get('#agencies').select(['00', '01']).blur(); - cy.get('.usa-button').contains('Save and continue').click({ force: true }); + cy.get('.usa-button').contains('Save and continue').click({force: true}); - cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}/); -} + cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}/); +} \ No newline at end of file diff --git a/backend/cypress/support/auditee-certification.js b/backend/cypress/support/auditee-certification.js index 51012fedf2..41c733959d 100644 --- a/backend/cypress/support/auditee-certification.js +++ b/backend/cypress/support/auditee-certification.js @@ -1,18 +1,18 @@ export function testAuditeeCertification() { - // 1. Click all the checkboxes to agree, submit and go to page 2 - cy.get('label[for=has_no_PII]').click(); - cy.get('label[for=has_no_BII]').click(); - cy.get('label[for=meets_2CFR_specifications]').click(); - cy.get('label[for=is_2CFR_compliant]').click(); - cy.get('label[for=is_complete_and_accurate]').click(); - cy.get('label[for=has_engaged_auditor]').click(); - cy.get('label[for=is_issued_and_signed]').click(); - cy.get('label[for=is_FAC_releasable]').click(); - cy.get('.usa-button').contains('Agree to auditee certification').click(); - - // 2. Sign and date, submit and go back to checklist - cy.get('#auditee_name').type('John Doe'); - cy.get('#auditee_title').type('Auditee'); - cy.get('#auditee_certification_date_signed').type('01/01/2022'); - cy.get('.usa-button').contains('Agree to auditee certification').click(); -} + // 1. Click all the checkboxes to agree, submit and go to page 2 + cy.get('label[for=has_no_PII]').click(); + cy.get('label[for=has_no_BII]').click(); + cy.get('label[for=meets_2CFR_specifications]').click(); + cy.get('label[for=is_2CFR_compliant]').click(); + cy.get('label[for=is_complete_and_accurate]').click(); + cy.get('label[for=has_engaged_auditor]').click(); + cy.get('label[for=is_issued_and_signed]').click(); + cy.get('label[for=is_FAC_releasable]').click(); + cy.get('.usa-button').contains('Agree to auditee certification').click(); + + // 2. Sign and date, submit and go back to checklist + cy.get('#auditee_name').type('John Doe'); + cy.get('#auditee_title').type('Auditee'); + cy.get('#auditee_certification_date_signed').type("01/01/2022"); + cy.get('.usa-button').contains('Agree to auditee certification').click(); + } \ No newline at end of file diff --git a/backend/cypress/support/auditee-info.js b/backend/cypress/support/auditee-info.js index 8c9b1c94a9..753da917e9 100644 --- a/backend/cypress/support/auditee-info.js +++ b/backend/cypress/support/auditee-info.js @@ -3,7 +3,7 @@ export function testValidAuditeeInfo() { cy.intercept('api/sac/ueivalidation', { fixture: 'sam-gov-api-mock.json', - }).as('uei_check_success'); + }).as('uei_check_success') // Hard-coding some UEI which may eventually become unregistered // This UEI needs to match up with the UEI in the workbooks. @@ -13,8 +13,8 @@ export function testValidAuditeeInfo() { cy.get('button[data-close-modal]').contains('Continue').click(); // Now fill in the audit dates - cy.get('#auditee_fiscal_period_start').type('01/01/2022'); - cy.get('#auditee_fiscal_period_end').type('12/31/2022'); + cy.get('#auditee_fiscal_period_start').type("01/01/2022"); + cy.get('#auditee_fiscal_period_end').type("12/31/2022"); // and click continue cy.get('.usa-button').contains('Continue').click(); diff --git a/backend/cypress/support/auditor-certification.js b/backend/cypress/support/auditor-certification.js index 411740fe98..bdc90b3b3d 100644 --- a/backend/cypress/support/auditor-certification.js +++ b/backend/cypress/support/auditor-certification.js @@ -9,7 +9,7 @@ export function testAuditorCertification() { // 2. Sign and date, submit and go back to checklist cy.get('#auditor_name').type('Jane Doe'); - cy.get('#auditor_title').type('Auditor'); - cy.get('#auditor_certification_date_signed').type('01/01/2022'); + cy.get('#auditor_title').type('Auditor'); + cy.get('#auditor_certification_date_signed').type("01/01/2022"); cy.get('.usa-button').contains('Agree to auditor certification').click(); } diff --git a/backend/cypress/support/check-access.js b/backend/cypress/support/check-access.js index fe0dbb43d5..d10b94afac 100644 --- a/backend/cypress/support/check-access.js +++ b/backend/cypress/support/check-access.js @@ -1,24 +1,14 @@ // reusable code for the accessandsubmission page const accessFields = [ - '#certifying_auditee_contact_fullname', - '#certifying_auditee_contact_email', - '#certifying_auditee_contact_re_email', - '#certifying_auditor_contact_fullname', - '#certifying_auditor_contact_email', - '#certifying_auditor_contact_re_email', - '#auditee_contacts_fullname', - '#auditee_contacts_email', - '#auditee_contacts_re_email', - '#auditor_contacts_fullname', - '#auditor_contacts_email', - '#auditor_contacts_re_email', + '#certifying_auditee_contact_fullname', '#certifying_auditee_contact_email', '#certifying_auditee_contact_re_email', + '#certifying_auditor_contact_fullname', '#certifying_auditor_contact_email', '#certifying_auditor_contact_re_email', + '#auditee_contacts_fullname', '#auditee_contacts_email', '#auditee_contacts_re_email', + '#auditor_contacts_fullname', '#auditor_contacts_email', '#auditor_contacts_re_email', ]; export function addValidInfo(field) { const fieldType = field.split('_').pop(); - const email = field.includes('auditee') - ? Cypress.env('LOGIN_TEST_EMAIL_AUDITEE') - : Cypress.env('LOGIN_TEST_EMAIL'); + const email = field.includes('auditee') ? Cypress.env('LOGIN_TEST_EMAIL_AUDITEE') : Cypress.env('LOGIN_TEST_EMAIL'); cy.get(field) .clear() diff --git a/backend/cypress/support/commands.js b/backend/cypress/support/commands.js index e597eb31b9..19aa4caff5 100644 --- a/backend/cypress/support/commands.js +++ b/backend/cypress/support/commands.js @@ -31,8 +31,8 @@ import { testLogoutGov } from './logout-gov.js'; Cypress.Commands.add('login', () => { testLoginGovLogin(); -}); +}) -Cypress.Commands.add('logout', () => { +Cypress.Commands.add('logout',() => { testLogoutGov(); -}); +}) diff --git a/backend/cypress/support/cross-validation.js b/backend/cypress/support/cross-validation.js index b0e2b8ce7a..0150841a30 100644 --- a/backend/cypress/support/cross-validation.js +++ b/backend/cypress/support/cross-validation.js @@ -2,7 +2,7 @@ export function testCrossValidation() { cy.url().should('match', /\/audit\/cross-validation\/[0-9A-Z]{17}/); // Cross val runs and passes - cy.get('.usa-button').contains('Begin Validation').click(); + cy.get(".usa-button").contains("Begin Validation").click(); cy.get('.usa-fieldset').contains('No errors were found.'); // Continue to the lock screen diff --git a/backend/cypress/support/dissemination-table.js b/backend/cypress/support/dissemination-table.js index 25b6ed9e2a..13c22e279c 100644 --- a/backend/cypress/support/dissemination-table.js +++ b/backend/cypress/support/dissemination-table.js @@ -13,12 +13,12 @@ const requestOptions = { Authorization: `Bearer ${API_GOV_JWT}`, 'X-Api-Key': API_GOV_KEY, }, -}; +} export function testReportIdNotFound(reportId) { cy.request({ ...requestOptions, - qs: { report_id: `eq.${reportId}` }, + qs: {report_id: `eq.${reportId}`}, }).should((response) => { expect(response.body).to.have.length(0); }); @@ -27,12 +27,10 @@ export function testReportIdNotFound(reportId) { export function testReportIdFound(reportId) { cy.request({ ...requestOptions, - qs: { report_id: `eq.${reportId}` }, + qs: {report_id: `eq.${reportId}`}, }).should((response) => { expect(response.body).to.have.length(1); - const hasAgency = !!( - response.body[0]?.cognizant_agency || response.body[0]?.oversight_agency - ); + const hasAgency = !!(response.body[0]?.cognizant_agency || response.body[0]?.oversight_agency); expect(hasAgency).to.be.true; }); } diff --git a/backend/cypress/support/file-uploaded-msg.js b/backend/cypress/support/file-uploaded-msg.js index a6d4aeb162..3235abc977 100644 --- a/backend/cypress/support/file-uploaded-msg.js +++ b/backend/cypress/support/file-uploaded-msg.js @@ -1,16 +1,13 @@ + export function testFileUploadMsg(fileSectionName) { - cy.visit(`/audit/`); - cy.url().should('match', /\/audit\//); - cy.get(':nth-child(4) > .usa-table > tbody > tr') - .last() - .find('td:nth-child(1)>.usa-link') - .click(); - cy.get('.usa-link').contains(fileSectionName).click(); - cy.get('#already-submitted') - .invoke('text') - .then((text) => { - const expectedText = - 'A file has already been uploaded for this section. A successful reupload will overwrite your previous submission.'; - expect(text.trim()).to.equal(expectedText); - }); -} + cy.visit(`/audit/`); + cy.url().should('match', /\/audit\//); + cy.get(':nth-child(4) > .usa-table > tbody > tr').last().find('td:nth-child(1)>.usa-link').click(); + cy.get('.usa-link').contains(fileSectionName).click(); + cy.get('#already-submitted') + .invoke('text') + .then((text) => { + const expectedText = 'A file has already been uploaded for this section. A successful reupload will overwrite your previous submission.'; + expect(text.trim()).to.equal(expectedText); + }); + } \ No newline at end of file diff --git a/backend/cypress/support/general-info.js b/backend/cypress/support/general-info.js index 86b89593eb..716fa58343 100644 --- a/backend/cypress/support/general-info.js +++ b/backend/cypress/support/general-info.js @@ -1,53 +1,53 @@ // reusable code for filling out a valid general info form export function testValidGeneralInfo() { - // Fiscal period, pre-filled using info from the previous screen. - //cy.get('#auditee_fiscal_period_start').type('05/08/2023'); - //cy.get('#auditee_fiscal_period_end').type('05/08/2024'); - - // Audit Type - cy.get('label[for=single-audit]').click(); - cy.get('label[for=audit-period-annual]').click(); - - // Auditee information - cy.get('#ein').type('546000173'); - cy.get('label[for=ein_not_an_ssn_attestation]').click(); - cy.get('label[for=multiple-eins-yes]').click(); - cy.get('#auditee_address_line_1').type('1111 E Broad ST'); - cy.get('#auditee_city').type('Richmond'); - cy.get('#auditee_state').type('VA{enter}'); - cy.get('#auditee_zip').type('23219'); - - // Auditee UEI is pre-filled and uneditable. - // cy.get('#auditee_uei').type('CMBSGK6P7BE1'); - cy.get('label[for=multiple-ueis-yes]').click(); - - // Auditee contact information - cy.get('#auditee_contact_name').type('John Doe'); - cy.get('#auditee_contact_title').type('Keymaster'); - cy.get('#auditee_phone').type('5558675309'); - cy.get('#auditee_email').type('va@test'); - - // Auditor information - cy.get('#auditor_ein').type('987654321'); - cy.get('label[for=auditor_ein_not_an_ssn_attestation]').click(); - cy.get('#auditor_firm_name').type('House of Audit'); - // Pre-filled as USA - // cy.get('#auditor_country').type('USA{enter}'); - cy.get('#auditor_address_line_1').type('123 Around the corner'); - cy.get('#auditor_city').type('Centreville'); - cy.get('#auditor_state').type('VA{enter}'); - cy.get('#auditor_zip').type('20121'); - - // Auditor contact information - cy.get('#auditor_contact_name').type('Jane Doe'); - cy.get('#auditor_contact_title').type('Auditor'); - cy.get('#auditor_phone').type('5555555555'); - cy.get('#auditor_email').type('qualified.human.accountant@auditor'); - - cy.get('label[for=secondary_auditors-yes]').click(); - - cy.get('#continue').click(); - - cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}$/); -} + // Fiscal period, pre-filled using info from the previous screen. + //cy.get('#auditee_fiscal_period_start').type('05/08/2023'); + //cy.get('#auditee_fiscal_period_end').type('05/08/2024'); + + // Audit Type + cy.get('label[for=single-audit]').click(); + cy.get('label[for=audit-period-annual]').click(); + + // Auditee information + cy.get('#ein').type('546000173'); + cy.get('label[for=ein_not_an_ssn_attestation]').click(); + cy.get('label[for=multiple-eins-yes]').click(); + cy.get('#auditee_address_line_1').type('1111 E Broad ST'); + cy.get('#auditee_city').type('Richmond'); + cy.get('#auditee_state').type('VA{enter}'); + cy.get('#auditee_zip').type('23219'); + + // Auditee UEI is pre-filled and uneditable. + // cy.get('#auditee_uei').type('CMBSGK6P7BE1'); + cy.get('label[for=multiple-ueis-yes]').click(); + + // Auditee contact information + cy.get('#auditee_contact_name').type('John Doe'); + cy.get('#auditee_contact_title').type('Keymaster'); + cy.get('#auditee_phone').type('5558675309'); + cy.get('#auditee_email').type('va@test'); + + // Auditor information + cy.get('#auditor_ein').type('987654321'); + cy.get('label[for=auditor_ein_not_an_ssn_attestation]').click(); + cy.get('#auditor_firm_name').type('House of Audit'); + // Pre-filled as USA + // cy.get('#auditor_country').type('USA{enter}'); + cy.get('#auditor_address_line_1').type('123 Around the corner'); + cy.get('#auditor_city').type('Centreville'); + cy.get('#auditor_state').type('VA{enter}'); + cy.get('#auditor_zip').type('20121'); + + // Auditor contact information + cy.get('#auditor_contact_name').type('Jane Doe'); + cy.get('#auditor_contact_title').type('Auditor'); + cy.get('#auditor_phone').type('5555555555'); + cy.get('#auditor_email').type('qualified.human.accountant@auditor'); + + cy.get('label[for=secondary_auditors-yes]').click(); + + cy.get('#continue').click(); + + cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}$/); +}; diff --git a/backend/cypress/support/login-gov.js b/backend/cypress/support/login-gov.js index 4e8927db99..3f6fd0d49f 100644 --- a/backend/cypress/support/login-gov.js +++ b/backend/cypress/support/login-gov.js @@ -4,10 +4,7 @@ const LOGIN_TEST_PASSWORD = Cypress.env('LOGIN_TEST_PASSWORD'); const LOGIN_TEST_OTP_SECRET = Cypress.env('LOGIN_TEST_OTP_SECRET'); export function testLoginGovLogin( - email = LOGIN_TEST_EMAIL, - password = LOGIN_TEST_PASSWORD, - secret = LOGIN_TEST_OTP_SECRET -) { + email=LOGIN_TEST_EMAIL, password=LOGIN_TEST_PASSWORD, secret=LOGIN_TEST_OTP_SECRET) { cy.get('a.usa-button.sign-in-button').click(); cy.get('button.usa-button.sign-in-button') .should('contain.text', 'Authenticate with Login.gov') diff --git a/backend/cypress/support/logout-gov.js b/backend/cypress/support/logout-gov.js index 2f14f6e7de..04c0ad0ca6 100644 --- a/backend/cypress/support/logout-gov.js +++ b/backend/cypress/support/logout-gov.js @@ -1,7 +1,11 @@ export function testLogoutGov() { cy.get('.usa-menu-btn').contains('Menu').click(); cy.get('button').contains('Sign out').click(); - cy.origin('https://idp.int.identitysandbox.gov/', {}, () => { - cy.contains('Yes, sign out of Login.gov').click(); - }); + cy.origin( + 'https://idp.int.identitysandbox.gov/', + {}, + () => { + cy.contains('Yes, sign out of Login.gov').click(); + } + ); } diff --git a/backend/cypress/support/workbook-uploads.js b/backend/cypress/support/workbook-uploads.js index 9f90a9c7fc..6a39e53c4a 100644 --- a/backend/cypress/support/workbook-uploads.js +++ b/backend/cypress/support/workbook-uploads.js @@ -2,28 +2,24 @@ // testWorkbookUpload('/audit/excel/federal-awards-expended/*', '#file-input-federal-awards-xlsx', 'federal-awards-expended-UPDATE.xlsx') // assumes you are on the appropriate upload page already -function testWorkbookUpload( - interceptUrl, - uploadSelector, - filename, - will_intercept = true -) { - cy.intercept(interceptUrl + '*', (req) => { - if (will_intercept) { - // return a success fixture - req.reply({ fixture: 'success-res.json' }); - } else { - // with no intercept, don't intervene - req.continue(); - } - }).as('uploadSuccess'); +function testWorkbookUpload(interceptUrl, uploadSelector, filename, will_intercept = true) { + cy.intercept(interceptUrl + '*', (req) => { + if (will_intercept) { + // return a success fixture + req.reply({ fixture: 'success-res.json' }); + } else { + // with no intercept, don't intervene + req.continue(); + } + }).as('uploadSuccess'); cy.get(uploadSelector).attachFile(filename); // Upload url (POST /audit/excel/workbookname) returns a redirect to "/" on successful upload. So, 302. - cy.wait('@uploadSuccess').its('response.statusCode').should('eq', 302); - cy.get('#info_box').should( - 'have.text', - 'File successfully validated! Your work has been saved.' - ); + cy.wait('@uploadSuccess').its('response.statusCode').should('eq', 302); + cy.get('#info_box') + .should( + 'have.text', + 'File successfully validated! Your work has been saved.' + ); cy.get('#continue').click(); cy.url().should('match', /\/audit\/submission-progress\/[0-9A-Z]{17}/); @@ -53,7 +49,7 @@ export function testWorkbookFindingsUniformGuidance(will_intercept = true) { '#file-input-audit-findings-xlsx', 'test_workbooks/federal-awards-audit-findings-workbook.xlsx', will_intercept - ); + ) } export function testWorkbookFindingsText(will_intercept = true) { @@ -62,7 +58,7 @@ export function testWorkbookFindingsText(will_intercept = true) { '#file-input-audit-findings-text-xlsx', 'test_workbooks/audit-findings-text-workbook.xlsx', will_intercept - ); + ) } export function testWorkbookCorrectiveActionPlan(will_intercept = true) { @@ -71,7 +67,7 @@ export function testWorkbookCorrectiveActionPlan(will_intercept = true) { '#file-input-cap-xlsx', 'test_workbooks/corrective-action-plan-workbook.xlsx', will_intercept - ); + ) } export function testWorkbookAdditionalUEIs(will_intercept = true) { @@ -80,7 +76,7 @@ export function testWorkbookAdditionalUEIs(will_intercept = true) { '#file-input-additional-ueis-xlsx', 'test_workbooks/additional-ueis-workbook.xlsx', will_intercept - ); + ) } export function testWorkbookSecondaryAuditors(will_intercept = true) { @@ -89,7 +85,7 @@ export function testWorkbookSecondaryAuditors(will_intercept = true) { '#file-input-secondary-auditors-xlsx', 'test_workbooks/secondary-auditors-workbook.xlsx', will_intercept - ); + ) } export function testWorkbookAdditionalEINs(will_intercept = true) { @@ -98,5 +94,5 @@ export function testWorkbookAdditionalEINs(will_intercept = true) { '#file-input-additional-eins-xlsx', 'test_workbooks/additional-eins-workbook.xlsx', will_intercept - ); + ) } diff --git a/backend/dissemination/README.md b/backend/dissemination/README.md index a17498caf1..0960f49c36 100644 --- a/backend/dissemination/README.md +++ b/backend/dissemination/README.md @@ -1,6 +1,6 @@ # Deploying a new API -An API in PostgREST needs a few things to happen. +An API in PostgREST needs a few things to happen. 1. A JWT secret needs to be loaded into the PostgREST environment. 2. We need to tear down what was @@ -34,7 +34,7 @@ This has three pieces: header.payload.signature ``` -**The data can be decoded without the passphrase.** So, a JWT token is not a way of _encrypting_ data. Do not put any privileged information in a JWT. +**The data can be decoded without the passphrase.** So, a JWT token is not a way of *encrypting* data. Do not put any privileged information in a JWT. However, without the passphrase, the signature cannot be verified. PostgREST will not accept a JWT as valid that does not have a good signature. Therefore, it should be the case that only JWTs we create, with this tool, signed with a passphrase we know, can be accepted by our stack as valid. @@ -46,12 +46,12 @@ For symmetric use, that passphrase must be loaded into a GH Secret, and that sec Our JWT only lives at api.data.gov. We will put it in the `Authorization: Bearer ` header. In this way, only API requests that come through api.data.gov (meaning requests that go to api.fac.gov) will be executed by PostgREST. All other queries, from all other sources, will be rejected. -It is important that the role you choose matches the role we expect for public queries. Our schemas are attached to the role `api_fac_gov`. +It is important that the role you choose matches the role we expect for public queries. Our schemas are attached to the role `api_fac_gov`. For example: ``` -curl -X GET -H "Authorization: Bearer ${JWT}" "${API_FAC_URL}/general?limit=1" +curl -X GET -H "Authorization: Bearer ${JWT}" "${API_FAC_URL}/general?limit=1" ``` should return one item from the general view. API_FAC_URL might be `http://localhost:3000` in testing locally, or `https://api.fac.gov` when working live. @@ -72,14 +72,14 @@ checks this header, and if the correct role is present (`fac_gov_tribal_data_acc ## Standing up / tearing down -With each deployment of the stack, we should tear down and stand up the entire API. +With each deployment of the stack, we should tear down and stand up the entire API. 1. `fac drop_deprecated_schema_and_views` will tear down any deprecated APIs. Always run it. 1. `fac drop_api_schema` will tear down the active schema and everything associated with it. -1. `fac create_api_schema` will create roles and the schema. -1. `fac create_api_views` will create the views on the data. +2. `fac create_api_schema` will create roles and the schema. +3. `fac create_api_views` will create the views on the data. -With this sequence, we completely tear down old _and_ current APIs, as well as associated roles. Then, we stand them up again, including all roles. This guarantees that every deploy is a complete, fresh instantiation of the API, and any changes that may have been made to views, functions, or privileges are caught. +With this sequence, we completely tear down old *and* current APIs, as well as associated roles. Then, we stand them up again, including all roles. This guarantees that every deploy is a complete, fresh instantiation of the API, and any changes that may have been made to views, functions, or privileges are caught. In other words: the API should always be stood up from a "blank slate" in the name of stateless deploys. @@ -87,9 +87,9 @@ In other words: the API should always be stood up from a "blank slate" in the na When adding a new API version. -1. Create a folder in api/dissemination for the version name. E.g. `v1_0_1`. +1. Create a folder in api/dissemination for the version name. E.g. `v1_0_1`. 2. Copy the contents of an existing API as a starting point. -3. Update `docker-compose.yml` and `docker-compose-web.yml` to change the `PGRST_DB_SCHEMAS` key to reflect all the active schemas. +3. Update `docker-compose.yml` and `docker-compose-web.yml` to change the `PGRST_DB_SCHEMAS` key to reflect all the active schemas. 1. ADD TO THE END OF THIS LIST. The first entry is the default. Only add to the front of the list if we are certain the schema should become the new default. - 2. This is likely true of TESTED patch version bumps (v1*0_0 to v1_0_1), and \_maybe* minor version bumps (v1_0_0 to v1_1_0). MAJOR bumps require change management messaging. + 2. This is likely true of TESTED patch version bumps (v1_0_0 to v1_0_1), and *maybe* minor version bumps (v1_0_0 to v1_1_0). MAJOR bumps require change management messaging. 4. Update `APIViewTests` to make sure you're testing the right schema. (That file might want some love...) diff --git a/backend/dissemination/data-model/fac.md b/backend/dissemination/data-model/fac.md index 192aa38bda..74d4716b0e 100644 --- a/backend/dissemination/data-model/fac.md +++ b/backend/dissemination/data-model/fac.md @@ -1,5 +1,4 @@ FAC Data Dissemination Data Model - ```plantuml @startuml Data Model @@ -15,7 +14,7 @@ TABLE(General, "General") { audit_period_covered audit_type fy_start_date - fy_end_date + fy_end_date audit_year /'22 AUDITYEAR '/ auditee_ein auditee_duns @@ -29,7 +28,7 @@ TABLE(General, "General") { data_source /'GFAC or CFAC '/ auditee_address_line_1 - auditee_certify_name + auditee_certify_name auditee_certify_title auditee_city auditee_contact_name @@ -39,42 +38,42 @@ TABLE(General, "General") { auditee_phone auditee_state auditee_zip + - - auditor_address_line_1 + auditor_address_line_1 auditor_city auditor_contact_name auditor_contact_title /' 22 CPANAMETITLE '/ auditor_country auditor_email - auditor_firm_name + auditor_firm_name auditor_foreign_addr /' 22 CPAFOREIGN'/ auditor_phone auditor_state auditor_title auditor_zip - + cognizant_agency oversight_agency - initial_date_received + initial_date_received /' SK - from data key file - fac_accepted_date - The most recent date an audit report was submitted to the FAC that passed FAC screening and was accepted as a valid OMB Circular A-133 report submission. '/ - fac_accepted_date /' JM: ?ready for certification. How is this different from initial_date_received? '/ + fac_accepted_date /' JM: ?ready for certification. How is this different from initial_date_received? '/ auditee_certified_date - auditor_certified_date + auditor_certified_date date_published type_report_financial_statements special_framework - is_special_framework_required + is_special_framework_required type_report_special_purpose_framework is_going_concern is_significant_deficiency - is_material_weakness - is_material_noncompliance + is_material_weakness + is_material_noncompliance is_duplicate_reports dollar_threshold - is_low_risk + is_low_risk prior_finding_agency_list ' JM: Need to understand the following @@ -88,16 +87,16 @@ TABLE(General, "General") { is_current_or_former_findings /'22 CYFINDINGS '/ /' SK - This is a boolean field '/ ' hist_ein_subcode /' SK - EINSUBCODE is no longer in use. Added hist_ '/ entity_type /' SK - from Data key file - Self reported type of entity '/ - - + + number_months /' SK - from Data key file - Number of Months Covered by the 'Other' Audit Period'/ - is_prior_year_schedule /' SK - from Data key file -Indicate whether or not current year findings or prior year findings affecting direct funds were reported. This is a boolean field. Added is_ . + is_prior_year_schedule /' SK - from Data key file -Indicate whether or not current year findings or prior year findings affecting direct funds were reported. This is a boolean field. Added is_ . JM: the column name does not sound right - what is a schedule?'/ - + is_material_weakness_major_program /' SK - Not used since 2013. Is this hist_ ?'/ is_sd_material_weakness /' SK - from 1146 spreadsheet - Whether or not the audit disclosed any reportable condition/significant deficiency as a material weakness on financial statements. Its a Y/N field. It gets disseminated in the GEN file as MATERIALWEAKNESS'/ - + sd_material_weakness_major_program /' SK - Present in ELECAUDITHEADER. Is this different from is_material_weakness_major_program ? '/ @@ -105,9 +104,9 @@ TABLE(General, "General") { total_fed_expenditures /' SK - from 1146 Questions sheet - It is the summation of all expenditures listed on the federal awards workbook. It is not entered by the user, the workbook calculates total expenditure and it is stored here. '/ - type_audit_code /' SK - from 1146 Questions sheet - Would indicate if the audit is A133 or UG. '/ + type_audit_code /' SK - from 1146 Questions sheet - Would indicate if the audit is A133 or UG. '/ type_report_major_program /' SK - from Data key file - Type of Report Issued on the Major Program Compliance '/ - + cfac_report_id cfac_version ??needed? ' JM: Do we need CFAC DB_KEY? @@ -121,11 +120,11 @@ TABLE(General, "General") { ' hist_completed_date /' Historic data '/ ' hist_copies /' Historic data '/ ' hist_date_firewall /' Historic data '/ - ' hist_date_received_other /' Historic data '/ + ' hist_date_received_other /' Historic data '/ ' hist_component_date_received /' Historic data '/ ' hist_image /' Historic data '/ ' hist_type_of_entity /' Historic data '/ - ' hist_previous_completed_on_date /' Historic data '/ + ' hist_previous_completed_on_date /' Historic data '/ ' hist_previous_date_firewall /' Historic data '/ ' hist_previous_date_published /' Historic data '/ ' hist_reportable_condition /' Historic data '/ @@ -140,45 +139,45 @@ TABLE(Auditor, "GenAuditor") { + auditor_seq_number auditor_city auditor_contact - auditor_country - auditor_ein + auditor_country + auditor_ein auditor_email - auditor_fax - auditor_firm_name + auditor_fax + auditor_firm_name auditor_foreign_addr auditor_phone - auditor_state - auditor_street1 - auditor_title + auditor_state + auditor_street1 + auditor_title auditor_zip_code - + "VERSION" ? /' Discuss with Matt '/ } TABLE(Award, "FederalAward") { + General.report_id - + award_seq_number + + award_seq_number federal_agency_prefix - federal_award_extension - additional_award_identification + federal_award_extension + additional_award_identification federal_program_name - amount_expended + amount_expended cluster_name other_cluster_name state_cluster_name cluster_total - federal_program_total + federal_program_total is_loan loan_balance - is_direct - - is_major - mp_audit_report_type - findings_count + is_direct - passthrough_amount - is_passthrough_award + is_major + mp_audit_report_type + findings_count + + passthrough_amount + is_passthrough_award ' --need more clarity on these fields @@ -187,18 +186,18 @@ TABLE(Award, "FederalAward") { ' is_passed /' SK - This is the same as is_passthrough_award. Which field do we keep ? '/ ' subrecipient_amount /' SK - This is the same as passthrough_amount. Which field do we keep ? '/ - + ' program_name /' SK - This might be CFDAPROGRAMNAME, which is different from federal_program_name. Maybe rename to hist_cfda_program_name? Seems to be part of internal table based on 1146 - Questions sheet. '/ ' type_requirement /' SK - from 1146 Questions sheet - Its collected on form III.4.f... '/ ' not needed for now - ' hist_research_and_development - ' hist_questioned_costs2 /' Historic data '/ + ' hist_research_and_development + ' hist_questioned_costs2 /' Historic data '/ ' hist_findings /' Historic data '/ - ' hist_arra + ' hist_arra ' hist_typereoirt_mp_iverride - + } TABLE(Passthrough, "Passthrough") { @@ -213,7 +212,7 @@ TABLE(Finding, "Finding") { + Award.award_seq_number /' To be added to GFAC '/ + Award.report_id + finding_seq_number - finding_ref_number + finding_ref_number is_material_weakness is_modified_opinion is_other_findings @@ -233,7 +232,7 @@ TABLE(Note, "Note") { content note_index note_title - type_id + type_id version /' Is this the latest version? Discuss with Matt. Is this required in General? '/ } @@ -254,7 +253,7 @@ TABLE(CAPText, "CAPText") { TABLE(Revision, "Revision") { - /' Maybe needed only for Historical data' + /' Maybe needed only for Historical data' Is this needed for GFAC? - Decision to be made.'/ } diff --git a/backend/docker-compose-web.yml b/backend/docker-compose-web.yml index 535af2216d..1e5914ff31 100644 --- a/backend/docker-compose-web.yml +++ b/backend/docker-compose-web.yml @@ -1,17 +1,17 @@ --- -version: '3.7' +version: "3.7" services: db: - image: 'postgres:12' + image: "postgres:12" environment: - POSTGRES_HOST_AUTH_METHOD: 'trust' + POSTGRES_HOST_AUTH_METHOD: "trust" volumes: - postgres-data:/var/lib/postgresql/data/ ports: - - '5432:5432' + - "5432:5432" healthcheck: - test: ['CMD-SHELL', 'pg_isready -d postgres -U postgres'] + test: ["CMD-SHELL", "pg_isready -d postgres -U postgres"] interval: 10s timeout: 5s retries: 10 @@ -41,9 +41,9 @@ services: DISABLE_AUTH: ${DISABLE_AUTH:-False} PGRST_JWT_SECRET: ${PGRST_JWT_SECRET:-32_chars_fallback_secret_testing} # Fallback value for testing environments env_file: - - '.env' + - ".env" ports: - - '8000:8000' + - "8000:8000" volumes: - .:/src - /src/node_modules @@ -54,32 +54,32 @@ services: MAX_FILE_SIZE: 25M SIGNATURE_CHECKS: 1 ports: - - '9000:9000' + - "9000:9000" minio: - container_name: 'minio' + container_name: "minio" image: minio/minio command: server /tmp/minio --console-address ":9002" ports: - - '9001:9000' - - '9002:9002' + - "9001:9000" + - "9002:9002" volumes: - - 'minio-vol:/tmp/minio' + - "minio-vol:/tmp/minio" api: image: ghcr.io/gsa-tts/fac/postgrest:latest ports: - - '3000:3000' + - "3000:3000" expose: - - '3000' + - "3000" environment: PGRST_DB_URI: postgres://postgres@db:5432/postgres PGRST_OPENAPI_SERVER_PROXY_URI: http://127.0.0.1:3000 PGRST_DB_ANON_ROLE: anon - PGRST_DB_SCHEMAS: 'api_v1_0_0' + PGRST_DB_SCHEMAS: "api_v1_0_0" PGRST_JWT_SECRET: ${PGRST_JWT_SECRET:-32_chars_fallback_secret_testing} # Fallback value for testing environments depends_on: db: condition: service_healthy - + volumes: postgres-data: minio-vol: diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 6b78e0f563..f2822557af 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -1,19 +1,19 @@ -version: '3.7' +version: "3.7" services: #--------------------------------------------- # Postgres DB #--------------------------------------------- db: - image: 'postgres:12' + image: "postgres:12" environment: POSTGRES_HOST_AUTH_METHOD: trust volumes: - postgres-data:/var/lib/postgresql/data/ ports: - - '5432:5432' + - "5432:5432" healthcheck: - test: ['CMD-SHELL', 'pg_isready -d postgres -U postgres'] + test: ["CMD-SHELL", "pg_isready -d postgres -U postgres"] interval: 10s timeout: 5s retries: 10 @@ -35,7 +35,7 @@ services: web: build: context: . - dockerfile: './${DOCKERFILE:-Dockerfile}' + dockerfile: "./${DOCKERFILE:-Dockerfile}" command: /src/run.sh depends_on: db: @@ -63,9 +63,9 @@ services: ENABLE_DEBUG_TOOLBAR: false env_file: - - '.env' + - ".env" ports: - - '8000:8000' + - "8000:8000" volumes: - .:/src - /src/node_modules @@ -80,20 +80,20 @@ services: MAX_FILE_SIZE: 25M SIGNATURE_CHECKS: 1 ports: - - '9000:9000' + - "9000:9000" #--------------------------------------------- # Minio (S3 clone) #--------------------------------------------- minio: - container_name: 'minio' + container_name: "minio" image: minio/minio command: server /tmp/minio --console-address ":9002" ports: - - '9001:9000' - - '9002:9002' + - "9001:9000" + - "9002:9002" volumes: - - 'minio-vol:/tmp/minio' + - "minio-vol:/tmp/minio" #--------------------------------------------- # PostgREST API provider @@ -101,14 +101,14 @@ services: api: image: ghcr.io/gsa-tts/fac/postgrest:latest ports: - - '3000:3000' + - "3000:3000" expose: - - '3000' + - "3000" environment: PGRST_DB_URI: postgres://postgres@db:5432/postgres PGRST_OPENAPI_SERVER_PROXY_URI: http://127.0.0.1:3000 PGRST_DB_ANON_ROLE: anon - PGRST_DB_SCHEMAS: 'api_v1_0_0' + PGRST_DB_SCHEMAS: "api_v1_0_0" PGRST_JWT_SECRET: ${PGRST_JWT_SECRET:-32_chars_fallback_secret_testing} # Fallback value for testing environments depends_on: db: diff --git a/backend/manifests/task-manifest-staging.yml b/backend/manifests/task-manifest-staging.yml index aed11857d0..ce18272892 100644 --- a/backend/manifests/task-manifest-staging.yml +++ b/backend/manifests/task-manifest-staging.yml @@ -1,22 +1,22 @@ --- applications: - - name: task-runner-20 - buildpacks: - - python_buildpack - memory: 2G - path: ../ - timeout: 180 - health-check-type: process - env: - ENV: STAGING - DJANGO_BASE_URL: https://fac-staging.app.cloud.gov - services: - - fac-db - - fac-public-s3 - - fac-key-service - command: (python manage.py public_data_loader -y 20 && echo SUCCESS || echo TASK_FAIL) && sleep infinity +- name: task-runner-20 + buildpacks: + - python_buildpack + memory: 2G + path: ../ + timeout: 180 + health-check-type: process + env: + ENV: STAGING + DJANGO_BASE_URL: https://fac-staging.app.cloud.gov + services: + - fac-db + - fac-public-s3 + - fac-key-service + command: (python manage.py public_data_loader -y 20 && echo SUCCESS || echo TASK_FAIL) && sleep infinity - # run with - # cf push -f manifests/task-manifest-staging.yml --no-route - # - # This is an example task, you can modify the command to run other tasks + # run with + # cf push -f manifests/task-manifest-staging.yml --no-route + # + # This is an example task, you can modify the command to run other tasks diff --git a/backend/schemas/source/base/ClusterNames.json b/backend/schemas/source/base/ClusterNames.json index c54362eb54..ee76bfe769 100644 --- a/backend/schemas/source/base/ClusterNames.json +++ b/backend/schemas/source/base/ClusterNames.json @@ -40,4 +40,4 @@ "CDBG - ENTITLEMENT GRANTS CLUSTER", "CDBG - DISASTER RECOVERY GRANTS - PUB. L. NO. 113-2 CLUSTER" ] -} +} \ No newline at end of file diff --git a/backend/schemas/source/base/ComplianceRequirementTypes.json b/backend/schemas/source/base/ComplianceRequirementTypes.json index 29d8cc469c..ed07753eff 100644 --- a/backend/schemas/source/base/ComplianceRequirementTypes.json +++ b/backend/schemas/source/base/ComplianceRequirementTypes.json @@ -1,8195 +1,8195 @@ -{ - "requirement_types": [ - "A", - "B", - "C", - "E", - "F", - "G", - "H", - "I", - "J", - "L", - "M", - "N", - "P", - "AB", - "AC", - "AE", - "AF", - "AG", - "AH", - "AI", - "AJ", - "AL", - "AM", - "AN", - "AP", - "BC", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BP", - "CE", - "CF", - "CG", - "CH", - "CI", - "CJ", - "CL", - "CM", - "CN", - "CP", - "EF", - "EG", - "EH", - "EI", - "EJ", - "EL", - "EM", - "EN", - "EP", - "FG", - "FH", - "FI", - "FJ", - "FL", - "FM", - "FN", - "FP", - "GH", - "GI", - "GJ", - "GL", - "GM", - "GN", - "GP", - "HI", - "HJ", - "HL", - "HM", - "HN", - "HP", - "IJ", - "IL", - "IM", - "IN", - "IP", - "JL", - "JM", - "JN", - "JP", - "LM", - "LN", - "LP", - "MN", - "MP", - "NP", - "ABC", - "ABE", - "ABF", - "ABG", - "ABH", - "ABI", - "ABJ", - "ABL", - "ABM", - "ABN", - "ABP", - "ACE", - "ACF", - "ACG", - "ACH", - "ACI", - "ACJ", - "ACL", - "ACM", - "ACN", - "ACP", - "AEF", - "AEG", - "AEH", - "AEI", - "AEJ", - "AEL", - "AEM", - "AEN", - "AEP", - "AFG", - "AFH", - "AFI", - "AFJ", - "AFL", - "AFM", - "AFN", - "AFP", - "AGH", - "AGI", - "AGJ", - "AGL", - "AGM", - "AGN", - "AGP", - "AHI", - "AHJ", - "AHL", - "AHM", - "AHN", - "AHP", - "AIJ", - "AIL", - "AIM", - "AIN", - "AIP", - "AJL", - "AJM", - "AJN", - "AJP", - "ALM", - "ALN", - "ALP", - "AMN", - "AMP", - "ANP", - "BCE", - "BCF", - "BCG", - "BCH", - "BCI", - "BCJ", - "BCL", - "BCM", - "BCN", - "BCP", - "BEF", - "BEG", - "BEH", - "BEI", - "BEJ", - "BEL", - "BEM", - "BEN", - "BEP", - "BFG", - "BFH", - "BFI", - "BFJ", - "BFL", - "BFM", - "BFN", - "BFP", - "BGH", - "BGI", - "BGJ", - "BGL", - "BGM", - "BGN", - "BGP", - "BHI", - "BHJ", - "BHL", - "BHM", - "BHN", - "BHP", - "BIJ", - "BIL", - "BIM", - "BIN", - "BIP", - "BJL", - "BJM", - "BJN", - "BJP", - "BLM", - "BLN", - "BLP", - "BMN", - "BMP", - "BNP", - "CEF", - "CEG", - "CEH", - "CEI", - "CEJ", - "CEL", - "CEM", - "CEN", - "CEP", - "CFG", - "CFH", - "CFI", - "CFJ", - "CFL", - "CFM", - "CFN", - "CFP", - "CGH", - "CGI", - "CGJ", - "CGL", - "CGM", - "CGN", - "CGP", - "CHI", - "CHJ", - "CHL", - "CHM", - "CHN", - "CHP", - "CIJ", - "CIL", - "CIM", - "CIN", - "CIP", - "CJL", - "CJM", - "CJN", - "CJP", - "CLM", - "CLN", - "CLP", - "CMN", - "CMP", - "CNP", - "EFG", - "EFH", - "EFI", - "EFJ", - "EFL", - "EFM", - "EFN", - "EFP", - "EGH", - "EGI", - "EGJ", - "EGL", - "EGM", - "EGN", - "EGP", - "EHI", - "EHJ", - "EHL", - "EHM", - "EHN", - "EHP", - "EIJ", - "EIL", - "EIM", - "EIN", - "EIP", - "EJL", - "EJM", - "EJN", - "EJP", - "ELM", - "ELN", - "ELP", - "EMN", - "EMP", - "ENP", - "FGH", - "FGI", - "FGJ", - "FGL", - "FGM", - "FGN", - "FGP", - "FHI", - "FHJ", - "FHL", - "FHM", - "FHN", - "FHP", - "FIJ", - "FIL", - "FIM", - "FIN", - "FIP", - "FJL", - "FJM", - "FJN", - "FJP", - "FLM", - "FLN", - "FLP", - "FMN", - "FMP", - "FNP", - "GHI", - "GHJ", - "GHL", - "GHM", - "GHN", - "GHP", - "GIJ", - "GIL", - "GIM", - "GIN", - "GIP", - "GJL", - "GJM", - "GJN", - "GJP", - "GLM", - "GLN", - "GLP", - "GMN", - "GMP", - "GNP", - "HIJ", - "HIL", - "HIM", - "HIN", - "HIP", - "HJL", - "HJM", - "HJN", - "HJP", - "HLM", - "HLN", - "HLP", - "HMN", - "HMP", - "HNP", - "IJL", - "IJM", - "IJN", - "IJP", - "ILM", - "ILN", - "ILP", - "IMN", - "IMP", - "INP", - "JLM", - "JLN", - "JLP", - "JMN", - "JMP", - "JNP", - "LMN", - "LMP", - "LNP", - "MNP", - "ABCE", - "ABCF", - "ABCG", - "ABCH", - "ABCI", - "ABCJ", - "ABCL", - "ABCM", - "ABCN", - "ABCP", - "ABEF", - "ABEG", - "ABEH", - "ABEI", - "ABEJ", - "ABEL", - "ABEM", - "ABEN", - "ABEP", - "ABFG", - "ABFH", - "ABFI", - "ABFJ", - "ABFL", - "ABFM", - "ABFN", - "ABFP", - "ABGH", - "ABGI", - "ABGJ", - "ABGL", - "ABGM", - "ABGN", - "ABGP", - "ABHI", - "ABHJ", - "ABHL", - "ABHM", - "ABHN", - "ABHP", - "ABIJ", - "ABIL", - "ABIM", - "ABIN", - "ABIP", - "ABJL", - "ABJM", - "ABJN", - "ABJP", - "ABLM", - "ABLN", - "ABLP", - "ABMN", - "ABMP", - "ABNP", - "ACEF", - "ACEG", - "ACEH", - "ACEI", - "ACEJ", - "ACEL", - "ACEM", - "ACEN", - "ACEP", - "ACFG", - "ACFH", - "ACFI", - "ACFJ", - "ACFL", - "ACFM", - "ACFN", - "ACFP", - "ACGH", - "ACGI", - "ACGJ", - "ACGL", - "ACGM", - "ACGN", - "ACGP", - "ACHI", - "ACHJ", - "ACHL", - "ACHM", - "ACHN", - "ACHP", - "ACIJ", - "ACIL", - "ACIM", - "ACIN", - "ACIP", - "ACJL", - "ACJM", - "ACJN", - "ACJP", - "ACLM", - "ACLN", - "ACLP", - "ACMN", - "ACMP", - "ACNP", - "AEFG", - "AEFH", - "AEFI", - "AEFJ", - "AEFL", - "AEFM", - "AEFN", - "AEFP", - "AEGH", - "AEGI", - "AEGJ", - "AEGL", - "AEGM", - "AEGN", - "AEGP", - "AEHI", - "AEHJ", - "AEHL", - "AEHM", - "AEHN", - "AEHP", - "AEIJ", - "AEIL", - "AEIM", - "AEIN", - "AEIP", - "AEJL", - "AEJM", - "AEJN", - "AEJP", - "AELM", - "AELN", - "AELP", - "AEMN", - "AEMP", - "AENP", - "AFGH", - "AFGI", - "AFGJ", - "AFGL", - "AFGM", - "AFGN", - "AFGP", - "AFHI", - "AFHJ", - "AFHL", - "AFHM", - "AFHN", - "AFHP", - "AFIJ", - "AFIL", - "AFIM", - "AFIN", - "AFIP", - "AFJL", - "AFJM", - "AFJN", - "AFJP", - "AFLM", - "AFLN", - "AFLP", - "AFMN", - "AFMP", - "AFNP", - "AGHI", - "AGHJ", - "AGHL", - "AGHM", - "AGHN", - "AGHP", - "AGIJ", - "AGIL", - "AGIM", - "AGIN", - "AGIP", - "AGJL", - "AGJM", - "AGJN", - "AGJP", - "AGLM", - "AGLN", - "AGLP", - "AGMN", - "AGMP", - "AGNP", - "AHIJ", - "AHIL", - "AHIM", - "AHIN", - "AHIP", - "AHJL", - "AHJM", - "AHJN", - "AHJP", - "AHLM", - "AHLN", - "AHLP", - "AHMN", - "AHMP", - "AHNP", - "AIJL", - "AIJM", - "AIJN", - "AIJP", - "AILM", - "AILN", - "AILP", - "AIMN", - "AIMP", - "AINP", - "AJLM", - "AJLN", - "AJLP", - "AJMN", - "AJMP", - "AJNP", - "ALMN", - "ALMP", - "ALNP", - "AMNP", - "BCEF", - "BCEG", - "BCEH", - "BCEI", - "BCEJ", - "BCEL", - "BCEM", - "BCEN", - "BCEP", - "BCFG", - "BCFH", - "BCFI", - "BCFJ", - "BCFL", - "BCFM", - "BCFN", - "BCFP", - "BCGH", - "BCGI", - "BCGJ", - "BCGL", - "BCGM", - "BCGN", - "BCGP", - "BCHI", - "BCHJ", - "BCHL", - "BCHM", - "BCHN", - "BCHP", - "BCIJ", - "BCIL", - "BCIM", - "BCIN", - "BCIP", - "BCJL", - "BCJM", - "BCJN", - "BCJP", - "BCLM", - "BCLN", - "BCLP", - "BCMN", - "BCMP", - "BCNP", - "BEFG", - "BEFH", - "BEFI", - "BEFJ", - "BEFL", - "BEFM", - "BEFN", - "BEFP", - "BEGH", - "BEGI", - "BEGJ", - "BEGL", - "BEGM", - "BEGN", - "BEGP", - "BEHI", - "BEHJ", - "BEHL", - "BEHM", - "BEHN", - "BEHP", - "BEIJ", - "BEIL", - "BEIM", - "BEIN", - "BEIP", - "BEJL", - "BEJM", - "BEJN", - "BEJP", - "BELM", - "BELN", - "BELP", - "BEMN", - "BEMP", - "BENP", - "BFGH", - "BFGI", - "BFGJ", - "BFGL", - "BFGM", - "BFGN", - "BFGP", - "BFHI", - "BFHJ", - "BFHL", - "BFHM", - "BFHN", - "BFHP", - "BFIJ", - "BFIL", - "BFIM", - "BFIN", - "BFIP", - "BFJL", - "BFJM", - "BFJN", - "BFJP", - "BFLM", - "BFLN", - "BFLP", - "BFMN", - "BFMP", - "BFNP", - "BGHI", - "BGHJ", - "BGHL", - "BGHM", - "BGHN", - "BGHP", - "BGIJ", - "BGIL", - "BGIM", - "BGIN", - "BGIP", - "BGJL", - "BGJM", - "BGJN", - "BGJP", - "BGLM", - "BGLN", - "BGLP", - "BGMN", - "BGMP", - "BGNP", - "BHIJ", - "BHIL", - "BHIM", - "BHIN", - "BHIP", - "BHJL", - "BHJM", - "BHJN", - "BHJP", - "BHLM", - "BHLN", - "BHLP", - "BHMN", - "BHMP", - "BHNP", - "BIJL", - "BIJM", - "BIJN", - "BIJP", - "BILM", - "BILN", - "BILP", - "BIMN", - "BIMP", - "BINP", - "BJLM", - "BJLN", - "BJLP", - "BJMN", - "BJMP", - "BJNP", - "BLMN", - "BLMP", - "BLNP", - "BMNP", - "CEFG", - "CEFH", - "CEFI", - "CEFJ", - "CEFL", - "CEFM", - "CEFN", - "CEFP", - "CEGH", - "CEGI", - "CEGJ", - "CEGL", - "CEGM", - "CEGN", - "CEGP", - "CEHI", - "CEHJ", - "CEHL", - "CEHM", - "CEHN", - "CEHP", - "CEIJ", - "CEIL", - "CEIM", - "CEIN", - "CEIP", - "CEJL", - "CEJM", - "CEJN", - "CEJP", - "CELM", - "CELN", - "CELP", - "CEMN", - "CEMP", - "CENP", - "CFGH", - "CFGI", - "CFGJ", - "CFGL", - "CFGM", - "CFGN", - "CFGP", - "CFHI", - "CFHJ", - "CFHL", - "CFHM", - "CFHN", - "CFHP", - "CFIJ", - "CFIL", - "CFIM", - "CFIN", - "CFIP", - "CFJL", - "CFJM", - "CFJN", - "CFJP", - "CFLM", - "CFLN", - "CFLP", - "CFMN", - "CFMP", - "CFNP", - "CGHI", - "CGHJ", - "CGHL", - "CGHM", - "CGHN", - "CGHP", - "CGIJ", - "CGIL", - "CGIM", - "CGIN", - "CGIP", - "CGJL", - "CGJM", - "CGJN", - "CGJP", - "CGLM", - "CGLN", - "CGLP", - "CGMN", - "CGMP", - "CGNP", - "CHIJ", - "CHIL", - "CHIM", - "CHIN", - "CHIP", - "CHJL", - "CHJM", - "CHJN", - "CHJP", - "CHLM", - "CHLN", - "CHLP", - "CHMN", - "CHMP", - "CHNP", - "CIJL", - "CIJM", - "CIJN", - "CIJP", - "CILM", - "CILN", - "CILP", - "CIMN", - "CIMP", - "CINP", - "CJLM", - "CJLN", - "CJLP", - "CJMN", - "CJMP", - "CJNP", - "CLMN", - "CLMP", - "CLNP", - "CMNP", - "EFGH", - "EFGI", - "EFGJ", - "EFGL", - "EFGM", - "EFGN", - "EFGP", - "EFHI", - "EFHJ", - "EFHL", - "EFHM", - "EFHN", - "EFHP", - "EFIJ", - "EFIL", - "EFIM", - "EFIN", - "EFIP", - "EFJL", - "EFJM", - "EFJN", - "EFJP", - "EFLM", - "EFLN", - "EFLP", - "EFMN", - "EFMP", - "EFNP", - "EGHI", - "EGHJ", - "EGHL", - "EGHM", - "EGHN", - "EGHP", - "EGIJ", - "EGIL", - "EGIM", - "EGIN", - "EGIP", - "EGJL", - "EGJM", - "EGJN", - "EGJP", - "EGLM", - "EGLN", - "EGLP", - "EGMN", - "EGMP", - "EGNP", - "EHIJ", - "EHIL", - "EHIM", - "EHIN", - "EHIP", - "EHJL", - "EHJM", - "EHJN", - "EHJP", - "EHLM", - "EHLN", - "EHLP", - "EHMN", - "EHMP", - "EHNP", - "EIJL", - "EIJM", - "EIJN", - "EIJP", - "EILM", - "EILN", - "EILP", - "EIMN", - "EIMP", - "EINP", - "EJLM", - "EJLN", - "EJLP", - "EJMN", - "EJMP", - "EJNP", - "ELMN", - "ELMP", - "ELNP", - "EMNP", - "FGHI", - "FGHJ", - "FGHL", - "FGHM", - "FGHN", - "FGHP", - "FGIJ", - "FGIL", - "FGIM", - "FGIN", - "FGIP", - "FGJL", - "FGJM", - "FGJN", - "FGJP", - "FGLM", - "FGLN", - "FGLP", - "FGMN", - "FGMP", - "FGNP", - "FHIJ", - "FHIL", - "FHIM", - "FHIN", - "FHIP", - "FHJL", - "FHJM", - "FHJN", - "FHJP", - "FHLM", - "FHLN", - "FHLP", - "FHMN", - "FHMP", - "FHNP", - "FIJL", - "FIJM", - "FIJN", - "FIJP", - "FILM", - "FILN", - "FILP", - "FIMN", - "FIMP", - "FINP", - "FJLM", - "FJLN", - "FJLP", - "FJMN", - "FJMP", - "FJNP", - "FLMN", - "FLMP", - "FLNP", - "FMNP", - "GHIJ", - "GHIL", - "GHIM", - "GHIN", - "GHIP", - "GHJL", - "GHJM", - "GHJN", - "GHJP", - "GHLM", - "GHLN", - "GHLP", - "GHMN", - "GHMP", - "GHNP", - "GIJL", - "GIJM", - "GIJN", - "GIJP", - "GILM", - "GILN", - "GILP", - "GIMN", - "GIMP", - "GINP", - "GJLM", - "GJLN", - "GJLP", - "GJMN", - "GJMP", - "GJNP", - "GLMN", - "GLMP", - "GLNP", - "GMNP", - "HIJL", - "HIJM", - "HIJN", - "HIJP", - "HILM", - "HILN", - "HILP", - "HIMN", - "HIMP", - "HINP", - "HJLM", - "HJLN", - "HJLP", - "HJMN", - "HJMP", - "HJNP", - "HLMN", - "HLMP", - "HLNP", - "HMNP", - "IJLM", - "IJLN", - "IJLP", - "IJMN", - "IJMP", - "IJNP", - "ILMN", - "ILMP", - "ILNP", - "IMNP", - "JLMN", - "JLMP", - "JLNP", - "JMNP", - "LMNP", - "ABCEF", - "ABCEG", - "ABCEH", - "ABCEI", - "ABCEJ", - "ABCEL", - "ABCEM", - "ABCEN", - "ABCEP", - "ABCFG", - "ABCFH", - "ABCFI", - "ABCFJ", - "ABCFL", - "ABCFM", - "ABCFN", - "ABCFP", - "ABCGH", - "ABCGI", - "ABCGJ", - "ABCGL", - "ABCGM", - "ABCGN", - "ABCGP", - "ABCHI", - "ABCHJ", - "ABCHL", - "ABCHM", - "ABCHN", - "ABCHP", - "ABCIJ", - "ABCIL", - "ABCIM", - "ABCIN", - "ABCIP", - "ABCJL", - "ABCJM", - "ABCJN", - "ABCJP", - "ABCLM", - "ABCLN", - "ABCLP", - "ABCMN", - "ABCMP", - "ABCNP", - "ABEFG", - "ABEFH", - "ABEFI", - "ABEFJ", - "ABEFL", - "ABEFM", - "ABEFN", - "ABEFP", - "ABEGH", - "ABEGI", - "ABEGJ", - "ABEGL", - "ABEGM", - "ABEGN", - "ABEGP", - "ABEHI", - "ABEHJ", - "ABEHL", - "ABEHM", - "ABEHN", - "ABEHP", - "ABEIJ", - "ABEIL", - "ABEIM", - "ABEIN", - "ABEIP", - "ABEJL", - "ABEJM", - "ABEJN", - "ABEJP", - "ABELM", - "ABELN", - "ABELP", - "ABEMN", - "ABEMP", - "ABENP", - "ABFGH", - "ABFGI", - "ABFGJ", - "ABFGL", - "ABFGM", - "ABFGN", - "ABFGP", - "ABFHI", - "ABFHJ", - "ABFHL", - "ABFHM", - "ABFHN", - "ABFHP", - "ABFIJ", - "ABFIL", - "ABFIM", - "ABFIN", - "ABFIP", - "ABFJL", - "ABFJM", - "ABFJN", - "ABFJP", - "ABFLM", - "ABFLN", - "ABFLP", - "ABFMN", - "ABFMP", - "ABFNP", - "ABGHI", - "ABGHJ", - "ABGHL", - "ABGHM", - "ABGHN", - "ABGHP", - "ABGIJ", - "ABGIL", - "ABGIM", - "ABGIN", - "ABGIP", - "ABGJL", - "ABGJM", - "ABGJN", - "ABGJP", - "ABGLM", - "ABGLN", - "ABGLP", - "ABGMN", - "ABGMP", - "ABGNP", - "ABHIJ", - "ABHIL", - "ABHIM", - "ABHIN", - "ABHIP", - "ABHJL", - "ABHJM", - "ABHJN", - "ABHJP", - "ABHLM", - "ABHLN", - "ABHLP", - "ABHMN", - "ABHMP", - "ABHNP", - "ABIJL", - "ABIJM", - "ABIJN", - "ABIJP", - "ABILM", - "ABILN", - "ABILP", - "ABIMN", - "ABIMP", - "ABINP", - "ABJLM", - "ABJLN", - "ABJLP", - "ABJMN", - "ABJMP", - "ABJNP", - "ABLMN", - "ABLMP", - "ABLNP", - "ABMNP", - "ACEFG", - "ACEFH", - "ACEFI", - "ACEFJ", - "ACEFL", - "ACEFM", - "ACEFN", - "ACEFP", - "ACEGH", - "ACEGI", - "ACEGJ", - "ACEGL", - "ACEGM", - "ACEGN", - "ACEGP", - "ACEHI", - "ACEHJ", - "ACEHL", - "ACEHM", - "ACEHN", - "ACEHP", - "ACEIJ", - "ACEIL", - "ACEIM", - "ACEIN", - "ACEIP", - "ACEJL", - "ACEJM", - "ACEJN", - "ACEJP", - "ACELM", - "ACELN", - "ACELP", - "ACEMN", - "ACEMP", - "ACENP", - "ACFGH", - "ACFGI", - "ACFGJ", - "ACFGL", - "ACFGM", - "ACFGN", - "ACFGP", - "ACFHI", - "ACFHJ", - "ACFHL", - "ACFHM", - "ACFHN", - "ACFHP", - "ACFIJ", - "ACFIL", - "ACFIM", - "ACFIN", - "ACFIP", - "ACFJL", - "ACFJM", - "ACFJN", - "ACFJP", - "ACFLM", - "ACFLN", - "ACFLP", - "ACFMN", - "ACFMP", - "ACFNP", - "ACGHI", - "ACGHJ", - "ACGHL", - "ACGHM", - "ACGHN", - "ACGHP", - "ACGIJ", - "ACGIL", - "ACGIM", - "ACGIN", - "ACGIP", - "ACGJL", - "ACGJM", - "ACGJN", - "ACGJP", - "ACGLM", - "ACGLN", - "ACGLP", - "ACGMN", - "ACGMP", - "ACGNP", - "ACHIJ", - "ACHIL", - "ACHIM", - "ACHIN", - "ACHIP", - "ACHJL", - "ACHJM", - "ACHJN", - "ACHJP", - "ACHLM", - "ACHLN", - "ACHLP", - "ACHMN", - "ACHMP", - "ACHNP", - "ACIJL", - "ACIJM", - "ACIJN", - "ACIJP", - "ACILM", - "ACILN", - "ACILP", - "ACIMN", - "ACIMP", - "ACINP", - "ACJLM", - "ACJLN", - "ACJLP", - "ACJMN", - "ACJMP", - "ACJNP", - "ACLMN", - "ACLMP", - "ACLNP", - "ACMNP", - "AEFGH", - "AEFGI", - "AEFGJ", - "AEFGL", - "AEFGM", - "AEFGN", - "AEFGP", - "AEFHI", - "AEFHJ", - "AEFHL", - "AEFHM", - "AEFHN", - "AEFHP", - "AEFIJ", - "AEFIL", - "AEFIM", - "AEFIN", - "AEFIP", - "AEFJL", - "AEFJM", - "AEFJN", - "AEFJP", - "AEFLM", - "AEFLN", - "AEFLP", - "AEFMN", - "AEFMP", - "AEFNP", - "AEGHI", - "AEGHJ", - "AEGHL", - "AEGHM", - "AEGHN", - "AEGHP", - "AEGIJ", - "AEGIL", - "AEGIM", - "AEGIN", - "AEGIP", - "AEGJL", - "AEGJM", - "AEGJN", - "AEGJP", - "AEGLM", - "AEGLN", - "AEGLP", - "AEGMN", - "AEGMP", - "AEGNP", - "AEHIJ", - "AEHIL", - "AEHIM", - "AEHIN", - "AEHIP", - "AEHJL", - "AEHJM", - "AEHJN", - "AEHJP", - "AEHLM", - "AEHLN", - "AEHLP", - "AEHMN", - "AEHMP", - "AEHNP", - "AEIJL", - "AEIJM", - "AEIJN", - "AEIJP", - "AEILM", - "AEILN", - "AEILP", - "AEIMN", - "AEIMP", - "AEINP", - "AEJLM", - "AEJLN", - "AEJLP", - "AEJMN", - "AEJMP", - "AEJNP", - "AELMN", - "AELMP", - "AELNP", - "AEMNP", - "AFGHI", - "AFGHJ", - "AFGHL", - "AFGHM", - "AFGHN", - "AFGHP", - "AFGIJ", - "AFGIL", - "AFGIM", - "AFGIN", - "AFGIP", - "AFGJL", - "AFGJM", - "AFGJN", - "AFGJP", - "AFGLM", - "AFGLN", - "AFGLP", - "AFGMN", - "AFGMP", - "AFGNP", - "AFHIJ", - "AFHIL", - "AFHIM", - "AFHIN", - "AFHIP", - "AFHJL", - "AFHJM", - "AFHJN", - "AFHJP", - "AFHLM", - "AFHLN", - "AFHLP", - "AFHMN", - "AFHMP", - "AFHNP", - "AFIJL", - "AFIJM", - "AFIJN", - "AFIJP", - "AFILM", - "AFILN", - "AFILP", - "AFIMN", - "AFIMP", - "AFINP", - "AFJLM", - "AFJLN", - "AFJLP", - "AFJMN", - "AFJMP", - "AFJNP", - "AFLMN", - "AFLMP", - "AFLNP", - "AFMNP", - "AGHIJ", - "AGHIL", - "AGHIM", - "AGHIN", - "AGHIP", - "AGHJL", - "AGHJM", - "AGHJN", - "AGHJP", - "AGHLM", - "AGHLN", - "AGHLP", - "AGHMN", - "AGHMP", - "AGHNP", - "AGIJL", - "AGIJM", - "AGIJN", - "AGIJP", - "AGILM", - "AGILN", - "AGILP", - "AGIMN", - "AGIMP", - "AGINP", - "AGJLM", - "AGJLN", - "AGJLP", - "AGJMN", - "AGJMP", - "AGJNP", - "AGLMN", - "AGLMP", - "AGLNP", - "AGMNP", - "AHIJL", - "AHIJM", - "AHIJN", - "AHIJP", - "AHILM", - "AHILN", - "AHILP", - "AHIMN", - "AHIMP", - "AHINP", - "AHJLM", - "AHJLN", - "AHJLP", - "AHJMN", - "AHJMP", - "AHJNP", - "AHLMN", - "AHLMP", - "AHLNP", - "AHMNP", - "AIJLM", - "AIJLN", - "AIJLP", - "AIJMN", - "AIJMP", - "AIJNP", - "AILMN", - "AILMP", - "AILNP", - "AIMNP", - "AJLMN", - "AJLMP", - "AJLNP", - "AJMNP", - "ALMNP", - "BCEFG", - "BCEFH", - "BCEFI", - "BCEFJ", - "BCEFL", - "BCEFM", - "BCEFN", - "BCEFP", - "BCEGH", - "BCEGI", - "BCEGJ", - "BCEGL", - "BCEGM", - "BCEGN", - "BCEGP", - "BCEHI", - "BCEHJ", - "BCEHL", - "BCEHM", - "BCEHN", - "BCEHP", - "BCEIJ", - "BCEIL", - "BCEIM", - "BCEIN", - "BCEIP", - "BCEJL", - "BCEJM", - "BCEJN", - "BCEJP", - "BCELM", - "BCELN", - "BCELP", - "BCEMN", - "BCEMP", - "BCENP", - "BCFGH", - "BCFGI", - "BCFGJ", - "BCFGL", - "BCFGM", - "BCFGN", - "BCFGP", - "BCFHI", - "BCFHJ", - "BCFHL", - "BCFHM", - "BCFHN", - "BCFHP", - "BCFIJ", - "BCFIL", - "BCFIM", - "BCFIN", - "BCFIP", - "BCFJL", - "BCFJM", - "BCFJN", - "BCFJP", - "BCFLM", - "BCFLN", - "BCFLP", - "BCFMN", - "BCFMP", - "BCFNP", - "BCGHI", - "BCGHJ", - "BCGHL", - "BCGHM", - "BCGHN", - "BCGHP", - "BCGIJ", - "BCGIL", - "BCGIM", - "BCGIN", - "BCGIP", - "BCGJL", - "BCGJM", - "BCGJN", - "BCGJP", - "BCGLM", - "BCGLN", - "BCGLP", - "BCGMN", - "BCGMP", - "BCGNP", - "BCHIJ", - "BCHIL", - "BCHIM", - "BCHIN", - "BCHIP", - "BCHJL", - "BCHJM", - "BCHJN", - "BCHJP", - "BCHLM", - "BCHLN", - "BCHLP", - "BCHMN", - "BCHMP", - "BCHNP", - "BCIJL", - "BCIJM", - "BCIJN", - "BCIJP", - "BCILM", - "BCILN", - "BCILP", - "BCIMN", - "BCIMP", - "BCINP", - "BCJLM", - "BCJLN", - "BCJLP", - "BCJMN", - "BCJMP", - "BCJNP", - "BCLMN", - "BCLMP", - "BCLNP", - "BCMNP", - "BEFGH", - "BEFGI", - "BEFGJ", - "BEFGL", - "BEFGM", - "BEFGN", - "BEFGP", - "BEFHI", - "BEFHJ", - "BEFHL", - "BEFHM", - "BEFHN", - "BEFHP", - "BEFIJ", - "BEFIL", - "BEFIM", - "BEFIN", - "BEFIP", - "BEFJL", - "BEFJM", - "BEFJN", - "BEFJP", - "BEFLM", - "BEFLN", - "BEFLP", - "BEFMN", - "BEFMP", - "BEFNP", - "BEGHI", - "BEGHJ", - "BEGHL", - "BEGHM", - "BEGHN", - "BEGHP", - "BEGIJ", - "BEGIL", - "BEGIM", - "BEGIN", - "BEGIP", - "BEGJL", - "BEGJM", - "BEGJN", - "BEGJP", - "BEGLM", - "BEGLN", - "BEGLP", - "BEGMN", - "BEGMP", - "BEGNP", - "BEHIJ", - "BEHIL", - "BEHIM", - "BEHIN", - "BEHIP", - "BEHJL", - "BEHJM", - "BEHJN", - "BEHJP", - "BEHLM", - "BEHLN", - "BEHLP", - "BEHMN", - "BEHMP", - "BEHNP", - "BEIJL", - "BEIJM", - "BEIJN", - "BEIJP", - "BEILM", - "BEILN", - "BEILP", - "BEIMN", - "BEIMP", - "BEINP", - "BEJLM", - "BEJLN", - "BEJLP", - "BEJMN", - "BEJMP", - "BEJNP", - "BELMN", - "BELMP", - "BELNP", - "BEMNP", - "BFGHI", - "BFGHJ", - "BFGHL", - "BFGHM", - "BFGHN", - "BFGHP", - "BFGIJ", - "BFGIL", - "BFGIM", - "BFGIN", - "BFGIP", - "BFGJL", - "BFGJM", - "BFGJN", - "BFGJP", - "BFGLM", - "BFGLN", - "BFGLP", - "BFGMN", - "BFGMP", - "BFGNP", - "BFHIJ", - "BFHIL", - "BFHIM", - "BFHIN", - "BFHIP", - "BFHJL", - "BFHJM", - "BFHJN", - "BFHJP", - "BFHLM", - "BFHLN", - "BFHLP", - "BFHMN", - "BFHMP", - "BFHNP", - "BFIJL", - "BFIJM", - "BFIJN", - "BFIJP", - "BFILM", - "BFILN", - "BFILP", - "BFIMN", - "BFIMP", - "BFINP", - "BFJLM", - "BFJLN", - "BFJLP", - "BFJMN", - "BFJMP", - "BFJNP", - "BFLMN", - "BFLMP", - "BFLNP", - "BFMNP", - "BGHIJ", - "BGHIL", - "BGHIM", - "BGHIN", - "BGHIP", - "BGHJL", - "BGHJM", - "BGHJN", - "BGHJP", - "BGHLM", - "BGHLN", - "BGHLP", - "BGHMN", - "BGHMP", - "BGHNP", - "BGIJL", - "BGIJM", - "BGIJN", - "BGIJP", - "BGILM", - "BGILN", - "BGILP", - "BGIMN", - "BGIMP", - "BGINP", - "BGJLM", - "BGJLN", - "BGJLP", - "BGJMN", - "BGJMP", - "BGJNP", - "BGLMN", - "BGLMP", - "BGLNP", - "BGMNP", - "BHIJL", - "BHIJM", - "BHIJN", - "BHIJP", - "BHILM", - "BHILN", - "BHILP", - "BHIMN", - "BHIMP", - "BHINP", - "BHJLM", - "BHJLN", - "BHJLP", - "BHJMN", - "BHJMP", - "BHJNP", - "BHLMN", - "BHLMP", - "BHLNP", - "BHMNP", - "BIJLM", - "BIJLN", - "BIJLP", - "BIJMN", - "BIJMP", - "BIJNP", - "BILMN", - "BILMP", - "BILNP", - "BIMNP", - "BJLMN", - "BJLMP", - "BJLNP", - "BJMNP", - "BLMNP", - "CEFGH", - "CEFGI", - "CEFGJ", - "CEFGL", - "CEFGM", - "CEFGN", - "CEFGP", - "CEFHI", - "CEFHJ", - "CEFHL", - "CEFHM", - "CEFHN", - "CEFHP", - "CEFIJ", - "CEFIL", - "CEFIM", - "CEFIN", - "CEFIP", - "CEFJL", - "CEFJM", - "CEFJN", - "CEFJP", - "CEFLM", - "CEFLN", - "CEFLP", - "CEFMN", - "CEFMP", - "CEFNP", - "CEGHI", - "CEGHJ", - "CEGHL", - "CEGHM", - "CEGHN", - "CEGHP", - "CEGIJ", - "CEGIL", - "CEGIM", - "CEGIN", - "CEGIP", - "CEGJL", - "CEGJM", - "CEGJN", - "CEGJP", - "CEGLM", - "CEGLN", - "CEGLP", - "CEGMN", - "CEGMP", - "CEGNP", - "CEHIJ", - "CEHIL", - "CEHIM", - "CEHIN", - "CEHIP", - "CEHJL", - "CEHJM", - "CEHJN", - "CEHJP", - "CEHLM", - "CEHLN", - "CEHLP", - "CEHMN", - "CEHMP", - "CEHNP", - "CEIJL", - "CEIJM", - "CEIJN", - "CEIJP", - "CEILM", - "CEILN", - "CEILP", - "CEIMN", - "CEIMP", - "CEINP", - "CEJLM", - "CEJLN", - "CEJLP", - "CEJMN", - "CEJMP", - "CEJNP", - "CELMN", - "CELMP", - "CELNP", - "CEMNP", - "CFGHI", - "CFGHJ", - "CFGHL", - "CFGHM", - "CFGHN", - "CFGHP", - "CFGIJ", - "CFGIL", - "CFGIM", - "CFGIN", - "CFGIP", - "CFGJL", - "CFGJM", - "CFGJN", - "CFGJP", - "CFGLM", - "CFGLN", - "CFGLP", - "CFGMN", - "CFGMP", - "CFGNP", - "CFHIJ", - "CFHIL", - "CFHIM", - "CFHIN", - "CFHIP", - "CFHJL", - "CFHJM", - "CFHJN", - "CFHJP", - "CFHLM", - "CFHLN", - "CFHLP", - "CFHMN", - "CFHMP", - "CFHNP", - "CFIJL", - "CFIJM", - "CFIJN", - "CFIJP", - "CFILM", - "CFILN", - "CFILP", - "CFIMN", - "CFIMP", - "CFINP", - "CFJLM", - "CFJLN", - "CFJLP", - "CFJMN", - "CFJMP", - "CFJNP", - "CFLMN", - "CFLMP", - "CFLNP", - "CFMNP", - "CGHIJ", - "CGHIL", - "CGHIM", - "CGHIN", - "CGHIP", - "CGHJL", - "CGHJM", - "CGHJN", - "CGHJP", - "CGHLM", - "CGHLN", - "CGHLP", - "CGHMN", - "CGHMP", - "CGHNP", - "CGIJL", - "CGIJM", - "CGIJN", - "CGIJP", - "CGILM", - "CGILN", - "CGILP", - "CGIMN", - "CGIMP", - "CGINP", - "CGJLM", - "CGJLN", - "CGJLP", - "CGJMN", - "CGJMP", - "CGJNP", - "CGLMN", - "CGLMP", - "CGLNP", - "CGMNP", - "CHIJL", - "CHIJM", - "CHIJN", - "CHIJP", - "CHILM", - "CHILN", - "CHILP", - "CHIMN", - "CHIMP", - "CHINP", - "CHJLM", - "CHJLN", - "CHJLP", - "CHJMN", - "CHJMP", - "CHJNP", - "CHLMN", - "CHLMP", - "CHLNP", - "CHMNP", - "CIJLM", - "CIJLN", - "CIJLP", - "CIJMN", - "CIJMP", - "CIJNP", - "CILMN", - "CILMP", - "CILNP", - "CIMNP", - "CJLMN", - "CJLMP", - "CJLNP", - "CJMNP", - "CLMNP", - "EFGHI", - "EFGHJ", - "EFGHL", - "EFGHM", - "EFGHN", - "EFGHP", - "EFGIJ", - "EFGIL", - "EFGIM", - "EFGIN", - "EFGIP", - "EFGJL", - "EFGJM", - "EFGJN", - "EFGJP", - "EFGLM", - "EFGLN", - "EFGLP", - "EFGMN", - "EFGMP", - "EFGNP", - "EFHIJ", - "EFHIL", - "EFHIM", - "EFHIN", - "EFHIP", - "EFHJL", - "EFHJM", - "EFHJN", - "EFHJP", - "EFHLM", - "EFHLN", - "EFHLP", - "EFHMN", - "EFHMP", - "EFHNP", - "EFIJL", - "EFIJM", - "EFIJN", - "EFIJP", - "EFILM", - "EFILN", - "EFILP", - "EFIMN", - "EFIMP", - "EFINP", - "EFJLM", - "EFJLN", - "EFJLP", - "EFJMN", - "EFJMP", - "EFJNP", - "EFLMN", - "EFLMP", - "EFLNP", - "EFMNP", - "EGHIJ", - "EGHIL", - "EGHIM", - "EGHIN", - "EGHIP", - "EGHJL", - "EGHJM", - "EGHJN", - "EGHJP", - "EGHLM", - "EGHLN", - "EGHLP", - "EGHMN", - "EGHMP", - "EGHNP", - "EGIJL", - "EGIJM", - "EGIJN", - "EGIJP", - "EGILM", - "EGILN", - "EGILP", - "EGIMN", - "EGIMP", - "EGINP", - "EGJLM", - "EGJLN", - "EGJLP", - "EGJMN", - "EGJMP", - "EGJNP", - "EGLMN", - "EGLMP", - "EGLNP", - "EGMNP", - "EHIJL", - "EHIJM", - "EHIJN", - "EHIJP", - "EHILM", - "EHILN", - "EHILP", - "EHIMN", - "EHIMP", - "EHINP", - "EHJLM", - "EHJLN", - "EHJLP", - "EHJMN", - "EHJMP", - "EHJNP", - "EHLMN", - "EHLMP", - "EHLNP", - "EHMNP", - "EIJLM", - "EIJLN", - "EIJLP", - "EIJMN", - "EIJMP", - "EIJNP", - "EILMN", - "EILMP", - "EILNP", - "EIMNP", - "EJLMN", - "EJLMP", - "EJLNP", - "EJMNP", - "ELMNP", - "FGHIJ", - "FGHIL", - "FGHIM", - "FGHIN", - "FGHIP", - "FGHJL", - "FGHJM", - "FGHJN", - "FGHJP", - "FGHLM", - "FGHLN", - "FGHLP", - "FGHMN", - "FGHMP", - "FGHNP", - "FGIJL", - "FGIJM", - "FGIJN", - "FGIJP", - "FGILM", - "FGILN", - "FGILP", - "FGIMN", - "FGIMP", - "FGINP", - "FGJLM", - "FGJLN", - "FGJLP", - "FGJMN", - "FGJMP", - "FGJNP", - "FGLMN", - "FGLMP", - "FGLNP", - "FGMNP", - "FHIJL", - "FHIJM", - "FHIJN", - "FHIJP", - "FHILM", - "FHILN", - "FHILP", - "FHIMN", - "FHIMP", - "FHINP", - "FHJLM", - "FHJLN", - "FHJLP", - "FHJMN", - "FHJMP", - "FHJNP", - "FHLMN", - "FHLMP", - "FHLNP", - "FHMNP", - "FIJLM", - "FIJLN", - "FIJLP", - "FIJMN", - "FIJMP", - "FIJNP", - "FILMN", - "FILMP", - "FILNP", - "FIMNP", - "FJLMN", - "FJLMP", - "FJLNP", - "FJMNP", - "FLMNP", - "GHIJL", - "GHIJM", - "GHIJN", - "GHIJP", - "GHILM", - "GHILN", - "GHILP", - "GHIMN", - "GHIMP", - "GHINP", - "GHJLM", - "GHJLN", - "GHJLP", - "GHJMN", - "GHJMP", - "GHJNP", - "GHLMN", - "GHLMP", - "GHLNP", - "GHMNP", - "GIJLM", - "GIJLN", - "GIJLP", - "GIJMN", - "GIJMP", - "GIJNP", - "GILMN", - "GILMP", - "GILNP", - "GIMNP", - "GJLMN", - "GJLMP", - "GJLNP", - "GJMNP", - "GLMNP", - "HIJLM", - "HIJLN", - "HIJLP", - "HIJMN", - "HIJMP", - "HIJNP", - "HILMN", - "HILMP", - "HILNP", - "HIMNP", - "HJLMN", - "HJLMP", - "HJLNP", - "HJMNP", - "HLMNP", - "IJLMN", - "IJLMP", - "IJLNP", - "IJMNP", - "ILMNP", - "JLMNP", - "ABCEFG", - "ABCEFH", - "ABCEFI", - "ABCEFJ", - "ABCEFL", - "ABCEFM", - "ABCEFN", - "ABCEFP", - "ABCEGH", - "ABCEGI", - "ABCEGJ", - "ABCEGL", - "ABCEGM", - "ABCEGN", - "ABCEGP", - "ABCEHI", - "ABCEHJ", - "ABCEHL", - "ABCEHM", - "ABCEHN", - "ABCEHP", - "ABCEIJ", - "ABCEIL", - "ABCEIM", - "ABCEIN", - "ABCEIP", - "ABCEJL", - "ABCEJM", - "ABCEJN", - "ABCEJP", - "ABCELM", - "ABCELN", - "ABCELP", - "ABCEMN", - "ABCEMP", - "ABCENP", - "ABCFGH", - "ABCFGI", - "ABCFGJ", - "ABCFGL", - "ABCFGM", - "ABCFGN", - "ABCFGP", - "ABCFHI", - "ABCFHJ", - "ABCFHL", - "ABCFHM", - "ABCFHN", - "ABCFHP", - "ABCFIJ", - "ABCFIL", - "ABCFIM", - "ABCFIN", - "ABCFIP", - "ABCFJL", - "ABCFJM", - "ABCFJN", - "ABCFJP", - "ABCFLM", - "ABCFLN", - "ABCFLP", - "ABCFMN", - "ABCFMP", - "ABCFNP", - "ABCGHI", - "ABCGHJ", - "ABCGHL", - "ABCGHM", - "ABCGHN", - "ABCGHP", - "ABCGIJ", - "ABCGIL", - "ABCGIM", - "ABCGIN", - "ABCGIP", - "ABCGJL", - "ABCGJM", - "ABCGJN", - "ABCGJP", - "ABCGLM", - "ABCGLN", - "ABCGLP", - "ABCGMN", - "ABCGMP", - "ABCGNP", - "ABCHIJ", - "ABCHIL", - "ABCHIM", - "ABCHIN", - "ABCHIP", - "ABCHJL", - "ABCHJM", - "ABCHJN", - "ABCHJP", - "ABCHLM", - "ABCHLN", - "ABCHLP", - "ABCHMN", - "ABCHMP", - "ABCHNP", - "ABCIJL", - "ABCIJM", - "ABCIJN", - "ABCIJP", - "ABCILM", - "ABCILN", - "ABCILP", - "ABCIMN", - "ABCIMP", - "ABCINP", - "ABCJLM", - "ABCJLN", - "ABCJLP", - "ABCJMN", - "ABCJMP", - "ABCJNP", - "ABCLMN", - "ABCLMP", - "ABCLNP", - "ABCMNP", - "ABEFGH", - "ABEFGI", - "ABEFGJ", - "ABEFGL", - "ABEFGM", - "ABEFGN", - "ABEFGP", - "ABEFHI", - "ABEFHJ", - "ABEFHL", - "ABEFHM", - "ABEFHN", - "ABEFHP", - "ABEFIJ", - "ABEFIL", - "ABEFIM", - "ABEFIN", - "ABEFIP", - "ABEFJL", - "ABEFJM", - "ABEFJN", - "ABEFJP", - "ABEFLM", - "ABEFLN", - "ABEFLP", - "ABEFMN", - "ABEFMP", - "ABEFNP", - "ABEGHI", - "ABEGHJ", - "ABEGHL", - "ABEGHM", - "ABEGHN", - "ABEGHP", - "ABEGIJ", - "ABEGIL", - "ABEGIM", - "ABEGIN", - "ABEGIP", - "ABEGJL", - "ABEGJM", - "ABEGJN", - "ABEGJP", - "ABEGLM", - "ABEGLN", - "ABEGLP", - "ABEGMN", - "ABEGMP", - "ABEGNP", - "ABEHIJ", - "ABEHIL", - "ABEHIM", - "ABEHIN", - "ABEHIP", - "ABEHJL", - "ABEHJM", - "ABEHJN", - "ABEHJP", - "ABEHLM", - "ABEHLN", - "ABEHLP", - "ABEHMN", - "ABEHMP", - "ABEHNP", - "ABEIJL", - "ABEIJM", - "ABEIJN", - "ABEIJP", - "ABEILM", - "ABEILN", - "ABEILP", - "ABEIMN", - "ABEIMP", - "ABEINP", - "ABEJLM", - "ABEJLN", - "ABEJLP", - "ABEJMN", - "ABEJMP", - "ABEJNP", - "ABELMN", - "ABELMP", - "ABELNP", - "ABEMNP", - "ABFGHI", - "ABFGHJ", - "ABFGHL", - "ABFGHM", - "ABFGHN", - "ABFGHP", - "ABFGIJ", - "ABFGIL", - "ABFGIM", - "ABFGIN", - "ABFGIP", - "ABFGJL", - "ABFGJM", - "ABFGJN", - "ABFGJP", - "ABFGLM", - "ABFGLN", - "ABFGLP", - "ABFGMN", - "ABFGMP", - "ABFGNP", - "ABFHIJ", - "ABFHIL", - "ABFHIM", - "ABFHIN", - "ABFHIP", - "ABFHJL", - "ABFHJM", - "ABFHJN", - "ABFHJP", - "ABFHLM", - "ABFHLN", - "ABFHLP", - "ABFHMN", - "ABFHMP", - "ABFHNP", - "ABFIJL", - "ABFIJM", - "ABFIJN", - "ABFIJP", - "ABFILM", - "ABFILN", - "ABFILP", - "ABFIMN", - "ABFIMP", - "ABFINP", - "ABFJLM", - "ABFJLN", - "ABFJLP", - "ABFJMN", - "ABFJMP", - "ABFJNP", - "ABFLMN", - "ABFLMP", - "ABFLNP", - "ABFMNP", - "ABGHIJ", - "ABGHIL", - "ABGHIM", - "ABGHIN", - "ABGHIP", - "ABGHJL", - "ABGHJM", - "ABGHJN", - "ABGHJP", - "ABGHLM", - "ABGHLN", - "ABGHLP", - "ABGHMN", - "ABGHMP", - "ABGHNP", - "ABGIJL", - "ABGIJM", - "ABGIJN", - "ABGIJP", - "ABGILM", - "ABGILN", - "ABGILP", - "ABGIMN", - "ABGIMP", - "ABGINP", - "ABGJLM", - "ABGJLN", - "ABGJLP", - "ABGJMN", - "ABGJMP", - "ABGJNP", - "ABGLMN", - "ABGLMP", - "ABGLNP", - "ABGMNP", - "ABHIJL", - "ABHIJM", - "ABHIJN", - "ABHIJP", - "ABHILM", - "ABHILN", - "ABHILP", - "ABHIMN", - "ABHIMP", - "ABHINP", - "ABHJLM", - "ABHJLN", - "ABHJLP", - "ABHJMN", - "ABHJMP", - "ABHJNP", - "ABHLMN", - "ABHLMP", - "ABHLNP", - "ABHMNP", - "ABIJLM", - "ABIJLN", - "ABIJLP", - "ABIJMN", - "ABIJMP", - "ABIJNP", - "ABILMN", - "ABILMP", - "ABILNP", - "ABIMNP", - "ABJLMN", - "ABJLMP", - "ABJLNP", - "ABJMNP", - "ABLMNP", - "ACEFGH", - "ACEFGI", - "ACEFGJ", - "ACEFGL", - "ACEFGM", - "ACEFGN", - "ACEFGP", - "ACEFHI", - "ACEFHJ", - "ACEFHL", - "ACEFHM", - "ACEFHN", - "ACEFHP", - "ACEFIJ", - "ACEFIL", - "ACEFIM", - "ACEFIN", - "ACEFIP", - "ACEFJL", - "ACEFJM", - "ACEFJN", - "ACEFJP", - "ACEFLM", - "ACEFLN", - "ACEFLP", - "ACEFMN", - "ACEFMP", - "ACEFNP", - "ACEGHI", - "ACEGHJ", - "ACEGHL", - "ACEGHM", - "ACEGHN", - "ACEGHP", - "ACEGIJ", - "ACEGIL", - "ACEGIM", - "ACEGIN", - "ACEGIP", - "ACEGJL", - "ACEGJM", - "ACEGJN", - "ACEGJP", - "ACEGLM", - "ACEGLN", - "ACEGLP", - "ACEGMN", - "ACEGMP", - "ACEGNP", - "ACEHIJ", - "ACEHIL", - "ACEHIM", - "ACEHIN", - "ACEHIP", - "ACEHJL", - "ACEHJM", - "ACEHJN", - "ACEHJP", - "ACEHLM", - "ACEHLN", - "ACEHLP", - "ACEHMN", - "ACEHMP", - "ACEHNP", - "ACEIJL", - "ACEIJM", - "ACEIJN", - "ACEIJP", - "ACEILM", - "ACEILN", - "ACEILP", - "ACEIMN", - "ACEIMP", - "ACEINP", - "ACEJLM", - "ACEJLN", - "ACEJLP", - "ACEJMN", - "ACEJMP", - "ACEJNP", - "ACELMN", - "ACELMP", - "ACELNP", - "ACEMNP", - "ACFGHI", - "ACFGHJ", - "ACFGHL", - "ACFGHM", - "ACFGHN", - "ACFGHP", - "ACFGIJ", - "ACFGIL", - "ACFGIM", - "ACFGIN", - "ACFGIP", - "ACFGJL", - "ACFGJM", - "ACFGJN", - "ACFGJP", - "ACFGLM", - "ACFGLN", - "ACFGLP", - "ACFGMN", - "ACFGMP", - "ACFGNP", - "ACFHIJ", - "ACFHIL", - "ACFHIM", - "ACFHIN", - "ACFHIP", - "ACFHJL", - "ACFHJM", - "ACFHJN", - "ACFHJP", - "ACFHLM", - "ACFHLN", - "ACFHLP", - "ACFHMN", - "ACFHMP", - "ACFHNP", - "ACFIJL", - "ACFIJM", - "ACFIJN", - "ACFIJP", - "ACFILM", - "ACFILN", - "ACFILP", - "ACFIMN", - "ACFIMP", - "ACFINP", - "ACFJLM", - "ACFJLN", - "ACFJLP", - "ACFJMN", - "ACFJMP", - "ACFJNP", - "ACFLMN", - "ACFLMP", - "ACFLNP", - "ACFMNP", - "ACGHIJ", - "ACGHIL", - "ACGHIM", - "ACGHIN", - "ACGHIP", - "ACGHJL", - "ACGHJM", - "ACGHJN", - "ACGHJP", - "ACGHLM", - "ACGHLN", - "ACGHLP", - "ACGHMN", - "ACGHMP", - "ACGHNP", - "ACGIJL", - "ACGIJM", - "ACGIJN", - "ACGIJP", - "ACGILM", - "ACGILN", - "ACGILP", - "ACGIMN", - "ACGIMP", - "ACGINP", - "ACGJLM", - "ACGJLN", - "ACGJLP", - "ACGJMN", - "ACGJMP", - "ACGJNP", - "ACGLMN", - "ACGLMP", - "ACGLNP", - "ACGMNP", - "ACHIJL", - "ACHIJM", - "ACHIJN", - "ACHIJP", - "ACHILM", - "ACHILN", - "ACHILP", - "ACHIMN", - "ACHIMP", - "ACHINP", - "ACHJLM", - "ACHJLN", - "ACHJLP", - "ACHJMN", - "ACHJMP", - "ACHJNP", - "ACHLMN", - "ACHLMP", - "ACHLNP", - "ACHMNP", - "ACIJLM", - "ACIJLN", - "ACIJLP", - "ACIJMN", - "ACIJMP", - "ACIJNP", - "ACILMN", - "ACILMP", - "ACILNP", - "ACIMNP", - "ACJLMN", - "ACJLMP", - "ACJLNP", - "ACJMNP", - "ACLMNP", - "AEFGHI", - "AEFGHJ", - "AEFGHL", - "AEFGHM", - "AEFGHN", - "AEFGHP", - "AEFGIJ", - "AEFGIL", - "AEFGIM", - "AEFGIN", - "AEFGIP", - "AEFGJL", - "AEFGJM", - "AEFGJN", - "AEFGJP", - "AEFGLM", - "AEFGLN", - "AEFGLP", - "AEFGMN", - "AEFGMP", - "AEFGNP", - "AEFHIJ", - "AEFHIL", - "AEFHIM", - "AEFHIN", - "AEFHIP", - "AEFHJL", - "AEFHJM", - "AEFHJN", - "AEFHJP", - "AEFHLM", - "AEFHLN", - "AEFHLP", - "AEFHMN", - "AEFHMP", - "AEFHNP", - "AEFIJL", - "AEFIJM", - "AEFIJN", - "AEFIJP", - "AEFILM", - "AEFILN", - "AEFILP", - "AEFIMN", - "AEFIMP", - "AEFINP", - "AEFJLM", - "AEFJLN", - "AEFJLP", - "AEFJMN", - "AEFJMP", - "AEFJNP", - "AEFLMN", - "AEFLMP", - "AEFLNP", - "AEFMNP", - "AEGHIJ", - "AEGHIL", - "AEGHIM", - "AEGHIN", - "AEGHIP", - "AEGHJL", - "AEGHJM", - "AEGHJN", - "AEGHJP", - "AEGHLM", - "AEGHLN", - "AEGHLP", - "AEGHMN", - "AEGHMP", - "AEGHNP", - "AEGIJL", - "AEGIJM", - "AEGIJN", - "AEGIJP", - "AEGILM", - "AEGILN", - "AEGILP", - "AEGIMN", - "AEGIMP", - "AEGINP", - "AEGJLM", - "AEGJLN", - "AEGJLP", - "AEGJMN", - "AEGJMP", - "AEGJNP", - "AEGLMN", - "AEGLMP", - "AEGLNP", - "AEGMNP", - "AEHIJL", - "AEHIJM", - "AEHIJN", - "AEHIJP", - "AEHILM", - "AEHILN", - "AEHILP", - "AEHIMN", - "AEHIMP", - "AEHINP", - "AEHJLM", - "AEHJLN", - "AEHJLP", - "AEHJMN", - "AEHJMP", - "AEHJNP", - "AEHLMN", - "AEHLMP", - "AEHLNP", - "AEHMNP", - "AEIJLM", - "AEIJLN", - "AEIJLP", - "AEIJMN", - "AEIJMP", - "AEIJNP", - "AEILMN", - "AEILMP", - "AEILNP", - "AEIMNP", - "AEJLMN", - "AEJLMP", - "AEJLNP", - "AEJMNP", - "AELMNP", - "AFGHIJ", - "AFGHIL", - "AFGHIM", - "AFGHIN", - "AFGHIP", - "AFGHJL", - "AFGHJM", - "AFGHJN", - "AFGHJP", - "AFGHLM", - "AFGHLN", - "AFGHLP", - "AFGHMN", - "AFGHMP", - "AFGHNP", - "AFGIJL", - "AFGIJM", - "AFGIJN", - "AFGIJP", - "AFGILM", - "AFGILN", - "AFGILP", - "AFGIMN", - "AFGIMP", - "AFGINP", - "AFGJLM", - "AFGJLN", - "AFGJLP", - "AFGJMN", - "AFGJMP", - "AFGJNP", - "AFGLMN", - "AFGLMP", - "AFGLNP", - "AFGMNP", - "AFHIJL", - "AFHIJM", - "AFHIJN", - "AFHIJP", - "AFHILM", - "AFHILN", - "AFHILP", - "AFHIMN", - "AFHIMP", - "AFHINP", - "AFHJLM", - "AFHJLN", - "AFHJLP", - "AFHJMN", - "AFHJMP", - "AFHJNP", - "AFHLMN", - "AFHLMP", - "AFHLNP", - "AFHMNP", - "AFIJLM", - "AFIJLN", - "AFIJLP", - "AFIJMN", - "AFIJMP", - "AFIJNP", - "AFILMN", - "AFILMP", - "AFILNP", - "AFIMNP", - "AFJLMN", - "AFJLMP", - "AFJLNP", - "AFJMNP", - "AFLMNP", - "AGHIJL", - "AGHIJM", - "AGHIJN", - "AGHIJP", - "AGHILM", - "AGHILN", - "AGHILP", - "AGHIMN", - "AGHIMP", - "AGHINP", - "AGHJLM", - "AGHJLN", - "AGHJLP", - "AGHJMN", - "AGHJMP", - "AGHJNP", - "AGHLMN", - "AGHLMP", - "AGHLNP", - "AGHMNP", - "AGIJLM", - "AGIJLN", - "AGIJLP", - "AGIJMN", - "AGIJMP", - "AGIJNP", - "AGILMN", - "AGILMP", - "AGILNP", - "AGIMNP", - "AGJLMN", - "AGJLMP", - "AGJLNP", - "AGJMNP", - "AGLMNP", - "AHIJLM", - "AHIJLN", - "AHIJLP", - "AHIJMN", - "AHIJMP", - "AHIJNP", - "AHILMN", - "AHILMP", - "AHILNP", - "AHIMNP", - "AHJLMN", - "AHJLMP", - "AHJLNP", - "AHJMNP", - "AHLMNP", - "AIJLMN", - "AIJLMP", - "AIJLNP", - "AIJMNP", - "AILMNP", - "AJLMNP", - "BCEFGH", - "BCEFGI", - "BCEFGJ", - "BCEFGL", - "BCEFGM", - "BCEFGN", - "BCEFGP", - "BCEFHI", - "BCEFHJ", - "BCEFHL", - "BCEFHM", - "BCEFHN", - "BCEFHP", - "BCEFIJ", - "BCEFIL", - "BCEFIM", - "BCEFIN", - "BCEFIP", - "BCEFJL", - "BCEFJM", - "BCEFJN", - "BCEFJP", - "BCEFLM", - "BCEFLN", - "BCEFLP", - "BCEFMN", - "BCEFMP", - "BCEFNP", - "BCEGHI", - "BCEGHJ", - "BCEGHL", - "BCEGHM", - "BCEGHN", - "BCEGHP", - "BCEGIJ", - "BCEGIL", - "BCEGIM", - "BCEGIN", - "BCEGIP", - "BCEGJL", - "BCEGJM", - "BCEGJN", - "BCEGJP", - "BCEGLM", - "BCEGLN", - "BCEGLP", - "BCEGMN", - "BCEGMP", - "BCEGNP", - "BCEHIJ", - "BCEHIL", - "BCEHIM", - "BCEHIN", - "BCEHIP", - "BCEHJL", - "BCEHJM", - "BCEHJN", - "BCEHJP", - "BCEHLM", - "BCEHLN", - "BCEHLP", - "BCEHMN", - "BCEHMP", - "BCEHNP", - "BCEIJL", - "BCEIJM", - "BCEIJN", - "BCEIJP", - "BCEILM", - "BCEILN", - "BCEILP", - "BCEIMN", - "BCEIMP", - "BCEINP", - "BCEJLM", - "BCEJLN", - "BCEJLP", - "BCEJMN", - "BCEJMP", - "BCEJNP", - "BCELMN", - "BCELMP", - "BCELNP", - "BCEMNP", - "BCFGHI", - "BCFGHJ", - "BCFGHL", - "BCFGHM", - "BCFGHN", - "BCFGHP", - "BCFGIJ", - "BCFGIL", - "BCFGIM", - "BCFGIN", - "BCFGIP", - "BCFGJL", - "BCFGJM", - "BCFGJN", - "BCFGJP", - "BCFGLM", - "BCFGLN", - "BCFGLP", - "BCFGMN", - "BCFGMP", - "BCFGNP", - "BCFHIJ", - "BCFHIL", - "BCFHIM", - "BCFHIN", - "BCFHIP", - "BCFHJL", - "BCFHJM", - "BCFHJN", - "BCFHJP", - "BCFHLM", - "BCFHLN", - "BCFHLP", - "BCFHMN", - "BCFHMP", - "BCFHNP", - "BCFIJL", - "BCFIJM", - "BCFIJN", - "BCFIJP", - "BCFILM", - "BCFILN", - "BCFILP", - "BCFIMN", - "BCFIMP", - "BCFINP", - "BCFJLM", - "BCFJLN", - "BCFJLP", - "BCFJMN", - "BCFJMP", - "BCFJNP", - "BCFLMN", - "BCFLMP", - "BCFLNP", - "BCFMNP", - "BCGHIJ", - "BCGHIL", - "BCGHIM", - "BCGHIN", - "BCGHIP", - "BCGHJL", - "BCGHJM", - "BCGHJN", - "BCGHJP", - "BCGHLM", - "BCGHLN", - "BCGHLP", - "BCGHMN", - "BCGHMP", - "BCGHNP", - "BCGIJL", - "BCGIJM", - "BCGIJN", - "BCGIJP", - "BCGILM", - "BCGILN", - "BCGILP", - "BCGIMN", - "BCGIMP", - "BCGINP", - "BCGJLM", - "BCGJLN", - "BCGJLP", - "BCGJMN", - "BCGJMP", - "BCGJNP", - "BCGLMN", - "BCGLMP", - "BCGLNP", - "BCGMNP", - "BCHIJL", - "BCHIJM", - "BCHIJN", - "BCHIJP", - "BCHILM", - "BCHILN", - "BCHILP", - "BCHIMN", - "BCHIMP", - "BCHINP", - "BCHJLM", - "BCHJLN", - "BCHJLP", - "BCHJMN", - "BCHJMP", - "BCHJNP", - "BCHLMN", - "BCHLMP", - "BCHLNP", - "BCHMNP", - "BCIJLM", - "BCIJLN", - "BCIJLP", - "BCIJMN", - "BCIJMP", - "BCIJNP", - "BCILMN", - "BCILMP", - "BCILNP", - "BCIMNP", - "BCJLMN", - "BCJLMP", - "BCJLNP", - "BCJMNP", - "BCLMNP", - "BEFGHI", - "BEFGHJ", - "BEFGHL", - "BEFGHM", - "BEFGHN", - "BEFGHP", - "BEFGIJ", - "BEFGIL", - "BEFGIM", - "BEFGIN", - "BEFGIP", - "BEFGJL", - "BEFGJM", - "BEFGJN", - "BEFGJP", - "BEFGLM", - "BEFGLN", - "BEFGLP", - "BEFGMN", - "BEFGMP", - "BEFGNP", - "BEFHIJ", - "BEFHIL", - "BEFHIM", - "BEFHIN", - "BEFHIP", - "BEFHJL", - "BEFHJM", - "BEFHJN", - "BEFHJP", - "BEFHLM", - "BEFHLN", - "BEFHLP", - "BEFHMN", - "BEFHMP", - "BEFHNP", - "BEFIJL", - "BEFIJM", - "BEFIJN", - "BEFIJP", - "BEFILM", - "BEFILN", - "BEFILP", - "BEFIMN", - "BEFIMP", - "BEFINP", - "BEFJLM", - "BEFJLN", - "BEFJLP", - "BEFJMN", - "BEFJMP", - "BEFJNP", - "BEFLMN", - "BEFLMP", - "BEFLNP", - "BEFMNP", - "BEGHIJ", - "BEGHIL", - "BEGHIM", - "BEGHIN", - "BEGHIP", - "BEGHJL", - "BEGHJM", - "BEGHJN", - "BEGHJP", - "BEGHLM", - "BEGHLN", - "BEGHLP", - "BEGHMN", - "BEGHMP", - "BEGHNP", - "BEGIJL", - "BEGIJM", - "BEGIJN", - "BEGIJP", - "BEGILM", - "BEGILN", - "BEGILP", - "BEGIMN", - "BEGIMP", - "BEGINP", - "BEGJLM", - "BEGJLN", - "BEGJLP", - "BEGJMN", - "BEGJMP", - "BEGJNP", - "BEGLMN", - "BEGLMP", - "BEGLNP", - "BEGMNP", - "BEHIJL", - "BEHIJM", - "BEHIJN", - "BEHIJP", - "BEHILM", - "BEHILN", - "BEHILP", - "BEHIMN", - "BEHIMP", - "BEHINP", - "BEHJLM", - "BEHJLN", - "BEHJLP", - "BEHJMN", - "BEHJMP", - "BEHJNP", - "BEHLMN", - "BEHLMP", - "BEHLNP", - "BEHMNP", - "BEIJLM", - "BEIJLN", - "BEIJLP", - "BEIJMN", - "BEIJMP", - "BEIJNP", - "BEILMN", - "BEILMP", - "BEILNP", - "BEIMNP", - "BEJLMN", - "BEJLMP", - "BEJLNP", - "BEJMNP", - "BELMNP", - "BFGHIJ", - "BFGHIL", - "BFGHIM", - "BFGHIN", - "BFGHIP", - "BFGHJL", - "BFGHJM", - "BFGHJN", - "BFGHJP", - "BFGHLM", - "BFGHLN", - "BFGHLP", - "BFGHMN", - "BFGHMP", - "BFGHNP", - "BFGIJL", - "BFGIJM", - "BFGIJN", - "BFGIJP", - "BFGILM", - "BFGILN", - "BFGILP", - "BFGIMN", - "BFGIMP", - "BFGINP", - "BFGJLM", - "BFGJLN", - "BFGJLP", - "BFGJMN", - "BFGJMP", - "BFGJNP", - "BFGLMN", - "BFGLMP", - "BFGLNP", - "BFGMNP", - "BFHIJL", - "BFHIJM", - "BFHIJN", - "BFHIJP", - "BFHILM", - "BFHILN", - "BFHILP", - "BFHIMN", - "BFHIMP", - "BFHINP", - "BFHJLM", - "BFHJLN", - "BFHJLP", - "BFHJMN", - "BFHJMP", - "BFHJNP", - "BFHLMN", - "BFHLMP", - "BFHLNP", - "BFHMNP", - "BFIJLM", - "BFIJLN", - "BFIJLP", - "BFIJMN", - "BFIJMP", - "BFIJNP", - "BFILMN", - "BFILMP", - "BFILNP", - "BFIMNP", - "BFJLMN", - "BFJLMP", - "BFJLNP", - "BFJMNP", - "BFLMNP", - "BGHIJL", - "BGHIJM", - "BGHIJN", - "BGHIJP", - "BGHILM", - "BGHILN", - "BGHILP", - "BGHIMN", - "BGHIMP", - "BGHINP", - "BGHJLM", - "BGHJLN", - "BGHJLP", - "BGHJMN", - "BGHJMP", - "BGHJNP", - "BGHLMN", - "BGHLMP", - "BGHLNP", - "BGHMNP", - "BGIJLM", - "BGIJLN", - "BGIJLP", - "BGIJMN", - "BGIJMP", - "BGIJNP", - "BGILMN", - "BGILMP", - "BGILNP", - "BGIMNP", - "BGJLMN", - "BGJLMP", - "BGJLNP", - "BGJMNP", - "BGLMNP", - "BHIJLM", - "BHIJLN", - "BHIJLP", - "BHIJMN", - "BHIJMP", - "BHIJNP", - "BHILMN", - "BHILMP", - "BHILNP", - "BHIMNP", - "BHJLMN", - "BHJLMP", - "BHJLNP", - "BHJMNP", - "BHLMNP", - "BIJLMN", - "BIJLMP", - "BIJLNP", - "BIJMNP", - "BILMNP", - "BJLMNP", - "CEFGHI", - "CEFGHJ", - "CEFGHL", - "CEFGHM", - "CEFGHN", - "CEFGHP", - "CEFGIJ", - "CEFGIL", - "CEFGIM", - "CEFGIN", - "CEFGIP", - "CEFGJL", - "CEFGJM", - "CEFGJN", - "CEFGJP", - "CEFGLM", - "CEFGLN", - "CEFGLP", - "CEFGMN", - "CEFGMP", - "CEFGNP", - "CEFHIJ", - "CEFHIL", - "CEFHIM", - "CEFHIN", - "CEFHIP", - "CEFHJL", - "CEFHJM", - "CEFHJN", - "CEFHJP", - "CEFHLM", - "CEFHLN", - "CEFHLP", - "CEFHMN", - "CEFHMP", - "CEFHNP", - "CEFIJL", - "CEFIJM", - "CEFIJN", - "CEFIJP", - "CEFILM", - "CEFILN", - "CEFILP", - "CEFIMN", - "CEFIMP", - "CEFINP", - "CEFJLM", - "CEFJLN", - "CEFJLP", - "CEFJMN", - "CEFJMP", - "CEFJNP", - "CEFLMN", - "CEFLMP", - "CEFLNP", - "CEFMNP", - "CEGHIJ", - "CEGHIL", - "CEGHIM", - "CEGHIN", - "CEGHIP", - "CEGHJL", - "CEGHJM", - "CEGHJN", - "CEGHJP", - "CEGHLM", - "CEGHLN", - "CEGHLP", - "CEGHMN", - "CEGHMP", - "CEGHNP", - "CEGIJL", - "CEGIJM", - "CEGIJN", - "CEGIJP", - "CEGILM", - "CEGILN", - "CEGILP", - "CEGIMN", - "CEGIMP", - "CEGINP", - "CEGJLM", - "CEGJLN", - "CEGJLP", - "CEGJMN", - "CEGJMP", - "CEGJNP", - "CEGLMN", - "CEGLMP", - "CEGLNP", - "CEGMNP", - "CEHIJL", - "CEHIJM", - "CEHIJN", - "CEHIJP", - "CEHILM", - "CEHILN", - "CEHILP", - "CEHIMN", - "CEHIMP", - "CEHINP", - "CEHJLM", - "CEHJLN", - "CEHJLP", - "CEHJMN", - "CEHJMP", - "CEHJNP", - "CEHLMN", - "CEHLMP", - "CEHLNP", - "CEHMNP", - "CEIJLM", - "CEIJLN", - "CEIJLP", - "CEIJMN", - "CEIJMP", - "CEIJNP", - "CEILMN", - "CEILMP", - "CEILNP", - "CEIMNP", - "CEJLMN", - "CEJLMP", - "CEJLNP", - "CEJMNP", - "CELMNP", - "CFGHIJ", - "CFGHIL", - "CFGHIM", - "CFGHIN", - "CFGHIP", - "CFGHJL", - "CFGHJM", - "CFGHJN", - "CFGHJP", - "CFGHLM", - "CFGHLN", - "CFGHLP", - "CFGHMN", - "CFGHMP", - "CFGHNP", - "CFGIJL", - "CFGIJM", - "CFGIJN", - "CFGIJP", - "CFGILM", - "CFGILN", - "CFGILP", - "CFGIMN", - "CFGIMP", - "CFGINP", - "CFGJLM", - "CFGJLN", - "CFGJLP", - "CFGJMN", - "CFGJMP", - "CFGJNP", - "CFGLMN", - "CFGLMP", - "CFGLNP", - "CFGMNP", - "CFHIJL", - "CFHIJM", - "CFHIJN", - "CFHIJP", - "CFHILM", - "CFHILN", - "CFHILP", - "CFHIMN", - "CFHIMP", - "CFHINP", - "CFHJLM", - "CFHJLN", - "CFHJLP", - "CFHJMN", - "CFHJMP", - "CFHJNP", - "CFHLMN", - "CFHLMP", - "CFHLNP", - "CFHMNP", - "CFIJLM", - "CFIJLN", - "CFIJLP", - "CFIJMN", - "CFIJMP", - "CFIJNP", - "CFILMN", - "CFILMP", - "CFILNP", - "CFIMNP", - "CFJLMN", - "CFJLMP", - "CFJLNP", - "CFJMNP", - "CFLMNP", - "CGHIJL", - "CGHIJM", - "CGHIJN", - "CGHIJP", - "CGHILM", - "CGHILN", - "CGHILP", - "CGHIMN", - "CGHIMP", - "CGHINP", - "CGHJLM", - "CGHJLN", - "CGHJLP", - "CGHJMN", - "CGHJMP", - "CGHJNP", - "CGHLMN", - "CGHLMP", - "CGHLNP", - "CGHMNP", - "CGIJLM", - "CGIJLN", - "CGIJLP", - "CGIJMN", - "CGIJMP", - "CGIJNP", - "CGILMN", - "CGILMP", - "CGILNP", - "CGIMNP", - "CGJLMN", - "CGJLMP", - "CGJLNP", - "CGJMNP", - "CGLMNP", - "CHIJLM", - "CHIJLN", - "CHIJLP", - "CHIJMN", - "CHIJMP", - "CHIJNP", - "CHILMN", - "CHILMP", - "CHILNP", - "CHIMNP", - "CHJLMN", - "CHJLMP", - "CHJLNP", - "CHJMNP", - "CHLMNP", - "CIJLMN", - "CIJLMP", - "CIJLNP", - "CIJMNP", - "CILMNP", - "CJLMNP", - "EFGHIJ", - "EFGHIL", - "EFGHIM", - "EFGHIN", - "EFGHIP", - "EFGHJL", - "EFGHJM", - "EFGHJN", - "EFGHJP", - "EFGHLM", - "EFGHLN", - "EFGHLP", - "EFGHMN", - "EFGHMP", - "EFGHNP", - "EFGIJL", - "EFGIJM", - "EFGIJN", - "EFGIJP", - "EFGILM", - "EFGILN", - "EFGILP", - "EFGIMN", - "EFGIMP", - "EFGINP", - "EFGJLM", - "EFGJLN", - "EFGJLP", - "EFGJMN", - "EFGJMP", - "EFGJNP", - "EFGLMN", - "EFGLMP", - "EFGLNP", - "EFGMNP", - "EFHIJL", - "EFHIJM", - "EFHIJN", - "EFHIJP", - "EFHILM", - "EFHILN", - "EFHILP", - "EFHIMN", - "EFHIMP", - "EFHINP", - "EFHJLM", - "EFHJLN", - "EFHJLP", - "EFHJMN", - "EFHJMP", - "EFHJNP", - "EFHLMN", - "EFHLMP", - "EFHLNP", - "EFHMNP", - "EFIJLM", - "EFIJLN", - "EFIJLP", - "EFIJMN", - "EFIJMP", - "EFIJNP", - "EFILMN", - "EFILMP", - "EFILNP", - "EFIMNP", - "EFJLMN", - "EFJLMP", - "EFJLNP", - "EFJMNP", - "EFLMNP", - "EGHIJL", - "EGHIJM", - "EGHIJN", - "EGHIJP", - "EGHILM", - "EGHILN", - "EGHILP", - "EGHIMN", - "EGHIMP", - "EGHINP", - "EGHJLM", - "EGHJLN", - "EGHJLP", - "EGHJMN", - "EGHJMP", - "EGHJNP", - "EGHLMN", - "EGHLMP", - "EGHLNP", - "EGHMNP", - "EGIJLM", - "EGIJLN", - "EGIJLP", - "EGIJMN", - "EGIJMP", - "EGIJNP", - "EGILMN", - "EGILMP", - "EGILNP", - "EGIMNP", - "EGJLMN", - "EGJLMP", - "EGJLNP", - "EGJMNP", - "EGLMNP", - "EHIJLM", - "EHIJLN", - "EHIJLP", - "EHIJMN", - "EHIJMP", - "EHIJNP", - "EHILMN", - "EHILMP", - "EHILNP", - "EHIMNP", - "EHJLMN", - "EHJLMP", - "EHJLNP", - "EHJMNP", - "EHLMNP", - "EIJLMN", - "EIJLMP", - "EIJLNP", - "EIJMNP", - "EILMNP", - "EJLMNP", - "FGHIJL", - "FGHIJM", - "FGHIJN", - "FGHIJP", - "FGHILM", - "FGHILN", - "FGHILP", - "FGHIMN", - "FGHIMP", - "FGHINP", - "FGHJLM", - "FGHJLN", - "FGHJLP", - "FGHJMN", - "FGHJMP", - "FGHJNP", - "FGHLMN", - "FGHLMP", - "FGHLNP", - "FGHMNP", - "FGIJLM", - "FGIJLN", - "FGIJLP", - "FGIJMN", - "FGIJMP", - "FGIJNP", - "FGILMN", - "FGILMP", - "FGILNP", - "FGIMNP", - "FGJLMN", - "FGJLMP", - "FGJLNP", - "FGJMNP", - "FGLMNP", - "FHIJLM", - "FHIJLN", - "FHIJLP", - "FHIJMN", - "FHIJMP", - "FHIJNP", - "FHILMN", - "FHILMP", - "FHILNP", - "FHIMNP", - "FHJLMN", - "FHJLMP", - "FHJLNP", - "FHJMNP", - "FHLMNP", - "FIJLMN", - "FIJLMP", - "FIJLNP", - "FIJMNP", - "FILMNP", - "FJLMNP", - "GHIJLM", - "GHIJLN", - "GHIJLP", - "GHIJMN", - "GHIJMP", - "GHIJNP", - "GHILMN", - "GHILMP", - "GHILNP", - "GHIMNP", - "GHJLMN", - "GHJLMP", - "GHJLNP", - "GHJMNP", - "GHLMNP", - "GIJLMN", - "GIJLMP", - "GIJLNP", - "GIJMNP", - "GILMNP", - "GJLMNP", - "HIJLMN", - "HIJLMP", - "HIJLNP", - "HIJMNP", - "HILMNP", - "HJLMNP", - "IJLMNP", - "ABCEFGH", - "ABCEFGI", - "ABCEFGJ", - "ABCEFGL", - "ABCEFGM", - "ABCEFGN", - "ABCEFGP", - "ABCEFHI", - "ABCEFHJ", - "ABCEFHL", - "ABCEFHM", - "ABCEFHN", - "ABCEFHP", - "ABCEFIJ", - "ABCEFIL", - "ABCEFIM", - "ABCEFIN", - "ABCEFIP", - "ABCEFJL", - "ABCEFJM", - "ABCEFJN", - "ABCEFJP", - "ABCEFLM", - "ABCEFLN", - "ABCEFLP", - "ABCEFMN", - "ABCEFMP", - "ABCEFNP", - "ABCEGHI", - "ABCEGHJ", - "ABCEGHL", - "ABCEGHM", - "ABCEGHN", - "ABCEGHP", - "ABCEGIJ", - "ABCEGIL", - "ABCEGIM", - "ABCEGIN", - "ABCEGIP", - "ABCEGJL", - "ABCEGJM", - "ABCEGJN", - "ABCEGJP", - "ABCEGLM", - "ABCEGLN", - "ABCEGLP", - "ABCEGMN", - "ABCEGMP", - "ABCEGNP", - "ABCEHIJ", - "ABCEHIL", - "ABCEHIM", - "ABCEHIN", - "ABCEHIP", - "ABCEHJL", - "ABCEHJM", - "ABCEHJN", - "ABCEHJP", - "ABCEHLM", - "ABCEHLN", - "ABCEHLP", - "ABCEHMN", - "ABCEHMP", - "ABCEHNP", - "ABCEIJL", - "ABCEIJM", - "ABCEIJN", - "ABCEIJP", - "ABCEILM", - "ABCEILN", - "ABCEILP", - "ABCEIMN", - "ABCEIMP", - "ABCEINP", - "ABCEJLM", - "ABCEJLN", - "ABCEJLP", - "ABCEJMN", - "ABCEJMP", - "ABCEJNP", - "ABCELMN", - "ABCELMP", - "ABCELNP", - "ABCEMNP", - "ABCFGHI", - "ABCFGHJ", - "ABCFGHL", - "ABCFGHM", - "ABCFGHN", - "ABCFGHP", - "ABCFGIJ", - "ABCFGIL", - "ABCFGIM", - "ABCFGIN", - "ABCFGIP", - "ABCFGJL", - "ABCFGJM", - "ABCFGJN", - "ABCFGJP", - "ABCFGLM", - "ABCFGLN", - "ABCFGLP", - "ABCFGMN", - "ABCFGMP", - "ABCFGNP", - "ABCFHIJ", - "ABCFHIL", - "ABCFHIM", - "ABCFHIN", - "ABCFHIP", - "ABCFHJL", - "ABCFHJM", - "ABCFHJN", - "ABCFHJP", - "ABCFHLM", - "ABCFHLN", - "ABCFHLP", - "ABCFHMN", - "ABCFHMP", - "ABCFHNP", - "ABCFIJL", - "ABCFIJM", - "ABCFIJN", - "ABCFIJP", - "ABCFILM", - "ABCFILN", - "ABCFILP", - "ABCFIMN", - "ABCFIMP", - "ABCFINP", - "ABCFJLM", - "ABCFJLN", - "ABCFJLP", - "ABCFJMN", - "ABCFJMP", - "ABCFJNP", - "ABCFLMN", - "ABCFLMP", - "ABCFLNP", - "ABCFMNP", - "ABCGHIJ", - "ABCGHIL", - "ABCGHIM", - "ABCGHIN", - "ABCGHIP", - "ABCGHJL", - "ABCGHJM", - "ABCGHJN", - "ABCGHJP", - "ABCGHLM", - "ABCGHLN", - "ABCGHLP", - "ABCGHMN", - "ABCGHMP", - "ABCGHNP", - "ABCGIJL", - "ABCGIJM", - "ABCGIJN", - "ABCGIJP", - "ABCGILM", - "ABCGILN", - "ABCGILP", - "ABCGIMN", - "ABCGIMP", - "ABCGINP", - "ABCGJLM", - "ABCGJLN", - "ABCGJLP", - "ABCGJMN", - "ABCGJMP", - "ABCGJNP", - "ABCGLMN", - "ABCGLMP", - "ABCGLNP", - "ABCGMNP", - "ABCHIJL", - "ABCHIJM", - "ABCHIJN", - "ABCHIJP", - "ABCHILM", - "ABCHILN", - "ABCHILP", - "ABCHIMN", - "ABCHIMP", - "ABCHINP", - "ABCHJLM", - "ABCHJLN", - "ABCHJLP", - "ABCHJMN", - "ABCHJMP", - "ABCHJNP", - "ABCHLMN", - "ABCHLMP", - "ABCHLNP", - "ABCHMNP", - "ABCIJLM", - "ABCIJLN", - "ABCIJLP", - "ABCIJMN", - "ABCIJMP", - "ABCIJNP", - "ABCILMN", - "ABCILMP", - "ABCILNP", - "ABCIMNP", - "ABCJLMN", - "ABCJLMP", - "ABCJLNP", - "ABCJMNP", - "ABCLMNP", - "ABEFGHI", - "ABEFGHJ", - "ABEFGHL", - "ABEFGHM", - "ABEFGHN", - "ABEFGHP", - "ABEFGIJ", - "ABEFGIL", - "ABEFGIM", - "ABEFGIN", - "ABEFGIP", - "ABEFGJL", - "ABEFGJM", - "ABEFGJN", - "ABEFGJP", - "ABEFGLM", - "ABEFGLN", - "ABEFGLP", - "ABEFGMN", - "ABEFGMP", - "ABEFGNP", - "ABEFHIJ", - "ABEFHIL", - "ABEFHIM", - "ABEFHIN", - "ABEFHIP", - "ABEFHJL", - "ABEFHJM", - "ABEFHJN", - "ABEFHJP", - "ABEFHLM", - "ABEFHLN", - "ABEFHLP", - "ABEFHMN", - "ABEFHMP", - "ABEFHNP", - "ABEFIJL", - "ABEFIJM", - "ABEFIJN", - "ABEFIJP", - "ABEFILM", - "ABEFILN", - "ABEFILP", - "ABEFIMN", - "ABEFIMP", - "ABEFINP", - "ABEFJLM", - "ABEFJLN", - "ABEFJLP", - "ABEFJMN", - "ABEFJMP", - "ABEFJNP", - "ABEFLMN", - "ABEFLMP", - "ABEFLNP", - "ABEFMNP", - "ABEGHIJ", - "ABEGHIL", - "ABEGHIM", - "ABEGHIN", - "ABEGHIP", - "ABEGHJL", - "ABEGHJM", - "ABEGHJN", - "ABEGHJP", - "ABEGHLM", - "ABEGHLN", - "ABEGHLP", - "ABEGHMN", - "ABEGHMP", - "ABEGHNP", - "ABEGIJL", - "ABEGIJM", - "ABEGIJN", - "ABEGIJP", - "ABEGILM", - "ABEGILN", - "ABEGILP", - "ABEGIMN", - "ABEGIMP", - "ABEGINP", - "ABEGJLM", - "ABEGJLN", - "ABEGJLP", - "ABEGJMN", - "ABEGJMP", - "ABEGJNP", - "ABEGLMN", - "ABEGLMP", - "ABEGLNP", - "ABEGMNP", - "ABEHIJL", - "ABEHIJM", - "ABEHIJN", - "ABEHIJP", - "ABEHILM", - "ABEHILN", - "ABEHILP", - "ABEHIMN", - "ABEHIMP", - "ABEHINP", - "ABEHJLM", - "ABEHJLN", - "ABEHJLP", - "ABEHJMN", - "ABEHJMP", - "ABEHJNP", - "ABEHLMN", - "ABEHLMP", - "ABEHLNP", - "ABEHMNP", - "ABEIJLM", - "ABEIJLN", - "ABEIJLP", - "ABEIJMN", - "ABEIJMP", - "ABEIJNP", - "ABEILMN", - "ABEILMP", - "ABEILNP", - "ABEIMNP", - "ABEJLMN", - "ABEJLMP", - "ABEJLNP", - "ABEJMNP", - "ABELMNP", - "ABFGHIJ", - "ABFGHIL", - "ABFGHIM", - "ABFGHIN", - "ABFGHIP", - "ABFGHJL", - "ABFGHJM", - "ABFGHJN", - "ABFGHJP", - "ABFGHLM", - "ABFGHLN", - "ABFGHLP", - "ABFGHMN", - "ABFGHMP", - "ABFGHNP", - "ABFGIJL", - "ABFGIJM", - "ABFGIJN", - "ABFGIJP", - "ABFGILM", - "ABFGILN", - "ABFGILP", - "ABFGIMN", - "ABFGIMP", - "ABFGINP", - "ABFGJLM", - "ABFGJLN", - "ABFGJLP", - "ABFGJMN", - "ABFGJMP", - "ABFGJNP", - "ABFGLMN", - "ABFGLMP", - "ABFGLNP", - "ABFGMNP", - "ABFHIJL", - "ABFHIJM", - "ABFHIJN", - "ABFHIJP", - "ABFHILM", - "ABFHILN", - "ABFHILP", - "ABFHIMN", - "ABFHIMP", - "ABFHINP", - "ABFHJLM", - "ABFHJLN", - "ABFHJLP", - "ABFHJMN", - "ABFHJMP", - "ABFHJNP", - "ABFHLMN", - "ABFHLMP", - "ABFHLNP", - "ABFHMNP", - "ABFIJLM", - "ABFIJLN", - "ABFIJLP", - "ABFIJMN", - "ABFIJMP", - "ABFIJNP", - "ABFILMN", - "ABFILMP", - "ABFILNP", - "ABFIMNP", - "ABFJLMN", - "ABFJLMP", - "ABFJLNP", - "ABFJMNP", - "ABFLMNP", - "ABGHIJL", - "ABGHIJM", - "ABGHIJN", - "ABGHIJP", - "ABGHILM", - "ABGHILN", - "ABGHILP", - "ABGHIMN", - "ABGHIMP", - "ABGHINP", - "ABGHJLM", - "ABGHJLN", - "ABGHJLP", - "ABGHJMN", - "ABGHJMP", - "ABGHJNP", - "ABGHLMN", - "ABGHLMP", - "ABGHLNP", - "ABGHMNP", - "ABGIJLM", - "ABGIJLN", - "ABGIJLP", - "ABGIJMN", - "ABGIJMP", - "ABGIJNP", - "ABGILMN", - "ABGILMP", - "ABGILNP", - "ABGIMNP", - "ABGJLMN", - "ABGJLMP", - "ABGJLNP", - "ABGJMNP", - "ABGLMNP", - "ABHIJLM", - "ABHIJLN", - "ABHIJLP", - "ABHIJMN", - "ABHIJMP", - "ABHIJNP", - "ABHILMN", - "ABHILMP", - "ABHILNP", - "ABHIMNP", - "ABHJLMN", - "ABHJLMP", - "ABHJLNP", - "ABHJMNP", - "ABHLMNP", - "ABIJLMN", - "ABIJLMP", - "ABIJLNP", - "ABIJMNP", - "ABILMNP", - "ABJLMNP", - "ACEFGHI", - "ACEFGHJ", - "ACEFGHL", - "ACEFGHM", - "ACEFGHN", - "ACEFGHP", - "ACEFGIJ", - "ACEFGIL", - "ACEFGIM", - "ACEFGIN", - "ACEFGIP", - "ACEFGJL", - "ACEFGJM", - "ACEFGJN", - "ACEFGJP", - "ACEFGLM", - "ACEFGLN", - "ACEFGLP", - "ACEFGMN", - "ACEFGMP", - "ACEFGNP", - "ACEFHIJ", - "ACEFHIL", - "ACEFHIM", - "ACEFHIN", - "ACEFHIP", - "ACEFHJL", - "ACEFHJM", - "ACEFHJN", - "ACEFHJP", - "ACEFHLM", - "ACEFHLN", - "ACEFHLP", - "ACEFHMN", - "ACEFHMP", - "ACEFHNP", - "ACEFIJL", - "ACEFIJM", - "ACEFIJN", - "ACEFIJP", - "ACEFILM", - "ACEFILN", - "ACEFILP", - "ACEFIMN", - "ACEFIMP", - "ACEFINP", - "ACEFJLM", - "ACEFJLN", - "ACEFJLP", - "ACEFJMN", - "ACEFJMP", - "ACEFJNP", - "ACEFLMN", - "ACEFLMP", - "ACEFLNP", - "ACEFMNP", - "ACEGHIJ", - "ACEGHIL", - "ACEGHIM", - "ACEGHIN", - "ACEGHIP", - "ACEGHJL", - "ACEGHJM", - "ACEGHJN", - "ACEGHJP", - "ACEGHLM", - "ACEGHLN", - "ACEGHLP", - "ACEGHMN", - "ACEGHMP", - "ACEGHNP", - "ACEGIJL", - "ACEGIJM", - "ACEGIJN", - "ACEGIJP", - "ACEGILM", - "ACEGILN", - "ACEGILP", - "ACEGIMN", - "ACEGIMP", - "ACEGINP", - "ACEGJLM", - "ACEGJLN", - "ACEGJLP", - "ACEGJMN", - "ACEGJMP", - "ACEGJNP", - "ACEGLMN", - "ACEGLMP", - "ACEGLNP", - "ACEGMNP", - "ACEHIJL", - "ACEHIJM", - "ACEHIJN", - "ACEHIJP", - "ACEHILM", - "ACEHILN", - "ACEHILP", - "ACEHIMN", - "ACEHIMP", - "ACEHINP", - "ACEHJLM", - "ACEHJLN", - "ACEHJLP", - "ACEHJMN", - "ACEHJMP", - "ACEHJNP", - "ACEHLMN", - "ACEHLMP", - "ACEHLNP", - "ACEHMNP", - "ACEIJLM", - "ACEIJLN", - "ACEIJLP", - "ACEIJMN", - "ACEIJMP", - "ACEIJNP", - "ACEILMN", - "ACEILMP", - "ACEILNP", - "ACEIMNP", - "ACEJLMN", - "ACEJLMP", - "ACEJLNP", - "ACEJMNP", - "ACELMNP", - "ACFGHIJ", - "ACFGHIL", - "ACFGHIM", - "ACFGHIN", - "ACFGHIP", - "ACFGHJL", - "ACFGHJM", - "ACFGHJN", - "ACFGHJP", - "ACFGHLM", - "ACFGHLN", - "ACFGHLP", - "ACFGHMN", - "ACFGHMP", - "ACFGHNP", - "ACFGIJL", - "ACFGIJM", - "ACFGIJN", - "ACFGIJP", - "ACFGILM", - "ACFGILN", - "ACFGILP", - "ACFGIMN", - "ACFGIMP", - "ACFGINP", - "ACFGJLM", - "ACFGJLN", - "ACFGJLP", - "ACFGJMN", - "ACFGJMP", - "ACFGJNP", - "ACFGLMN", - "ACFGLMP", - "ACFGLNP", - "ACFGMNP", - "ACFHIJL", - "ACFHIJM", - "ACFHIJN", - "ACFHIJP", - "ACFHILM", - "ACFHILN", - "ACFHILP", - "ACFHIMN", - "ACFHIMP", - "ACFHINP", - "ACFHJLM", - "ACFHJLN", - "ACFHJLP", - "ACFHJMN", - "ACFHJMP", - "ACFHJNP", - "ACFHLMN", - "ACFHLMP", - "ACFHLNP", - "ACFHMNP", - "ACFIJLM", - "ACFIJLN", - "ACFIJLP", - "ACFIJMN", - "ACFIJMP", - "ACFIJNP", - "ACFILMN", - "ACFILMP", - "ACFILNP", - "ACFIMNP", - "ACFJLMN", - "ACFJLMP", - "ACFJLNP", - "ACFJMNP", - "ACFLMNP", - "ACGHIJL", - "ACGHIJM", - "ACGHIJN", - "ACGHIJP", - "ACGHILM", - "ACGHILN", - "ACGHILP", - "ACGHIMN", - "ACGHIMP", - "ACGHINP", - "ACGHJLM", - "ACGHJLN", - "ACGHJLP", - "ACGHJMN", - "ACGHJMP", - "ACGHJNP", - "ACGHLMN", - "ACGHLMP", - "ACGHLNP", - "ACGHMNP", - "ACGIJLM", - "ACGIJLN", - "ACGIJLP", - "ACGIJMN", - "ACGIJMP", - "ACGIJNP", - "ACGILMN", - "ACGILMP", - "ACGILNP", - "ACGIMNP", - "ACGJLMN", - "ACGJLMP", - "ACGJLNP", - "ACGJMNP", - "ACGLMNP", - "ACHIJLM", - "ACHIJLN", - "ACHIJLP", - "ACHIJMN", - "ACHIJMP", - "ACHIJNP", - "ACHILMN", - "ACHILMP", - "ACHILNP", - "ACHIMNP", - "ACHJLMN", - "ACHJLMP", - "ACHJLNP", - "ACHJMNP", - "ACHLMNP", - "ACIJLMN", - "ACIJLMP", - "ACIJLNP", - "ACIJMNP", - "ACILMNP", - "ACJLMNP", - "AEFGHIJ", - "AEFGHIL", - "AEFGHIM", - "AEFGHIN", - "AEFGHIP", - "AEFGHJL", - "AEFGHJM", - "AEFGHJN", - "AEFGHJP", - "AEFGHLM", - "AEFGHLN", - "AEFGHLP", - "AEFGHMN", - "AEFGHMP", - "AEFGHNP", - "AEFGIJL", - "AEFGIJM", - "AEFGIJN", - "AEFGIJP", - "AEFGILM", - "AEFGILN", - "AEFGILP", - "AEFGIMN", - "AEFGIMP", - "AEFGINP", - "AEFGJLM", - "AEFGJLN", - "AEFGJLP", - "AEFGJMN", - "AEFGJMP", - "AEFGJNP", - "AEFGLMN", - "AEFGLMP", - "AEFGLNP", - "AEFGMNP", - "AEFHIJL", - "AEFHIJM", - "AEFHIJN", - "AEFHIJP", - "AEFHILM", - "AEFHILN", - "AEFHILP", - "AEFHIMN", - "AEFHIMP", - "AEFHINP", - "AEFHJLM", - "AEFHJLN", - "AEFHJLP", - "AEFHJMN", - "AEFHJMP", - "AEFHJNP", - "AEFHLMN", - "AEFHLMP", - "AEFHLNP", - "AEFHMNP", - "AEFIJLM", - "AEFIJLN", - "AEFIJLP", - "AEFIJMN", - "AEFIJMP", - "AEFIJNP", - "AEFILMN", - "AEFILMP", - "AEFILNP", - "AEFIMNP", - "AEFJLMN", - "AEFJLMP", - "AEFJLNP", - "AEFJMNP", - "AEFLMNP", - "AEGHIJL", - "AEGHIJM", - "AEGHIJN", - "AEGHIJP", - "AEGHILM", - "AEGHILN", - "AEGHILP", - "AEGHIMN", - "AEGHIMP", - "AEGHINP", - "AEGHJLM", - "AEGHJLN", - "AEGHJLP", - "AEGHJMN", - "AEGHJMP", - "AEGHJNP", - "AEGHLMN", - "AEGHLMP", - "AEGHLNP", - "AEGHMNP", - "AEGIJLM", - "AEGIJLN", - "AEGIJLP", - "AEGIJMN", - "AEGIJMP", - "AEGIJNP", - "AEGILMN", - "AEGILMP", - "AEGILNP", - "AEGIMNP", - "AEGJLMN", - "AEGJLMP", - "AEGJLNP", - "AEGJMNP", - "AEGLMNP", - "AEHIJLM", - "AEHIJLN", - "AEHIJLP", - "AEHIJMN", - "AEHIJMP", - "AEHIJNP", - "AEHILMN", - "AEHILMP", - "AEHILNP", - "AEHIMNP", - "AEHJLMN", - "AEHJLMP", - "AEHJLNP", - "AEHJMNP", - "AEHLMNP", - "AEIJLMN", - "AEIJLMP", - "AEIJLNP", - "AEIJMNP", - "AEILMNP", - "AEJLMNP", - "AFGHIJL", - "AFGHIJM", - "AFGHIJN", - "AFGHIJP", - "AFGHILM", - "AFGHILN", - "AFGHILP", - "AFGHIMN", - "AFGHIMP", - "AFGHINP", - "AFGHJLM", - "AFGHJLN", - "AFGHJLP", - "AFGHJMN", - "AFGHJMP", - "AFGHJNP", - "AFGHLMN", - "AFGHLMP", - "AFGHLNP", - "AFGHMNP", - "AFGIJLM", - "AFGIJLN", - "AFGIJLP", - "AFGIJMN", - "AFGIJMP", - "AFGIJNP", - "AFGILMN", - "AFGILMP", - "AFGILNP", - "AFGIMNP", - "AFGJLMN", - "AFGJLMP", - "AFGJLNP", - "AFGJMNP", - "AFGLMNP", - "AFHIJLM", - "AFHIJLN", - "AFHIJLP", - "AFHIJMN", - "AFHIJMP", - "AFHIJNP", - "AFHILMN", - "AFHILMP", - "AFHILNP", - "AFHIMNP", - "AFHJLMN", - "AFHJLMP", - "AFHJLNP", - "AFHJMNP", - "AFHLMNP", - "AFIJLMN", - "AFIJLMP", - "AFIJLNP", - "AFIJMNP", - "AFILMNP", - "AFJLMNP", - "AGHIJLM", - "AGHIJLN", - "AGHIJLP", - "AGHIJMN", - "AGHIJMP", - "AGHIJNP", - "AGHILMN", - "AGHILMP", - "AGHILNP", - "AGHIMNP", - "AGHJLMN", - "AGHJLMP", - "AGHJLNP", - "AGHJMNP", - "AGHLMNP", - "AGIJLMN", - "AGIJLMP", - "AGIJLNP", - "AGIJMNP", - "AGILMNP", - "AGJLMNP", - "AHIJLMN", - "AHIJLMP", - "AHIJLNP", - "AHIJMNP", - "AHILMNP", - "AHJLMNP", - "AIJLMNP", - "BCEFGHI", - "BCEFGHJ", - "BCEFGHL", - "BCEFGHM", - "BCEFGHN", - "BCEFGHP", - "BCEFGIJ", - "BCEFGIL", - "BCEFGIM", - "BCEFGIN", - "BCEFGIP", - "BCEFGJL", - "BCEFGJM", - "BCEFGJN", - "BCEFGJP", - "BCEFGLM", - "BCEFGLN", - "BCEFGLP", - "BCEFGMN", - "BCEFGMP", - "BCEFGNP", - "BCEFHIJ", - "BCEFHIL", - "BCEFHIM", - "BCEFHIN", - "BCEFHIP", - "BCEFHJL", - "BCEFHJM", - "BCEFHJN", - "BCEFHJP", - "BCEFHLM", - "BCEFHLN", - "BCEFHLP", - "BCEFHMN", - "BCEFHMP", - "BCEFHNP", - "BCEFIJL", - "BCEFIJM", - "BCEFIJN", - "BCEFIJP", - "BCEFILM", - "BCEFILN", - "BCEFILP", - "BCEFIMN", - "BCEFIMP", - "BCEFINP", - "BCEFJLM", - "BCEFJLN", - "BCEFJLP", - "BCEFJMN", - "BCEFJMP", - "BCEFJNP", - "BCEFLMN", - "BCEFLMP", - "BCEFLNP", - "BCEFMNP", - "BCEGHIJ", - "BCEGHIL", - "BCEGHIM", - "BCEGHIN", - "BCEGHIP", - "BCEGHJL", - "BCEGHJM", - "BCEGHJN", - "BCEGHJP", - "BCEGHLM", - "BCEGHLN", - "BCEGHLP", - "BCEGHMN", - "BCEGHMP", - "BCEGHNP", - "BCEGIJL", - "BCEGIJM", - "BCEGIJN", - "BCEGIJP", - "BCEGILM", - "BCEGILN", - "BCEGILP", - "BCEGIMN", - "BCEGIMP", - "BCEGINP", - "BCEGJLM", - "BCEGJLN", - "BCEGJLP", - "BCEGJMN", - "BCEGJMP", - "BCEGJNP", - "BCEGLMN", - "BCEGLMP", - "BCEGLNP", - "BCEGMNP", - "BCEHIJL", - "BCEHIJM", - "BCEHIJN", - "BCEHIJP", - "BCEHILM", - "BCEHILN", - "BCEHILP", - "BCEHIMN", - "BCEHIMP", - "BCEHINP", - "BCEHJLM", - "BCEHJLN", - "BCEHJLP", - "BCEHJMN", - "BCEHJMP", - "BCEHJNP", - "BCEHLMN", - "BCEHLMP", - "BCEHLNP", - "BCEHMNP", - "BCEIJLM", - "BCEIJLN", - "BCEIJLP", - "BCEIJMN", - "BCEIJMP", - "BCEIJNP", - "BCEILMN", - "BCEILMP", - "BCEILNP", - "BCEIMNP", - "BCEJLMN", - "BCEJLMP", - "BCEJLNP", - "BCEJMNP", - "BCELMNP", - "BCFGHIJ", - "BCFGHIL", - "BCFGHIM", - "BCFGHIN", - "BCFGHIP", - "BCFGHJL", - "BCFGHJM", - "BCFGHJN", - "BCFGHJP", - "BCFGHLM", - "BCFGHLN", - "BCFGHLP", - "BCFGHMN", - "BCFGHMP", - "BCFGHNP", - "BCFGIJL", - "BCFGIJM", - "BCFGIJN", - "BCFGIJP", - "BCFGILM", - "BCFGILN", - "BCFGILP", - "BCFGIMN", - "BCFGIMP", - "BCFGINP", - "BCFGJLM", - "BCFGJLN", - "BCFGJLP", - "BCFGJMN", - "BCFGJMP", - "BCFGJNP", - "BCFGLMN", - "BCFGLMP", - "BCFGLNP", - "BCFGMNP", - "BCFHIJL", - "BCFHIJM", - "BCFHIJN", - "BCFHIJP", - "BCFHILM", - "BCFHILN", - "BCFHILP", - "BCFHIMN", - "BCFHIMP", - "BCFHINP", - "BCFHJLM", - "BCFHJLN", - "BCFHJLP", - "BCFHJMN", - "BCFHJMP", - "BCFHJNP", - "BCFHLMN", - "BCFHLMP", - "BCFHLNP", - "BCFHMNP", - "BCFIJLM", - "BCFIJLN", - "BCFIJLP", - "BCFIJMN", - "BCFIJMP", - "BCFIJNP", - "BCFILMN", - "BCFILMP", - "BCFILNP", - "BCFIMNP", - "BCFJLMN", - "BCFJLMP", - "BCFJLNP", - "BCFJMNP", - "BCFLMNP", - "BCGHIJL", - "BCGHIJM", - "BCGHIJN", - "BCGHIJP", - "BCGHILM", - "BCGHILN", - "BCGHILP", - "BCGHIMN", - "BCGHIMP", - "BCGHINP", - "BCGHJLM", - "BCGHJLN", - "BCGHJLP", - "BCGHJMN", - "BCGHJMP", - "BCGHJNP", - "BCGHLMN", - "BCGHLMP", - "BCGHLNP", - "BCGHMNP", - "BCGIJLM", - "BCGIJLN", - "BCGIJLP", - "BCGIJMN", - "BCGIJMP", - "BCGIJNP", - "BCGILMN", - "BCGILMP", - "BCGILNP", - "BCGIMNP", - "BCGJLMN", - "BCGJLMP", - "BCGJLNP", - "BCGJMNP", - "BCGLMNP", - "BCHIJLM", - "BCHIJLN", - "BCHIJLP", - "BCHIJMN", - "BCHIJMP", - "BCHIJNP", - "BCHILMN", - "BCHILMP", - "BCHILNP", - "BCHIMNP", - "BCHJLMN", - "BCHJLMP", - "BCHJLNP", - "BCHJMNP", - "BCHLMNP", - "BCIJLMN", - "BCIJLMP", - "BCIJLNP", - "BCIJMNP", - "BCILMNP", - "BCJLMNP", - "BEFGHIJ", - "BEFGHIL", - "BEFGHIM", - "BEFGHIN", - "BEFGHIP", - "BEFGHJL", - "BEFGHJM", - "BEFGHJN", - "BEFGHJP", - "BEFGHLM", - "BEFGHLN", - "BEFGHLP", - "BEFGHMN", - "BEFGHMP", - "BEFGHNP", - "BEFGIJL", - "BEFGIJM", - "BEFGIJN", - "BEFGIJP", - "BEFGILM", - "BEFGILN", - "BEFGILP", - "BEFGIMN", - "BEFGIMP", - "BEFGINP", - "BEFGJLM", - "BEFGJLN", - "BEFGJLP", - "BEFGJMN", - "BEFGJMP", - "BEFGJNP", - "BEFGLMN", - "BEFGLMP", - "BEFGLNP", - "BEFGMNP", - "BEFHIJL", - "BEFHIJM", - "BEFHIJN", - "BEFHIJP", - "BEFHILM", - "BEFHILN", - "BEFHILP", - "BEFHIMN", - "BEFHIMP", - "BEFHINP", - "BEFHJLM", - "BEFHJLN", - "BEFHJLP", - "BEFHJMN", - "BEFHJMP", - "BEFHJNP", - "BEFHLMN", - "BEFHLMP", - "BEFHLNP", - "BEFHMNP", - "BEFIJLM", - "BEFIJLN", - "BEFIJLP", - "BEFIJMN", - "BEFIJMP", - "BEFIJNP", - "BEFILMN", - "BEFILMP", - "BEFILNP", - "BEFIMNP", - "BEFJLMN", - "BEFJLMP", - "BEFJLNP", - "BEFJMNP", - "BEFLMNP", - "BEGHIJL", - "BEGHIJM", - "BEGHIJN", - "BEGHIJP", - "BEGHILM", - "BEGHILN", - "BEGHILP", - "BEGHIMN", - "BEGHIMP", - "BEGHINP", - "BEGHJLM", - "BEGHJLN", - "BEGHJLP", - "BEGHJMN", - "BEGHJMP", - "BEGHJNP", - "BEGHLMN", - "BEGHLMP", - "BEGHLNP", - "BEGHMNP", - "BEGIJLM", - "BEGIJLN", - "BEGIJLP", - "BEGIJMN", - "BEGIJMP", - "BEGIJNP", - "BEGILMN", - "BEGILMP", - "BEGILNP", - "BEGIMNP", - "BEGJLMN", - "BEGJLMP", - "BEGJLNP", - "BEGJMNP", - "BEGLMNP", - "BEHIJLM", - "BEHIJLN", - "BEHIJLP", - "BEHIJMN", - "BEHIJMP", - "BEHIJNP", - "BEHILMN", - "BEHILMP", - "BEHILNP", - "BEHIMNP", - "BEHJLMN", - "BEHJLMP", - "BEHJLNP", - "BEHJMNP", - "BEHLMNP", - "BEIJLMN", - "BEIJLMP", - "BEIJLNP", - "BEIJMNP", - "BEILMNP", - "BEJLMNP", - "BFGHIJL", - "BFGHIJM", - "BFGHIJN", - "BFGHIJP", - "BFGHILM", - "BFGHILN", - "BFGHILP", - "BFGHIMN", - "BFGHIMP", - "BFGHINP", - "BFGHJLM", - "BFGHJLN", - "BFGHJLP", - "BFGHJMN", - "BFGHJMP", - "BFGHJNP", - "BFGHLMN", - "BFGHLMP", - "BFGHLNP", - "BFGHMNP", - "BFGIJLM", - "BFGIJLN", - "BFGIJLP", - "BFGIJMN", - "BFGIJMP", - "BFGIJNP", - "BFGILMN", - "BFGILMP", - "BFGILNP", - "BFGIMNP", - "BFGJLMN", - "BFGJLMP", - "BFGJLNP", - "BFGJMNP", - "BFGLMNP", - "BFHIJLM", - "BFHIJLN", - "BFHIJLP", - "BFHIJMN", - "BFHIJMP", - "BFHIJNP", - "BFHILMN", - "BFHILMP", - "BFHILNP", - "BFHIMNP", - "BFHJLMN", - "BFHJLMP", - "BFHJLNP", - "BFHJMNP", - "BFHLMNP", - "BFIJLMN", - "BFIJLMP", - "BFIJLNP", - "BFIJMNP", - "BFILMNP", - "BFJLMNP", - "BGHIJLM", - "BGHIJLN", - "BGHIJLP", - "BGHIJMN", - "BGHIJMP", - "BGHIJNP", - "BGHILMN", - "BGHILMP", - "BGHILNP", - "BGHIMNP", - "BGHJLMN", - "BGHJLMP", - "BGHJLNP", - "BGHJMNP", - "BGHLMNP", - "BGIJLMN", - "BGIJLMP", - "BGIJLNP", - "BGIJMNP", - "BGILMNP", - "BGJLMNP", - "BHIJLMN", - "BHIJLMP", - "BHIJLNP", - "BHIJMNP", - "BHILMNP", - "BHJLMNP", - "BIJLMNP", - "CEFGHIJ", - "CEFGHIL", - "CEFGHIM", - "CEFGHIN", - "CEFGHIP", - "CEFGHJL", - "CEFGHJM", - "CEFGHJN", - "CEFGHJP", - "CEFGHLM", - "CEFGHLN", - "CEFGHLP", - "CEFGHMN", - "CEFGHMP", - "CEFGHNP", - "CEFGIJL", - "CEFGIJM", - "CEFGIJN", - "CEFGIJP", - "CEFGILM", - "CEFGILN", - "CEFGILP", - "CEFGIMN", - "CEFGIMP", - "CEFGINP", - "CEFGJLM", - "CEFGJLN", - "CEFGJLP", - "CEFGJMN", - "CEFGJMP", - "CEFGJNP", - "CEFGLMN", - "CEFGLMP", - "CEFGLNP", - "CEFGMNP", - "CEFHIJL", - "CEFHIJM", - "CEFHIJN", - "CEFHIJP", - "CEFHILM", - "CEFHILN", - "CEFHILP", - "CEFHIMN", - "CEFHIMP", - "CEFHINP", - "CEFHJLM", - "CEFHJLN", - "CEFHJLP", - "CEFHJMN", - "CEFHJMP", - "CEFHJNP", - "CEFHLMN", - "CEFHLMP", - "CEFHLNP", - "CEFHMNP", - "CEFIJLM", - "CEFIJLN", - "CEFIJLP", - "CEFIJMN", - "CEFIJMP", - "CEFIJNP", - "CEFILMN", - "CEFILMP", - "CEFILNP", - "CEFIMNP", - "CEFJLMN", - "CEFJLMP", - "CEFJLNP", - "CEFJMNP", - "CEFLMNP", - "CEGHIJL", - "CEGHIJM", - "CEGHIJN", - "CEGHIJP", - "CEGHILM", - "CEGHILN", - "CEGHILP", - "CEGHIMN", - "CEGHIMP", - "CEGHINP", - "CEGHJLM", - "CEGHJLN", - "CEGHJLP", - "CEGHJMN", - "CEGHJMP", - "CEGHJNP", - "CEGHLMN", - "CEGHLMP", - "CEGHLNP", - "CEGHMNP", - "CEGIJLM", - "CEGIJLN", - "CEGIJLP", - "CEGIJMN", - "CEGIJMP", - "CEGIJNP", - "CEGILMN", - "CEGILMP", - "CEGILNP", - "CEGIMNP", - "CEGJLMN", - "CEGJLMP", - "CEGJLNP", - "CEGJMNP", - "CEGLMNP", - "CEHIJLM", - "CEHIJLN", - "CEHIJLP", - "CEHIJMN", - "CEHIJMP", - "CEHIJNP", - "CEHILMN", - "CEHILMP", - "CEHILNP", - "CEHIMNP", - "CEHJLMN", - "CEHJLMP", - "CEHJLNP", - "CEHJMNP", - "CEHLMNP", - "CEIJLMN", - "CEIJLMP", - "CEIJLNP", - "CEIJMNP", - "CEILMNP", - "CEJLMNP", - "CFGHIJL", - "CFGHIJM", - "CFGHIJN", - "CFGHIJP", - "CFGHILM", - "CFGHILN", - "CFGHILP", - "CFGHIMN", - "CFGHIMP", - "CFGHINP", - "CFGHJLM", - "CFGHJLN", - "CFGHJLP", - "CFGHJMN", - "CFGHJMP", - "CFGHJNP", - "CFGHLMN", - "CFGHLMP", - "CFGHLNP", - "CFGHMNP", - "CFGIJLM", - "CFGIJLN", - "CFGIJLP", - "CFGIJMN", - "CFGIJMP", - "CFGIJNP", - "CFGILMN", - "CFGILMP", - "CFGILNP", - "CFGIMNP", - "CFGJLMN", - "CFGJLMP", - "CFGJLNP", - "CFGJMNP", - "CFGLMNP", - "CFHIJLM", - "CFHIJLN", - "CFHIJLP", - "CFHIJMN", - "CFHIJMP", - "CFHIJNP", - "CFHILMN", - "CFHILMP", - "CFHILNP", - "CFHIMNP", - "CFHJLMN", - "CFHJLMP", - "CFHJLNP", - "CFHJMNP", - "CFHLMNP", - "CFIJLMN", - "CFIJLMP", - "CFIJLNP", - "CFIJMNP", - "CFILMNP", - "CFJLMNP", - "CGHIJLM", - "CGHIJLN", - "CGHIJLP", - "CGHIJMN", - "CGHIJMP", - "CGHIJNP", - "CGHILMN", - "CGHILMP", - "CGHILNP", - "CGHIMNP", - "CGHJLMN", - "CGHJLMP", - "CGHJLNP", - "CGHJMNP", - "CGHLMNP", - "CGIJLMN", - "CGIJLMP", - "CGIJLNP", - "CGIJMNP", - "CGILMNP", - "CGJLMNP", - "CHIJLMN", - "CHIJLMP", - "CHIJLNP", - "CHIJMNP", - "CHILMNP", - "CHJLMNP", - "CIJLMNP", - "EFGHIJL", - "EFGHIJM", - "EFGHIJN", - "EFGHIJP", - "EFGHILM", - "EFGHILN", - "EFGHILP", - "EFGHIMN", - "EFGHIMP", - "EFGHINP", - "EFGHJLM", - "EFGHJLN", - "EFGHJLP", - "EFGHJMN", - "EFGHJMP", - "EFGHJNP", - "EFGHLMN", - "EFGHLMP", - "EFGHLNP", - "EFGHMNP", - "EFGIJLM", - "EFGIJLN", - "EFGIJLP", - "EFGIJMN", - "EFGIJMP", - "EFGIJNP", - "EFGILMN", - "EFGILMP", - "EFGILNP", - "EFGIMNP", - "EFGJLMN", - "EFGJLMP", - "EFGJLNP", - "EFGJMNP", - "EFGLMNP", - "EFHIJLM", - "EFHIJLN", - "EFHIJLP", - "EFHIJMN", - "EFHIJMP", - "EFHIJNP", - "EFHILMN", - "EFHILMP", - "EFHILNP", - "EFHIMNP", - "EFHJLMN", - "EFHJLMP", - "EFHJLNP", - "EFHJMNP", - "EFHLMNP", - "EFIJLMN", - "EFIJLMP", - "EFIJLNP", - "EFIJMNP", - "EFILMNP", - "EFJLMNP", - "EGHIJLM", - "EGHIJLN", - "EGHIJLP", - "EGHIJMN", - "EGHIJMP", - "EGHIJNP", - "EGHILMN", - "EGHILMP", - "EGHILNP", - "EGHIMNP", - "EGHJLMN", - "EGHJLMP", - "EGHJLNP", - "EGHJMNP", - "EGHLMNP", - "EGIJLMN", - "EGIJLMP", - "EGIJLNP", - "EGIJMNP", - "EGILMNP", - "EGJLMNP", - "EHIJLMN", - "EHIJLMP", - "EHIJLNP", - "EHIJMNP", - "EHILMNP", - "EHJLMNP", - "EIJLMNP", - "FGHIJLM", - "FGHIJLN", - "FGHIJLP", - "FGHIJMN", - "FGHIJMP", - "FGHIJNP", - "FGHILMN", - "FGHILMP", - "FGHILNP", - "FGHIMNP", - "FGHJLMN", - "FGHJLMP", - "FGHJLNP", - "FGHJMNP", - "FGHLMNP", - "FGIJLMN", - "FGIJLMP", - "FGIJLNP", - "FGIJMNP", - "FGILMNP", - "FGJLMNP", - "FHIJLMN", - "FHIJLMP", - "FHIJLNP", - "FHIJMNP", - "FHILMNP", - "FHJLMNP", - "FIJLMNP", - "GHIJLMN", - "GHIJLMP", - "GHIJLNP", - "GHIJMNP", - "GHILMNP", - "GHJLMNP", - "GIJLMNP", - "HIJLMNP", - "ABCEFGHI", - "ABCEFGHJ", - "ABCEFGHL", - "ABCEFGHM", - "ABCEFGHN", - "ABCEFGHP", - "ABCEFGIJ", - "ABCEFGIL", - "ABCEFGIM", - "ABCEFGIN", - "ABCEFGIP", - "ABCEFGJL", - "ABCEFGJM", - "ABCEFGJN", - "ABCEFGJP", - "ABCEFGLM", - "ABCEFGLN", - "ABCEFGLP", - "ABCEFGMN", - "ABCEFGMP", - "ABCEFGNP", - "ABCEFHIJ", - "ABCEFHIL", - "ABCEFHIM", - "ABCEFHIN", - "ABCEFHIP", - "ABCEFHJL", - "ABCEFHJM", - "ABCEFHJN", - "ABCEFHJP", - "ABCEFHLM", - "ABCEFHLN", - "ABCEFHLP", - "ABCEFHMN", - "ABCEFHMP", - "ABCEFHNP", - "ABCEFIJL", - "ABCEFIJM", - "ABCEFIJN", - "ABCEFIJP", - "ABCEFILM", - "ABCEFILN", - "ABCEFILP", - "ABCEFIMN", - "ABCEFIMP", - "ABCEFINP", - "ABCEFJLM", - "ABCEFJLN", - "ABCEFJLP", - "ABCEFJMN", - "ABCEFJMP", - "ABCEFJNP", - "ABCEFLMN", - "ABCEFLMP", - "ABCEFLNP", - "ABCEFMNP", - "ABCEGHIJ", - "ABCEGHIL", - "ABCEGHIM", - "ABCEGHIN", - "ABCEGHIP", - "ABCEGHJL", - "ABCEGHJM", - "ABCEGHJN", - "ABCEGHJP", - "ABCEGHLM", - "ABCEGHLN", - "ABCEGHLP", - "ABCEGHMN", - "ABCEGHMP", - "ABCEGHNP", - "ABCEGIJL", - "ABCEGIJM", - "ABCEGIJN", - "ABCEGIJP", - "ABCEGILM", - "ABCEGILN", - "ABCEGILP", - "ABCEGIMN", - "ABCEGIMP", - "ABCEGINP", - "ABCEGJLM", - "ABCEGJLN", - "ABCEGJLP", - "ABCEGJMN", - "ABCEGJMP", - "ABCEGJNP", - "ABCEGLMN", - "ABCEGLMP", - "ABCEGLNP", - "ABCEGMNP", - "ABCEHIJL", - "ABCEHIJM", - "ABCEHIJN", - "ABCEHIJP", - "ABCEHILM", - "ABCEHILN", - "ABCEHILP", - "ABCEHIMN", - "ABCEHIMP", - "ABCEHINP", - "ABCEHJLM", - "ABCEHJLN", - "ABCEHJLP", - "ABCEHJMN", - "ABCEHJMP", - "ABCEHJNP", - "ABCEHLMN", - "ABCEHLMP", - "ABCEHLNP", - "ABCEHMNP", - "ABCEIJLM", - "ABCEIJLN", - "ABCEIJLP", - "ABCEIJMN", - "ABCEIJMP", - "ABCEIJNP", - "ABCEILMN", - "ABCEILMP", - "ABCEILNP", - "ABCEIMNP", - "ABCEJLMN", - "ABCEJLMP", - "ABCEJLNP", - "ABCEJMNP", - "ABCELMNP", - "ABCFGHIJ", - "ABCFGHIL", - "ABCFGHIM", - "ABCFGHIN", - "ABCFGHIP", - "ABCFGHJL", - "ABCFGHJM", - "ABCFGHJN", - "ABCFGHJP", - "ABCFGHLM", - "ABCFGHLN", - "ABCFGHLP", - "ABCFGHMN", - "ABCFGHMP", - "ABCFGHNP", - "ABCFGIJL", - "ABCFGIJM", - "ABCFGIJN", - "ABCFGIJP", - "ABCFGILM", - "ABCFGILN", - "ABCFGILP", - "ABCFGIMN", - "ABCFGIMP", - "ABCFGINP", - "ABCFGJLM", - "ABCFGJLN", - "ABCFGJLP", - "ABCFGJMN", - "ABCFGJMP", - "ABCFGJNP", - "ABCFGLMN", - "ABCFGLMP", - "ABCFGLNP", - "ABCFGMNP", - "ABCFHIJL", - "ABCFHIJM", - "ABCFHIJN", - "ABCFHIJP", - "ABCFHILM", - "ABCFHILN", - "ABCFHILP", - "ABCFHIMN", - "ABCFHIMP", - "ABCFHINP", - "ABCFHJLM", - "ABCFHJLN", - "ABCFHJLP", - "ABCFHJMN", - "ABCFHJMP", - "ABCFHJNP", - "ABCFHLMN", - "ABCFHLMP", - "ABCFHLNP", - "ABCFHMNP", - "ABCFIJLM", - "ABCFIJLN", - "ABCFIJLP", - "ABCFIJMN", - "ABCFIJMP", - "ABCFIJNP", - "ABCFILMN", - "ABCFILMP", - "ABCFILNP", - "ABCFIMNP", - "ABCFJLMN", - "ABCFJLMP", - "ABCFJLNP", - "ABCFJMNP", - "ABCFLMNP", - "ABCGHIJL", - "ABCGHIJM", - "ABCGHIJN", - "ABCGHIJP", - "ABCGHILM", - "ABCGHILN", - "ABCGHILP", - "ABCGHIMN", - "ABCGHIMP", - "ABCGHINP", - "ABCGHJLM", - "ABCGHJLN", - "ABCGHJLP", - "ABCGHJMN", - "ABCGHJMP", - "ABCGHJNP", - "ABCGHLMN", - "ABCGHLMP", - "ABCGHLNP", - "ABCGHMNP", - "ABCGIJLM", - "ABCGIJLN", - "ABCGIJLP", - "ABCGIJMN", - "ABCGIJMP", - "ABCGIJNP", - "ABCGILMN", - "ABCGILMP", - "ABCGILNP", - "ABCGIMNP", - "ABCGJLMN", - "ABCGJLMP", - "ABCGJLNP", - "ABCGJMNP", - "ABCGLMNP", - "ABCHIJLM", - "ABCHIJLN", - "ABCHIJLP", - "ABCHIJMN", - "ABCHIJMP", - "ABCHIJNP", - "ABCHILMN", - "ABCHILMP", - "ABCHILNP", - "ABCHIMNP", - "ABCHJLMN", - "ABCHJLMP", - "ABCHJLNP", - "ABCHJMNP", - "ABCHLMNP", - "ABCIJLMN", - "ABCIJLMP", - "ABCIJLNP", - "ABCIJMNP", - "ABCILMNP", - "ABCJLMNP", - "ABEFGHIJ", - "ABEFGHIL", - "ABEFGHIM", - "ABEFGHIN", - "ABEFGHIP", - "ABEFGHJL", - "ABEFGHJM", - "ABEFGHJN", - "ABEFGHJP", - "ABEFGHLM", - "ABEFGHLN", - "ABEFGHLP", - "ABEFGHMN", - "ABEFGHMP", - "ABEFGHNP", - "ABEFGIJL", - "ABEFGIJM", - "ABEFGIJN", - "ABEFGIJP", - "ABEFGILM", - "ABEFGILN", - "ABEFGILP", - "ABEFGIMN", - "ABEFGIMP", - "ABEFGINP", - "ABEFGJLM", - "ABEFGJLN", - "ABEFGJLP", - "ABEFGJMN", - "ABEFGJMP", - "ABEFGJNP", - "ABEFGLMN", - "ABEFGLMP", - "ABEFGLNP", - "ABEFGMNP", - "ABEFHIJL", - "ABEFHIJM", - "ABEFHIJN", - "ABEFHIJP", - "ABEFHILM", - "ABEFHILN", - "ABEFHILP", - "ABEFHIMN", - "ABEFHIMP", - "ABEFHINP", - "ABEFHJLM", - "ABEFHJLN", - "ABEFHJLP", - "ABEFHJMN", - "ABEFHJMP", - "ABEFHJNP", - "ABEFHLMN", - "ABEFHLMP", - "ABEFHLNP", - "ABEFHMNP", - "ABEFIJLM", - "ABEFIJLN", - "ABEFIJLP", - "ABEFIJMN", - "ABEFIJMP", - "ABEFIJNP", - "ABEFILMN", - "ABEFILMP", - "ABEFILNP", - "ABEFIMNP", - "ABEFJLMN", - "ABEFJLMP", - "ABEFJLNP", - "ABEFJMNP", - "ABEFLMNP", - "ABEGHIJL", - "ABEGHIJM", - "ABEGHIJN", - "ABEGHIJP", - "ABEGHILM", - "ABEGHILN", - "ABEGHILP", - "ABEGHIMN", - "ABEGHIMP", - "ABEGHINP", - "ABEGHJLM", - "ABEGHJLN", - "ABEGHJLP", - "ABEGHJMN", - "ABEGHJMP", - "ABEGHJNP", - "ABEGHLMN", - "ABEGHLMP", - "ABEGHLNP", - "ABEGHMNP", - "ABEGIJLM", - "ABEGIJLN", - "ABEGIJLP", - "ABEGIJMN", - "ABEGIJMP", - "ABEGIJNP", - "ABEGILMN", - "ABEGILMP", - "ABEGILNP", - "ABEGIMNP", - "ABEGJLMN", - "ABEGJLMP", - "ABEGJLNP", - "ABEGJMNP", - "ABEGLMNP", - "ABEHIJLM", - "ABEHIJLN", - "ABEHIJLP", - "ABEHIJMN", - "ABEHIJMP", - "ABEHIJNP", - "ABEHILMN", - "ABEHILMP", - "ABEHILNP", - "ABEHIMNP", - "ABEHJLMN", - "ABEHJLMP", - "ABEHJLNP", - "ABEHJMNP", - "ABEHLMNP", - "ABEIJLMN", - "ABEIJLMP", - "ABEIJLNP", - "ABEIJMNP", - "ABEILMNP", - "ABEJLMNP", - "ABFGHIJL", - "ABFGHIJM", - "ABFGHIJN", - "ABFGHIJP", - "ABFGHILM", - "ABFGHILN", - "ABFGHILP", - "ABFGHIMN", - "ABFGHIMP", - "ABFGHINP", - "ABFGHJLM", - "ABFGHJLN", - "ABFGHJLP", - "ABFGHJMN", - "ABFGHJMP", - "ABFGHJNP", - "ABFGHLMN", - "ABFGHLMP", - "ABFGHLNP", - "ABFGHMNP", - "ABFGIJLM", - "ABFGIJLN", - "ABFGIJLP", - "ABFGIJMN", - "ABFGIJMP", - "ABFGIJNP", - "ABFGILMN", - "ABFGILMP", - "ABFGILNP", - "ABFGIMNP", - "ABFGJLMN", - "ABFGJLMP", - "ABFGJLNP", - "ABFGJMNP", - "ABFGLMNP", - "ABFHIJLM", - "ABFHIJLN", - "ABFHIJLP", - "ABFHIJMN", - "ABFHIJMP", - "ABFHIJNP", - "ABFHILMN", - "ABFHILMP", - "ABFHILNP", - "ABFHIMNP", - "ABFHJLMN", - "ABFHJLMP", - "ABFHJLNP", - "ABFHJMNP", - "ABFHLMNP", - "ABFIJLMN", - "ABFIJLMP", - "ABFIJLNP", - "ABFIJMNP", - "ABFILMNP", - "ABFJLMNP", - "ABGHIJLM", - "ABGHIJLN", - "ABGHIJLP", - "ABGHIJMN", - "ABGHIJMP", - "ABGHIJNP", - "ABGHILMN", - "ABGHILMP", - "ABGHILNP", - "ABGHIMNP", - "ABGHJLMN", - "ABGHJLMP", - "ABGHJLNP", - "ABGHJMNP", - "ABGHLMNP", - "ABGIJLMN", - "ABGIJLMP", - "ABGIJLNP", - "ABGIJMNP", - "ABGILMNP", - "ABGJLMNP", - "ABHIJLMN", - "ABHIJLMP", - "ABHIJLNP", - "ABHIJMNP", - "ABHILMNP", - "ABHJLMNP", - "ABIJLMNP", - "ACEFGHIJ", - "ACEFGHIL", - "ACEFGHIM", - "ACEFGHIN", - "ACEFGHIP", - "ACEFGHJL", - "ACEFGHJM", - "ACEFGHJN", - "ACEFGHJP", - "ACEFGHLM", - "ACEFGHLN", - "ACEFGHLP", - "ACEFGHMN", - "ACEFGHMP", - "ACEFGHNP", - "ACEFGIJL", - "ACEFGIJM", - "ACEFGIJN", - "ACEFGIJP", - "ACEFGILM", - "ACEFGILN", - "ACEFGILP", - "ACEFGIMN", - "ACEFGIMP", - "ACEFGINP", - "ACEFGJLM", - "ACEFGJLN", - "ACEFGJLP", - "ACEFGJMN", - "ACEFGJMP", - "ACEFGJNP", - "ACEFGLMN", - "ACEFGLMP", - "ACEFGLNP", - "ACEFGMNP", - "ACEFHIJL", - "ACEFHIJM", - "ACEFHIJN", - "ACEFHIJP", - "ACEFHILM", - "ACEFHILN", - "ACEFHILP", - "ACEFHIMN", - "ACEFHIMP", - "ACEFHINP", - "ACEFHJLM", - "ACEFHJLN", - "ACEFHJLP", - "ACEFHJMN", - "ACEFHJMP", - "ACEFHJNP", - "ACEFHLMN", - "ACEFHLMP", - "ACEFHLNP", - "ACEFHMNP", - "ACEFIJLM", - "ACEFIJLN", - "ACEFIJLP", - "ACEFIJMN", - "ACEFIJMP", - "ACEFIJNP", - "ACEFILMN", - "ACEFILMP", - "ACEFILNP", - "ACEFIMNP", - "ACEFJLMN", - "ACEFJLMP", - "ACEFJLNP", - "ACEFJMNP", - "ACEFLMNP", - "ACEGHIJL", - "ACEGHIJM", - "ACEGHIJN", - "ACEGHIJP", - "ACEGHILM", - "ACEGHILN", - "ACEGHILP", - "ACEGHIMN", - "ACEGHIMP", - "ACEGHINP", - "ACEGHJLM", - "ACEGHJLN", - "ACEGHJLP", - "ACEGHJMN", - "ACEGHJMP", - "ACEGHJNP", - "ACEGHLMN", - "ACEGHLMP", - "ACEGHLNP", - "ACEGHMNP", - "ACEGIJLM", - "ACEGIJLN", - "ACEGIJLP", - "ACEGIJMN", - "ACEGIJMP", - "ACEGIJNP", - "ACEGILMN", - "ACEGILMP", - "ACEGILNP", - "ACEGIMNP", - "ACEGJLMN", - "ACEGJLMP", - "ACEGJLNP", - "ACEGJMNP", - "ACEGLMNP", - "ACEHIJLM", - "ACEHIJLN", - "ACEHIJLP", - "ACEHIJMN", - "ACEHIJMP", - "ACEHIJNP", - "ACEHILMN", - "ACEHILMP", - "ACEHILNP", - "ACEHIMNP", - "ACEHJLMN", - "ACEHJLMP", - "ACEHJLNP", - "ACEHJMNP", - "ACEHLMNP", - "ACEIJLMN", - "ACEIJLMP", - "ACEIJLNP", - "ACEIJMNP", - "ACEILMNP", - "ACEJLMNP", - "ACFGHIJL", - "ACFGHIJM", - "ACFGHIJN", - "ACFGHIJP", - "ACFGHILM", - "ACFGHILN", - "ACFGHILP", - "ACFGHIMN", - "ACFGHIMP", - "ACFGHINP", - "ACFGHJLM", - "ACFGHJLN", - "ACFGHJLP", - "ACFGHJMN", - "ACFGHJMP", - "ACFGHJNP", - "ACFGHLMN", - "ACFGHLMP", - "ACFGHLNP", - "ACFGHMNP", - "ACFGIJLM", - "ACFGIJLN", - "ACFGIJLP", - "ACFGIJMN", - "ACFGIJMP", - "ACFGIJNP", - "ACFGILMN", - "ACFGILMP", - "ACFGILNP", - "ACFGIMNP", - "ACFGJLMN", - "ACFGJLMP", - "ACFGJLNP", - "ACFGJMNP", - "ACFGLMNP", - "ACFHIJLM", - "ACFHIJLN", - "ACFHIJLP", - "ACFHIJMN", - "ACFHIJMP", - "ACFHIJNP", - "ACFHILMN", - "ACFHILMP", - "ACFHILNP", - "ACFHIMNP", - "ACFHJLMN", - "ACFHJLMP", - "ACFHJLNP", - "ACFHJMNP", - "ACFHLMNP", - "ACFIJLMN", - "ACFIJLMP", - "ACFIJLNP", - "ACFIJMNP", - "ACFILMNP", - "ACFJLMNP", - "ACGHIJLM", - "ACGHIJLN", - "ACGHIJLP", - "ACGHIJMN", - "ACGHIJMP", - "ACGHIJNP", - "ACGHILMN", - "ACGHILMP", - "ACGHILNP", - "ACGHIMNP", - "ACGHJLMN", - "ACGHJLMP", - "ACGHJLNP", - "ACGHJMNP", - "ACGHLMNP", - "ACGIJLMN", - "ACGIJLMP", - "ACGIJLNP", - "ACGIJMNP", - "ACGILMNP", - "ACGJLMNP", - "ACHIJLMN", - "ACHIJLMP", - "ACHIJLNP", - "ACHIJMNP", - "ACHILMNP", - "ACHJLMNP", - "ACIJLMNP", - "AEFGHIJL", - "AEFGHIJM", - "AEFGHIJN", - "AEFGHIJP", - "AEFGHILM", - "AEFGHILN", - "AEFGHILP", - "AEFGHIMN", - "AEFGHIMP", - "AEFGHINP", - "AEFGHJLM", - "AEFGHJLN", - "AEFGHJLP", - "AEFGHJMN", - "AEFGHJMP", - "AEFGHJNP", - "AEFGHLMN", - "AEFGHLMP", - "AEFGHLNP", - "AEFGHMNP", - "AEFGIJLM", - "AEFGIJLN", - "AEFGIJLP", - "AEFGIJMN", - "AEFGIJMP", - "AEFGIJNP", - "AEFGILMN", - "AEFGILMP", - "AEFGILNP", - "AEFGIMNP", - "AEFGJLMN", - "AEFGJLMP", - "AEFGJLNP", - "AEFGJMNP", - "AEFGLMNP", - "AEFHIJLM", - "AEFHIJLN", - "AEFHIJLP", - "AEFHIJMN", - "AEFHIJMP", - "AEFHIJNP", - "AEFHILMN", - "AEFHILMP", - "AEFHILNP", - "AEFHIMNP", - "AEFHJLMN", - "AEFHJLMP", - "AEFHJLNP", - "AEFHJMNP", - "AEFHLMNP", - "AEFIJLMN", - "AEFIJLMP", - "AEFIJLNP", - "AEFIJMNP", - "AEFILMNP", - "AEFJLMNP", - "AEGHIJLM", - "AEGHIJLN", - "AEGHIJLP", - "AEGHIJMN", - "AEGHIJMP", - "AEGHIJNP", - "AEGHILMN", - "AEGHILMP", - "AEGHILNP", - "AEGHIMNP", - "AEGHJLMN", - "AEGHJLMP", - "AEGHJLNP", - "AEGHJMNP", - "AEGHLMNP", - "AEGIJLMN", - "AEGIJLMP", - "AEGIJLNP", - "AEGIJMNP", - "AEGILMNP", - "AEGJLMNP", - "AEHIJLMN", - "AEHIJLMP", - "AEHIJLNP", - "AEHIJMNP", - "AEHILMNP", - "AEHJLMNP", - "AEIJLMNP", - "AFGHIJLM", - "AFGHIJLN", - "AFGHIJLP", - "AFGHIJMN", - "AFGHIJMP", - "AFGHIJNP", - "AFGHILMN", - "AFGHILMP", - "AFGHILNP", - "AFGHIMNP", - "AFGHJLMN", - "AFGHJLMP", - "AFGHJLNP", - "AFGHJMNP", - "AFGHLMNP", - "AFGIJLMN", - "AFGIJLMP", - "AFGIJLNP", - "AFGIJMNP", - "AFGILMNP", - "AFGJLMNP", - "AFHIJLMN", - "AFHIJLMP", - "AFHIJLNP", - "AFHIJMNP", - "AFHILMNP", - "AFHJLMNP", - "AFIJLMNP", - "AGHIJLMN", - "AGHIJLMP", - "AGHIJLNP", - "AGHIJMNP", - "AGHILMNP", - "AGHJLMNP", - "AGIJLMNP", - "AHIJLMNP", - "BCEFGHIJ", - "BCEFGHIL", - "BCEFGHIM", - "BCEFGHIN", - "BCEFGHIP", - "BCEFGHJL", - "BCEFGHJM", - "BCEFGHJN", - "BCEFGHJP", - "BCEFGHLM", - "BCEFGHLN", - "BCEFGHLP", - "BCEFGHMN", - "BCEFGHMP", - "BCEFGHNP", - "BCEFGIJL", - "BCEFGIJM", - "BCEFGIJN", - "BCEFGIJP", - "BCEFGILM", - "BCEFGILN", - "BCEFGILP", - "BCEFGIMN", - "BCEFGIMP", - "BCEFGINP", - "BCEFGJLM", - "BCEFGJLN", - "BCEFGJLP", - "BCEFGJMN", - "BCEFGJMP", - "BCEFGJNP", - "BCEFGLMN", - "BCEFGLMP", - "BCEFGLNP", - "BCEFGMNP", - "BCEFHIJL", - "BCEFHIJM", - "BCEFHIJN", - "BCEFHIJP", - "BCEFHILM", - "BCEFHILN", - "BCEFHILP", - "BCEFHIMN", - "BCEFHIMP", - "BCEFHINP", - "BCEFHJLM", - "BCEFHJLN", - "BCEFHJLP", - "BCEFHJMN", - "BCEFHJMP", - "BCEFHJNP", - "BCEFHLMN", - "BCEFHLMP", - "BCEFHLNP", - "BCEFHMNP", - "BCEFIJLM", - "BCEFIJLN", - "BCEFIJLP", - "BCEFIJMN", - "BCEFIJMP", - "BCEFIJNP", - "BCEFILMN", - "BCEFILMP", - "BCEFILNP", - "BCEFIMNP", - "BCEFJLMN", - "BCEFJLMP", - "BCEFJLNP", - "BCEFJMNP", - "BCEFLMNP", - "BCEGHIJL", - "BCEGHIJM", - "BCEGHIJN", - "BCEGHIJP", - "BCEGHILM", - "BCEGHILN", - "BCEGHILP", - "BCEGHIMN", - "BCEGHIMP", - "BCEGHINP", - "BCEGHJLM", - "BCEGHJLN", - "BCEGHJLP", - "BCEGHJMN", - "BCEGHJMP", - "BCEGHJNP", - "BCEGHLMN", - "BCEGHLMP", - "BCEGHLNP", - "BCEGHMNP", - "BCEGIJLM", - "BCEGIJLN", - "BCEGIJLP", - "BCEGIJMN", - "BCEGIJMP", - "BCEGIJNP", - "BCEGILMN", - "BCEGILMP", - "BCEGILNP", - "BCEGIMNP", - "BCEGJLMN", - "BCEGJLMP", - "BCEGJLNP", - "BCEGJMNP", - "BCEGLMNP", - "BCEHIJLM", - "BCEHIJLN", - "BCEHIJLP", - "BCEHIJMN", - "BCEHIJMP", - "BCEHIJNP", - "BCEHILMN", - "BCEHILMP", - "BCEHILNP", - "BCEHIMNP", - "BCEHJLMN", - "BCEHJLMP", - "BCEHJLNP", - "BCEHJMNP", - "BCEHLMNP", - "BCEIJLMN", - "BCEIJLMP", - "BCEIJLNP", - "BCEIJMNP", - "BCEILMNP", - "BCEJLMNP", - "BCFGHIJL", - "BCFGHIJM", - "BCFGHIJN", - "BCFGHIJP", - "BCFGHILM", - "BCFGHILN", - "BCFGHILP", - "BCFGHIMN", - "BCFGHIMP", - "BCFGHINP", - "BCFGHJLM", - "BCFGHJLN", - "BCFGHJLP", - "BCFGHJMN", - "BCFGHJMP", - "BCFGHJNP", - "BCFGHLMN", - "BCFGHLMP", - "BCFGHLNP", - "BCFGHMNP", - "BCFGIJLM", - "BCFGIJLN", - "BCFGIJLP", - "BCFGIJMN", - "BCFGIJMP", - "BCFGIJNP", - "BCFGILMN", - "BCFGILMP", - "BCFGILNP", - "BCFGIMNP", - "BCFGJLMN", - "BCFGJLMP", - "BCFGJLNP", - "BCFGJMNP", - "BCFGLMNP", - "BCFHIJLM", - "BCFHIJLN", - "BCFHIJLP", - "BCFHIJMN", - "BCFHIJMP", - "BCFHIJNP", - "BCFHILMN", - "BCFHILMP", - "BCFHILNP", - "BCFHIMNP", - "BCFHJLMN", - "BCFHJLMP", - "BCFHJLNP", - "BCFHJMNP", - "BCFHLMNP", - "BCFIJLMN", - "BCFIJLMP", - "BCFIJLNP", - "BCFIJMNP", - "BCFILMNP", - "BCFJLMNP", - "BCGHIJLM", - "BCGHIJLN", - "BCGHIJLP", - "BCGHIJMN", - "BCGHIJMP", - "BCGHIJNP", - "BCGHILMN", - "BCGHILMP", - "BCGHILNP", - "BCGHIMNP", - "BCGHJLMN", - "BCGHJLMP", - "BCGHJLNP", - "BCGHJMNP", - "BCGHLMNP", - "BCGIJLMN", - "BCGIJLMP", - "BCGIJLNP", - "BCGIJMNP", - "BCGILMNP", - "BCGJLMNP", - "BCHIJLMN", - "BCHIJLMP", - "BCHIJLNP", - "BCHIJMNP", - "BCHILMNP", - "BCHJLMNP", - "BCIJLMNP", - "BEFGHIJL", - "BEFGHIJM", - "BEFGHIJN", - "BEFGHIJP", - "BEFGHILM", - "BEFGHILN", - "BEFGHILP", - "BEFGHIMN", - "BEFGHIMP", - "BEFGHINP", - "BEFGHJLM", - "BEFGHJLN", - "BEFGHJLP", - "BEFGHJMN", - "BEFGHJMP", - "BEFGHJNP", - "BEFGHLMN", - "BEFGHLMP", - "BEFGHLNP", - "BEFGHMNP", - "BEFGIJLM", - "BEFGIJLN", - "BEFGIJLP", - "BEFGIJMN", - "BEFGIJMP", - "BEFGIJNP", - "BEFGILMN", - "BEFGILMP", - "BEFGILNP", - "BEFGIMNP", - "BEFGJLMN", - "BEFGJLMP", - "BEFGJLNP", - "BEFGJMNP", - "BEFGLMNP", - "BEFHIJLM", - "BEFHIJLN", - "BEFHIJLP", - "BEFHIJMN", - "BEFHIJMP", - "BEFHIJNP", - "BEFHILMN", - "BEFHILMP", - "BEFHILNP", - "BEFHIMNP", - "BEFHJLMN", - "BEFHJLMP", - "BEFHJLNP", - "BEFHJMNP", - "BEFHLMNP", - "BEFIJLMN", - "BEFIJLMP", - "BEFIJLNP", - "BEFIJMNP", - "BEFILMNP", - "BEFJLMNP", - "BEGHIJLM", - "BEGHIJLN", - "BEGHIJLP", - "BEGHIJMN", - "BEGHIJMP", - "BEGHIJNP", - "BEGHILMN", - "BEGHILMP", - "BEGHILNP", - "BEGHIMNP", - "BEGHJLMN", - "BEGHJLMP", - "BEGHJLNP", - "BEGHJMNP", - "BEGHLMNP", - "BEGIJLMN", - "BEGIJLMP", - "BEGIJLNP", - "BEGIJMNP", - "BEGILMNP", - "BEGJLMNP", - "BEHIJLMN", - "BEHIJLMP", - "BEHIJLNP", - "BEHIJMNP", - "BEHILMNP", - "BEHJLMNP", - "BEIJLMNP", - "BFGHIJLM", - "BFGHIJLN", - "BFGHIJLP", - "BFGHIJMN", - "BFGHIJMP", - "BFGHIJNP", - "BFGHILMN", - "BFGHILMP", - "BFGHILNP", - "BFGHIMNP", - "BFGHJLMN", - "BFGHJLMP", - "BFGHJLNP", - "BFGHJMNP", - "BFGHLMNP", - "BFGIJLMN", - "BFGIJLMP", - "BFGIJLNP", - "BFGIJMNP", - "BFGILMNP", - "BFGJLMNP", - "BFHIJLMN", - "BFHIJLMP", - "BFHIJLNP", - "BFHIJMNP", - "BFHILMNP", - "BFHJLMNP", - "BFIJLMNP", - "BGHIJLMN", - "BGHIJLMP", - "BGHIJLNP", - "BGHIJMNP", - "BGHILMNP", - "BGHJLMNP", - "BGIJLMNP", - "BHIJLMNP", - "CEFGHIJL", - "CEFGHIJM", - "CEFGHIJN", - "CEFGHIJP", - "CEFGHILM", - "CEFGHILN", - "CEFGHILP", - "CEFGHIMN", - "CEFGHIMP", - "CEFGHINP", - "CEFGHJLM", - "CEFGHJLN", - "CEFGHJLP", - "CEFGHJMN", - "CEFGHJMP", - "CEFGHJNP", - "CEFGHLMN", - "CEFGHLMP", - "CEFGHLNP", - "CEFGHMNP", - "CEFGIJLM", - "CEFGIJLN", - "CEFGIJLP", - "CEFGIJMN", - "CEFGIJMP", - "CEFGIJNP", - "CEFGILMN", - "CEFGILMP", - "CEFGILNP", - "CEFGIMNP", - "CEFGJLMN", - "CEFGJLMP", - "CEFGJLNP", - "CEFGJMNP", - "CEFGLMNP", - "CEFHIJLM", - "CEFHIJLN", - "CEFHIJLP", - "CEFHIJMN", - "CEFHIJMP", - "CEFHIJNP", - "CEFHILMN", - "CEFHILMP", - "CEFHILNP", - "CEFHIMNP", - "CEFHJLMN", - "CEFHJLMP", - "CEFHJLNP", - "CEFHJMNP", - "CEFHLMNP", - "CEFIJLMN", - "CEFIJLMP", - "CEFIJLNP", - "CEFIJMNP", - "CEFILMNP", - "CEFJLMNP", - "CEGHIJLM", - "CEGHIJLN", - "CEGHIJLP", - "CEGHIJMN", - "CEGHIJMP", - "CEGHIJNP", - "CEGHILMN", - "CEGHILMP", - "CEGHILNP", - "CEGHIMNP", - "CEGHJLMN", - "CEGHJLMP", - "CEGHJLNP", - "CEGHJMNP", - "CEGHLMNP", - "CEGIJLMN", - "CEGIJLMP", - "CEGIJLNP", - "CEGIJMNP", - "CEGILMNP", - "CEGJLMNP", - "CEHIJLMN", - "CEHIJLMP", - "CEHIJLNP", - "CEHIJMNP", - "CEHILMNP", - "CEHJLMNP", - "CEIJLMNP", - "CFGHIJLM", - "CFGHIJLN", - "CFGHIJLP", - "CFGHIJMN", - "CFGHIJMP", - "CFGHIJNP", - "CFGHILMN", - "CFGHILMP", - "CFGHILNP", - "CFGHIMNP", - "CFGHJLMN", - "CFGHJLMP", - "CFGHJLNP", - "CFGHJMNP", - "CFGHLMNP", - "CFGIJLMN", - "CFGIJLMP", - "CFGIJLNP", - "CFGIJMNP", - "CFGILMNP", - "CFGJLMNP", - "CFHIJLMN", - "CFHIJLMP", - "CFHIJLNP", - "CFHIJMNP", - "CFHILMNP", - "CFHJLMNP", - "CFIJLMNP", - "CGHIJLMN", - "CGHIJLMP", - "CGHIJLNP", - "CGHIJMNP", - "CGHILMNP", - "CGHJLMNP", - "CGIJLMNP", - "CHIJLMNP", - "EFGHIJLM", - "EFGHIJLN", - "EFGHIJLP", - "EFGHIJMN", - "EFGHIJMP", - "EFGHIJNP", - "EFGHILMN", - "EFGHILMP", - "EFGHILNP", - "EFGHIMNP", - "EFGHJLMN", - "EFGHJLMP", - "EFGHJLNP", - "EFGHJMNP", - "EFGHLMNP", - "EFGIJLMN", - "EFGIJLMP", - "EFGIJLNP", - "EFGIJMNP", - "EFGILMNP", - "EFGJLMNP", - "EFHIJLMN", - "EFHIJLMP", - "EFHIJLNP", - "EFHIJMNP", - "EFHILMNP", - "EFHJLMNP", - "EFIJLMNP", - "EGHIJLMN", - "EGHIJLMP", - "EGHIJLNP", - "EGHIJMNP", - "EGHILMNP", - "EGHJLMNP", - "EGIJLMNP", - "EHIJLMNP", - "FGHIJLMN", - "FGHIJLMP", - "FGHIJLNP", - "FGHIJMNP", - "FGHILMNP", - "FGHJLMNP", - "FGIJLMNP", - "FHIJLMNP", - "GHIJLMNP", - "ABCEFGHIJ", - "ABCEFGHIL", - "ABCEFGHIM", - "ABCEFGHIN", - "ABCEFGHIP", - "ABCEFGHJL", - "ABCEFGHJM", - "ABCEFGHJN", - "ABCEFGHJP", - "ABCEFGHLM", - "ABCEFGHLN", - "ABCEFGHLP", - "ABCEFGHMN", - "ABCEFGHMP", - "ABCEFGHNP", - "ABCEFGIJL", - "ABCEFGIJM", - "ABCEFGIJN", - "ABCEFGIJP", - "ABCEFGILM", - "ABCEFGILN", - "ABCEFGILP", - "ABCEFGIMN", - "ABCEFGIMP", - "ABCEFGINP", - "ABCEFGJLM", - "ABCEFGJLN", - "ABCEFGJLP", - "ABCEFGJMN", - "ABCEFGJMP", - "ABCEFGJNP", - "ABCEFGLMN", - "ABCEFGLMP", - "ABCEFGLNP", - "ABCEFGMNP", - "ABCEFHIJL", - "ABCEFHIJM", - "ABCEFHIJN", - "ABCEFHIJP", - "ABCEFHILM", - "ABCEFHILN", - "ABCEFHILP", - "ABCEFHIMN", - "ABCEFHIMP", - "ABCEFHINP", - "ABCEFHJLM", - "ABCEFHJLN", - "ABCEFHJLP", - "ABCEFHJMN", - "ABCEFHJMP", - "ABCEFHJNP", - "ABCEFHLMN", - "ABCEFHLMP", - "ABCEFHLNP", - "ABCEFHMNP", - "ABCEFIJLM", - "ABCEFIJLN", - "ABCEFIJLP", - "ABCEFIJMN", - "ABCEFIJMP", - "ABCEFIJNP", - "ABCEFILMN", - "ABCEFILMP", - "ABCEFILNP", - "ABCEFIMNP", - "ABCEFJLMN", - "ABCEFJLMP", - "ABCEFJLNP", - "ABCEFJMNP", - "ABCEFLMNP", - "ABCEGHIJL", - "ABCEGHIJM", - "ABCEGHIJN", - "ABCEGHIJP", - "ABCEGHILM", - "ABCEGHILN", - "ABCEGHILP", - "ABCEGHIMN", - "ABCEGHIMP", - "ABCEGHINP", - "ABCEGHJLM", - "ABCEGHJLN", - "ABCEGHJLP", - "ABCEGHJMN", - "ABCEGHJMP", - "ABCEGHJNP", - "ABCEGHLMN", - "ABCEGHLMP", - "ABCEGHLNP", - "ABCEGHMNP", - "ABCEGIJLM", - "ABCEGIJLN", - "ABCEGIJLP", - "ABCEGIJMN", - "ABCEGIJMP", - "ABCEGIJNP", - "ABCEGILMN", - "ABCEGILMP", - "ABCEGILNP", - "ABCEGIMNP", - "ABCEGJLMN", - "ABCEGJLMP", - "ABCEGJLNP", - "ABCEGJMNP", - "ABCEGLMNP", - "ABCEHIJLM", - "ABCEHIJLN", - "ABCEHIJLP", - "ABCEHIJMN", - "ABCEHIJMP", - "ABCEHIJNP", - "ABCEHILMN", - "ABCEHILMP", - "ABCEHILNP", - "ABCEHIMNP", - "ABCEHJLMN", - "ABCEHJLMP", - "ABCEHJLNP", - "ABCEHJMNP", - "ABCEHLMNP", - "ABCEIJLMN", - "ABCEIJLMP", - "ABCEIJLNP", - "ABCEIJMNP", - "ABCEILMNP", - "ABCEJLMNP", - "ABCFGHIJL", - "ABCFGHIJM", - "ABCFGHIJN", - "ABCFGHIJP", - "ABCFGHILM", - "ABCFGHILN", - "ABCFGHILP", - "ABCFGHIMN", - "ABCFGHIMP", - "ABCFGHINP", - "ABCFGHJLM", - "ABCFGHJLN", - "ABCFGHJLP", - "ABCFGHJMN", - "ABCFGHJMP", - "ABCFGHJNP", - "ABCFGHLMN", - "ABCFGHLMP", - "ABCFGHLNP", - "ABCFGHMNP", - "ABCFGIJLM", - "ABCFGIJLN", - "ABCFGIJLP", - "ABCFGIJMN", - "ABCFGIJMP", - "ABCFGIJNP", - "ABCFGILMN", - "ABCFGILMP", - "ABCFGILNP", - "ABCFGIMNP", - "ABCFGJLMN", - "ABCFGJLMP", - "ABCFGJLNP", - "ABCFGJMNP", - "ABCFGLMNP", - "ABCFHIJLM", - "ABCFHIJLN", - "ABCFHIJLP", - "ABCFHIJMN", - "ABCFHIJMP", - "ABCFHIJNP", - "ABCFHILMN", - "ABCFHILMP", - "ABCFHILNP", - "ABCFHIMNP", - "ABCFHJLMN", - "ABCFHJLMP", - "ABCFHJLNP", - "ABCFHJMNP", - "ABCFHLMNP", - "ABCFIJLMN", - "ABCFIJLMP", - "ABCFIJLNP", - "ABCFIJMNP", - "ABCFILMNP", - "ABCFJLMNP", - "ABCGHIJLM", - "ABCGHIJLN", - "ABCGHIJLP", - "ABCGHIJMN", - "ABCGHIJMP", - "ABCGHIJNP", - "ABCGHILMN", - "ABCGHILMP", - "ABCGHILNP", - "ABCGHIMNP", - "ABCGHJLMN", - "ABCGHJLMP", - "ABCGHJLNP", - "ABCGHJMNP", - "ABCGHLMNP", - "ABCGIJLMN", - "ABCGIJLMP", - "ABCGIJLNP", - "ABCGIJMNP", - "ABCGILMNP", - "ABCGJLMNP", - "ABCHIJLMN", - "ABCHIJLMP", - "ABCHIJLNP", - "ABCHIJMNP", - "ABCHILMNP", - "ABCHJLMNP", - "ABCIJLMNP", - "ABEFGHIJL", - "ABEFGHIJM", - "ABEFGHIJN", - "ABEFGHIJP", - "ABEFGHILM", - "ABEFGHILN", - "ABEFGHILP", - "ABEFGHIMN", - "ABEFGHIMP", - "ABEFGHINP", - "ABEFGHJLM", - "ABEFGHJLN", - "ABEFGHJLP", - "ABEFGHJMN", - "ABEFGHJMP", - "ABEFGHJNP", - "ABEFGHLMN", - "ABEFGHLMP", - "ABEFGHLNP", - "ABEFGHMNP", - "ABEFGIJLM", - "ABEFGIJLN", - "ABEFGIJLP", - "ABEFGIJMN", - "ABEFGIJMP", - "ABEFGIJNP", - "ABEFGILMN", - "ABEFGILMP", - "ABEFGILNP", - "ABEFGIMNP", - "ABEFGJLMN", - "ABEFGJLMP", - "ABEFGJLNP", - "ABEFGJMNP", - "ABEFGLMNP", - "ABEFHIJLM", - "ABEFHIJLN", - "ABEFHIJLP", - "ABEFHIJMN", - "ABEFHIJMP", - "ABEFHIJNP", - "ABEFHILMN", - "ABEFHILMP", - "ABEFHILNP", - "ABEFHIMNP", - "ABEFHJLMN", - "ABEFHJLMP", - "ABEFHJLNP", - "ABEFHJMNP", - "ABEFHLMNP", - "ABEFIJLMN", - "ABEFIJLMP", - "ABEFIJLNP", - "ABEFIJMNP", - "ABEFILMNP", - "ABEFJLMNP", - "ABEGHIJLM", - "ABEGHIJLN", - "ABEGHIJLP", - "ABEGHIJMN", - "ABEGHIJMP", - "ABEGHIJNP", - "ABEGHILMN", - "ABEGHILMP", - "ABEGHILNP", - "ABEGHIMNP", - "ABEGHJLMN", - "ABEGHJLMP", - "ABEGHJLNP", - "ABEGHJMNP", - "ABEGHLMNP", - "ABEGIJLMN", - "ABEGIJLMP", - "ABEGIJLNP", - "ABEGIJMNP", - "ABEGILMNP", - "ABEGJLMNP", - "ABEHIJLMN", - "ABEHIJLMP", - "ABEHIJLNP", - "ABEHIJMNP", - "ABEHILMNP", - "ABEHJLMNP", - "ABEIJLMNP", - "ABFGHIJLM", - "ABFGHIJLN", - "ABFGHIJLP", - "ABFGHIJMN", - "ABFGHIJMP", - "ABFGHIJNP", - "ABFGHILMN", - "ABFGHILMP", - "ABFGHILNP", - "ABFGHIMNP", - "ABFGHJLMN", - "ABFGHJLMP", - "ABFGHJLNP", - "ABFGHJMNP", - "ABFGHLMNP", - "ABFGIJLMN", - "ABFGIJLMP", - "ABFGIJLNP", - "ABFGIJMNP", - "ABFGILMNP", - "ABFGJLMNP", - "ABFHIJLMN", - "ABFHIJLMP", - "ABFHIJLNP", - "ABFHIJMNP", - "ABFHILMNP", - "ABFHJLMNP", - "ABFIJLMNP", - "ABGHIJLMN", - "ABGHIJLMP", - "ABGHIJLNP", - "ABGHIJMNP", - "ABGHILMNP", - "ABGHJLMNP", - "ABGIJLMNP", - "ABHIJLMNP", - "ACEFGHIJL", - "ACEFGHIJM", - "ACEFGHIJN", - "ACEFGHIJP", - "ACEFGHILM", - "ACEFGHILN", - "ACEFGHILP", - "ACEFGHIMN", - "ACEFGHIMP", - "ACEFGHINP", - "ACEFGHJLM", - "ACEFGHJLN", - "ACEFGHJLP", - "ACEFGHJMN", - "ACEFGHJMP", - "ACEFGHJNP", - "ACEFGHLMN", - "ACEFGHLMP", - "ACEFGHLNP", - "ACEFGHMNP", - "ACEFGIJLM", - "ACEFGIJLN", - "ACEFGIJLP", - "ACEFGIJMN", - "ACEFGIJMP", - "ACEFGIJNP", - "ACEFGILMN", - "ACEFGILMP", - "ACEFGILNP", - "ACEFGIMNP", - "ACEFGJLMN", - "ACEFGJLMP", - "ACEFGJLNP", - "ACEFGJMNP", - "ACEFGLMNP", - "ACEFHIJLM", - "ACEFHIJLN", - "ACEFHIJLP", - "ACEFHIJMN", - "ACEFHIJMP", - "ACEFHIJNP", - "ACEFHILMN", - "ACEFHILMP", - "ACEFHILNP", - "ACEFHIMNP", - "ACEFHJLMN", - "ACEFHJLMP", - "ACEFHJLNP", - "ACEFHJMNP", - "ACEFHLMNP", - "ACEFIJLMN", - "ACEFIJLMP", - "ACEFIJLNP", - "ACEFIJMNP", - "ACEFILMNP", - "ACEFJLMNP", - "ACEGHIJLM", - "ACEGHIJLN", - "ACEGHIJLP", - "ACEGHIJMN", - "ACEGHIJMP", - "ACEGHIJNP", - "ACEGHILMN", - "ACEGHILMP", - "ACEGHILNP", - "ACEGHIMNP", - "ACEGHJLMN", - "ACEGHJLMP", - "ACEGHJLNP", - "ACEGHJMNP", - "ACEGHLMNP", - "ACEGIJLMN", - "ACEGIJLMP", - "ACEGIJLNP", - "ACEGIJMNP", - "ACEGILMNP", - "ACEGJLMNP", - "ACEHIJLMN", - "ACEHIJLMP", - "ACEHIJLNP", - "ACEHIJMNP", - "ACEHILMNP", - "ACEHJLMNP", - "ACEIJLMNP", - "ACFGHIJLM", - "ACFGHIJLN", - "ACFGHIJLP", - "ACFGHIJMN", - "ACFGHIJMP", - "ACFGHIJNP", - "ACFGHILMN", - "ACFGHILMP", - "ACFGHILNP", - "ACFGHIMNP", - "ACFGHJLMN", - "ACFGHJLMP", - "ACFGHJLNP", - "ACFGHJMNP", - "ACFGHLMNP", - "ACFGIJLMN", - "ACFGIJLMP", - "ACFGIJLNP", - "ACFGIJMNP", - "ACFGILMNP", - "ACFGJLMNP", - "ACFHIJLMN", - "ACFHIJLMP", - "ACFHIJLNP", - "ACFHIJMNP", - "ACFHILMNP", - "ACFHJLMNP", - "ACFIJLMNP", - "ACGHIJLMN", - "ACGHIJLMP", - "ACGHIJLNP", - "ACGHIJMNP", - "ACGHILMNP", - "ACGHJLMNP", - "ACGIJLMNP", - "ACHIJLMNP", - "AEFGHIJLM", - "AEFGHIJLN", - "AEFGHIJLP", - "AEFGHIJMN", - "AEFGHIJMP", - "AEFGHIJNP", - "AEFGHILMN", - "AEFGHILMP", - "AEFGHILNP", - "AEFGHIMNP", - "AEFGHJLMN", - "AEFGHJLMP", - "AEFGHJLNP", - "AEFGHJMNP", - "AEFGHLMNP", - "AEFGIJLMN", - "AEFGIJLMP", - "AEFGIJLNP", - "AEFGIJMNP", - "AEFGILMNP", - "AEFGJLMNP", - "AEFHIJLMN", - "AEFHIJLMP", - "AEFHIJLNP", - "AEFHIJMNP", - "AEFHILMNP", - "AEFHJLMNP", - "AEFIJLMNP", - "AEGHIJLMN", - "AEGHIJLMP", - "AEGHIJLNP", - "AEGHIJMNP", - "AEGHILMNP", - "AEGHJLMNP", - "AEGIJLMNP", - "AEHIJLMNP", - "AFGHIJLMN", - "AFGHIJLMP", - "AFGHIJLNP", - "AFGHIJMNP", - "AFGHILMNP", - "AFGHJLMNP", - "AFGIJLMNP", - "AFHIJLMNP", - "AGHIJLMNP", - "BCEFGHIJL", - "BCEFGHIJM", - "BCEFGHIJN", - "BCEFGHIJP", - "BCEFGHILM", - "BCEFGHILN", - "BCEFGHILP", - "BCEFGHIMN", - "BCEFGHIMP", - "BCEFGHINP", - "BCEFGHJLM", - "BCEFGHJLN", - "BCEFGHJLP", - "BCEFGHJMN", - "BCEFGHJMP", - "BCEFGHJNP", - "BCEFGHLMN", - "BCEFGHLMP", - "BCEFGHLNP", - "BCEFGHMNP", - "BCEFGIJLM", - "BCEFGIJLN", - "BCEFGIJLP", - "BCEFGIJMN", - "BCEFGIJMP", - "BCEFGIJNP", - "BCEFGILMN", - "BCEFGILMP", - "BCEFGILNP", - "BCEFGIMNP", - "BCEFGJLMN", - "BCEFGJLMP", - "BCEFGJLNP", - "BCEFGJMNP", - "BCEFGLMNP", - "BCEFHIJLM", - "BCEFHIJLN", - "BCEFHIJLP", - "BCEFHIJMN", - "BCEFHIJMP", - "BCEFHIJNP", - "BCEFHILMN", - "BCEFHILMP", - "BCEFHILNP", - "BCEFHIMNP", - "BCEFHJLMN", - "BCEFHJLMP", - "BCEFHJLNP", - "BCEFHJMNP", - "BCEFHLMNP", - "BCEFIJLMN", - "BCEFIJLMP", - "BCEFIJLNP", - "BCEFIJMNP", - "BCEFILMNP", - "BCEFJLMNP", - "BCEGHIJLM", - "BCEGHIJLN", - "BCEGHIJLP", - "BCEGHIJMN", - "BCEGHIJMP", - "BCEGHIJNP", - "BCEGHILMN", - "BCEGHILMP", - "BCEGHILNP", - "BCEGHIMNP", - "BCEGHJLMN", - "BCEGHJLMP", - "BCEGHJLNP", - "BCEGHJMNP", - "BCEGHLMNP", - "BCEGIJLMN", - "BCEGIJLMP", - "BCEGIJLNP", - "BCEGIJMNP", - "BCEGILMNP", - "BCEGJLMNP", - "BCEHIJLMN", - "BCEHIJLMP", - "BCEHIJLNP", - "BCEHIJMNP", - "BCEHILMNP", - "BCEHJLMNP", - "BCEIJLMNP", - "BCFGHIJLM", - "BCFGHIJLN", - "BCFGHIJLP", - "BCFGHIJMN", - "BCFGHIJMP", - "BCFGHIJNP", - "BCFGHILMN", - "BCFGHILMP", - "BCFGHILNP", - "BCFGHIMNP", - "BCFGHJLMN", - "BCFGHJLMP", - "BCFGHJLNP", - "BCFGHJMNP", - "BCFGHLMNP", - "BCFGIJLMN", - "BCFGIJLMP", - "BCFGIJLNP", - "BCFGIJMNP", - "BCFGILMNP", - "BCFGJLMNP", - "BCFHIJLMN", - "BCFHIJLMP", - "BCFHIJLNP", - "BCFHIJMNP", - "BCFHILMNP", - "BCFHJLMNP", - "BCFIJLMNP", - "BCGHIJLMN", - "BCGHIJLMP", - "BCGHIJLNP", - "BCGHIJMNP", - "BCGHILMNP", - "BCGHJLMNP", - "BCGIJLMNP", - "BCHIJLMNP", - "BEFGHIJLM", - "BEFGHIJLN", - "BEFGHIJLP", - "BEFGHIJMN", - "BEFGHIJMP", - "BEFGHIJNP", - "BEFGHILMN", - "BEFGHILMP", - "BEFGHILNP", - "BEFGHIMNP", - "BEFGHJLMN", - "BEFGHJLMP", - "BEFGHJLNP", - "BEFGHJMNP", - "BEFGHLMNP", - "BEFGIJLMN", - "BEFGIJLMP", - "BEFGIJLNP", - "BEFGIJMNP", - "BEFGILMNP", - "BEFGJLMNP", - "BEFHIJLMN", - "BEFHIJLMP", - "BEFHIJLNP", - "BEFHIJMNP", - "BEFHILMNP", - "BEFHJLMNP", - "BEFIJLMNP", - "BEGHIJLMN", - "BEGHIJLMP", - "BEGHIJLNP", - "BEGHIJMNP", - "BEGHILMNP", - "BEGHJLMNP", - "BEGIJLMNP", - "BEHIJLMNP", - "BFGHIJLMN", - "BFGHIJLMP", - "BFGHIJLNP", - "BFGHIJMNP", - "BFGHILMNP", - "BFGHJLMNP", - "BFGIJLMNP", - "BFHIJLMNP", - "BGHIJLMNP", - "CEFGHIJLM", - "CEFGHIJLN", - "CEFGHIJLP", - "CEFGHIJMN", - "CEFGHIJMP", - "CEFGHIJNP", - "CEFGHILMN", - "CEFGHILMP", - "CEFGHILNP", - "CEFGHIMNP", - "CEFGHJLMN", - "CEFGHJLMP", - "CEFGHJLNP", - "CEFGHJMNP", - "CEFGHLMNP", - "CEFGIJLMN", - "CEFGIJLMP", - "CEFGIJLNP", - "CEFGIJMNP", - "CEFGILMNP", - "CEFGJLMNP", - "CEFHIJLMN", - "CEFHIJLMP", - "CEFHIJLNP", - "CEFHIJMNP", - "CEFHILMNP", - "CEFHJLMNP", - "CEFIJLMNP", - "CEGHIJLMN", - "CEGHIJLMP", - "CEGHIJLNP", - "CEGHIJMNP", - "CEGHILMNP", - "CEGHJLMNP", - "CEGIJLMNP", - "CEHIJLMNP", - "CFGHIJLMN", - "CFGHIJLMP", - "CFGHIJLNP", - "CFGHIJMNP", - "CFGHILMNP", - "CFGHJLMNP", - "CFGIJLMNP", - "CFHIJLMNP", - "CGHIJLMNP", - "EFGHIJLMN", - "EFGHIJLMP", - "EFGHIJLNP", - "EFGHIJMNP", - "EFGHILMNP", - "EFGHJLMNP", - "EFGIJLMNP", - "EFHIJLMNP", - "EGHIJLMNP", - "FGHIJLMNP", - "ABCEFGHIJL", - "ABCEFGHIJM", - "ABCEFGHIJN", - "ABCEFGHIJP", - "ABCEFGHILM", - "ABCEFGHILN", - "ABCEFGHILP", - "ABCEFGHIMN", - "ABCEFGHIMP", - "ABCEFGHINP", - "ABCEFGHJLM", - "ABCEFGHJLN", - "ABCEFGHJLP", - "ABCEFGHJMN", - "ABCEFGHJMP", - "ABCEFGHJNP", - "ABCEFGHLMN", - "ABCEFGHLMP", - "ABCEFGHLNP", - "ABCEFGHMNP", - "ABCEFGIJLM", - "ABCEFGIJLN", - "ABCEFGIJLP", - "ABCEFGIJMN", - "ABCEFGIJMP", - "ABCEFGIJNP", - "ABCEFGILMN", - "ABCEFGILMP", - "ABCEFGILNP", - "ABCEFGIMNP", - "ABCEFGJLMN", - "ABCEFGJLMP", - "ABCEFGJLNP", - "ABCEFGJMNP", - "ABCEFGLMNP", - "ABCEFHIJLM", - "ABCEFHIJLN", - "ABCEFHIJLP", - "ABCEFHIJMN", - "ABCEFHIJMP", - "ABCEFHIJNP", - "ABCEFHILMN", - "ABCEFHILMP", - "ABCEFHILNP", - "ABCEFHIMNP", - "ABCEFHJLMN", - "ABCEFHJLMP", - "ABCEFHJLNP", - "ABCEFHJMNP", - "ABCEFHLMNP", - "ABCEFIJLMN", - "ABCEFIJLMP", - "ABCEFIJLNP", - "ABCEFIJMNP", - "ABCEFILMNP", - "ABCEFJLMNP", - "ABCEGHIJLM", - "ABCEGHIJLN", - "ABCEGHIJLP", - "ABCEGHIJMN", - "ABCEGHIJMP", - "ABCEGHIJNP", - "ABCEGHILMN", - "ABCEGHILMP", - "ABCEGHILNP", - "ABCEGHIMNP", - "ABCEGHJLMN", - "ABCEGHJLMP", - "ABCEGHJLNP", - "ABCEGHJMNP", - "ABCEGHLMNP", - "ABCEGIJLMN", - "ABCEGIJLMP", - "ABCEGIJLNP", - "ABCEGIJMNP", - "ABCEGILMNP", - "ABCEGJLMNP", - "ABCEHIJLMN", - "ABCEHIJLMP", - "ABCEHIJLNP", - "ABCEHIJMNP", - "ABCEHILMNP", - "ABCEHJLMNP", - "ABCEIJLMNP", - "ABCFGHIJLM", - "ABCFGHIJLN", - "ABCFGHIJLP", - "ABCFGHIJMN", - "ABCFGHIJMP", - "ABCFGHIJNP", - "ABCFGHILMN", - "ABCFGHILMP", - "ABCFGHILNP", - "ABCFGHIMNP", - "ABCFGHJLMN", - "ABCFGHJLMP", - "ABCFGHJLNP", - "ABCFGHJMNP", - "ABCFGHLMNP", - "ABCFGIJLMN", - "ABCFGIJLMP", - "ABCFGIJLNP", - "ABCFGIJMNP", - "ABCFGILMNP", - "ABCFGJLMNP", - "ABCFHIJLMN", - "ABCFHIJLMP", - "ABCFHIJLNP", - "ABCFHIJMNP", - "ABCFHILMNP", - "ABCFHJLMNP", - "ABCFIJLMNP", - "ABCGHIJLMN", - "ABCGHIJLMP", - "ABCGHIJLNP", - "ABCGHIJMNP", - "ABCGHILMNP", - "ABCGHJLMNP", - "ABCGIJLMNP", - "ABCHIJLMNP", - "ABEFGHIJLM", - "ABEFGHIJLN", - "ABEFGHIJLP", - "ABEFGHIJMN", - "ABEFGHIJMP", - "ABEFGHIJNP", - "ABEFGHILMN", - "ABEFGHILMP", - "ABEFGHILNP", - "ABEFGHIMNP", - "ABEFGHJLMN", - "ABEFGHJLMP", - "ABEFGHJLNP", - "ABEFGHJMNP", - "ABEFGHLMNP", - "ABEFGIJLMN", - "ABEFGIJLMP", - "ABEFGIJLNP", - "ABEFGIJMNP", - "ABEFGILMNP", - "ABEFGJLMNP", - "ABEFHIJLMN", - "ABEFHIJLMP", - "ABEFHIJLNP", - "ABEFHIJMNP", - "ABEFHILMNP", - "ABEFHJLMNP", - "ABEFIJLMNP", - "ABEGHIJLMN", - "ABEGHIJLMP", - "ABEGHIJLNP", - "ABEGHIJMNP", - "ABEGHILMNP", - "ABEGHJLMNP", - "ABEGIJLMNP", - "ABEHIJLMNP", - "ABFGHIJLMN", - "ABFGHIJLMP", - "ABFGHIJLNP", - "ABFGHIJMNP", - "ABFGHILMNP", - "ABFGHJLMNP", - "ABFGIJLMNP", - "ABFHIJLMNP", - "ABGHIJLMNP", - "ACEFGHIJLM", - "ACEFGHIJLN", - "ACEFGHIJLP", - "ACEFGHIJMN", - "ACEFGHIJMP", - "ACEFGHIJNP", - "ACEFGHILMN", - "ACEFGHILMP", - "ACEFGHILNP", - "ACEFGHIMNP", - "ACEFGHJLMN", - "ACEFGHJLMP", - "ACEFGHJLNP", - "ACEFGHJMNP", - "ACEFGHLMNP", - "ACEFGIJLMN", - "ACEFGIJLMP", - "ACEFGIJLNP", - "ACEFGIJMNP", - "ACEFGILMNP", - "ACEFGJLMNP", - "ACEFHIJLMN", - "ACEFHIJLMP", - "ACEFHIJLNP", - "ACEFHIJMNP", - "ACEFHILMNP", - "ACEFHJLMNP", - "ACEFIJLMNP", - "ACEGHIJLMN", - "ACEGHIJLMP", - "ACEGHIJLNP", - "ACEGHIJMNP", - "ACEGHILMNP", - "ACEGHJLMNP", - "ACEGIJLMNP", - "ACEHIJLMNP", - "ACFGHIJLMN", - "ACFGHIJLMP", - "ACFGHIJLNP", - "ACFGHIJMNP", - "ACFGHILMNP", - "ACFGHJLMNP", - "ACFGIJLMNP", - "ACFHIJLMNP", - "ACGHIJLMNP", - "AEFGHIJLMN", - "AEFGHIJLMP", - "AEFGHIJLNP", - "AEFGHIJMNP", - "AEFGHILMNP", - "AEFGHJLMNP", - "AEFGIJLMNP", - "AEFHIJLMNP", - "AEGHIJLMNP", - "AFGHIJLMNP", - "BCEFGHIJLM", - "BCEFGHIJLN", - "BCEFGHIJLP", - "BCEFGHIJMN", - "BCEFGHIJMP", - "BCEFGHIJNP", - "BCEFGHILMN", - "BCEFGHILMP", - "BCEFGHILNP", - "BCEFGHIMNP", - "BCEFGHJLMN", - "BCEFGHJLMP", - "BCEFGHJLNP", - "BCEFGHJMNP", - "BCEFGHLMNP", - "BCEFGIJLMN", - "BCEFGIJLMP", - "BCEFGIJLNP", - "BCEFGIJMNP", - "BCEFGILMNP", - "BCEFGJLMNP", - "BCEFHIJLMN", - "BCEFHIJLMP", - "BCEFHIJLNP", - "BCEFHIJMNP", - "BCEFHILMNP", - "BCEFHJLMNP", - "BCEFIJLMNP", - "BCEGHIJLMN", - "BCEGHIJLMP", - "BCEGHIJLNP", - "BCEGHIJMNP", - "BCEGHILMNP", - "BCEGHJLMNP", - "BCEGIJLMNP", - "BCEHIJLMNP", - "BCFGHIJLMN", - "BCFGHIJLMP", - "BCFGHIJLNP", - "BCFGHIJMNP", - "BCFGHILMNP", - "BCFGHJLMNP", - "BCFGIJLMNP", - "BCFHIJLMNP", - "BCGHIJLMNP", - "BEFGHIJLMN", - "BEFGHIJLMP", - "BEFGHIJLNP", - "BEFGHIJMNP", - "BEFGHILMNP", - "BEFGHJLMNP", - "BEFGIJLMNP", - "BEFHIJLMNP", - "BEGHIJLMNP", - "BFGHIJLMNP", - "CEFGHIJLMN", - "CEFGHIJLMP", - "CEFGHIJLNP", - "CEFGHIJMNP", - "CEFGHILMNP", - "CEFGHJLMNP", - "CEFGIJLMNP", - "CEFHIJLMNP", - "CEGHIJLMNP", - "CFGHIJLMNP", - "EFGHIJLMNP", - "ABCEFGHIJLM", - "ABCEFGHIJLN", - "ABCEFGHIJLP", - "ABCEFGHIJMN", - "ABCEFGHIJMP", - "ABCEFGHIJNP", - "ABCEFGHILMN", - "ABCEFGHILMP", - "ABCEFGHILNP", - "ABCEFGHIMNP", - "ABCEFGHJLMN", - "ABCEFGHJLMP", - "ABCEFGHJLNP", - "ABCEFGHJMNP", - "ABCEFGHLMNP", - "ABCEFGIJLMN", - "ABCEFGIJLMP", - "ABCEFGIJLNP", - "ABCEFGIJMNP", - "ABCEFGILMNP", - "ABCEFGJLMNP", - "ABCEFHIJLMN", - "ABCEFHIJLMP", - "ABCEFHIJLNP", - "ABCEFHIJMNP", - "ABCEFHILMNP", - "ABCEFHJLMNP", - "ABCEFIJLMNP", - "ABCEGHIJLMN", - "ABCEGHIJLMP", - "ABCEGHIJLNP", - "ABCEGHIJMNP", - "ABCEGHILMNP", - "ABCEGHJLMNP", - "ABCEGIJLMNP", - "ABCEHIJLMNP", - "ABCFGHIJLMN", - "ABCFGHIJLMP", - "ABCFGHIJLNP", - "ABCFGHIJMNP", - "ABCFGHILMNP", - "ABCFGHJLMNP", - "ABCFGIJLMNP", - "ABCFHIJLMNP", - "ABCGHIJLMNP", - "ABEFGHIJLMN", - "ABEFGHIJLMP", - "ABEFGHIJLNP", - "ABEFGHIJMNP", - "ABEFGHILMNP", - "ABEFGHJLMNP", - "ABEFGIJLMNP", - "ABEFHIJLMNP", - "ABEGHIJLMNP", - "ABFGHIJLMNP", - "ACEFGHIJLMN", - "ACEFGHIJLMP", - "ACEFGHIJLNP", - "ACEFGHIJMNP", - "ACEFGHILMNP", - "ACEFGHJLMNP", - "ACEFGIJLMNP", - "ACEFHIJLMNP", - "ACEGHIJLMNP", - "ACFGHIJLMNP", - "AEFGHIJLMNP", - "BCEFGHIJLMN", - "BCEFGHIJLMP", - "BCEFGHIJLNP", - "BCEFGHIJMNP", - "BCEFGHILMNP", - "BCEFGHJLMNP", - "BCEFGIJLMNP", - "BCEFHIJLMNP", - "BCEGHIJLMNP", - "BCFGHIJLMNP", - "BEFGHIJLMNP", - "CEFGHIJLMNP", - "ABCEFGHIJLMN", - "ABCEFGHIJLMP", - "ABCEFGHIJLNP", - "ABCEFGHIJMNP", - "ABCEFGHILMNP", - "ABCEFGHJLMNP", - "ABCEFGIJLMNP", - "ABCEFHIJLMNP", - "ABCEGHIJLMNP", - "ABCFGHIJLMNP", - "ABEFGHIJLMNP", - "ACEFGHIJLMNP", - "BCEFGHIJLMNP", - "ABCEFGHIJLMNP" - ] -} +{ + "requirement_types": [ + "A", + "B", + "C", + "E", + "F", + "G", + "H", + "I", + "J", + "L", + "M", + "N", + "P", + "AB", + "AC", + "AE", + "AF", + "AG", + "AH", + "AI", + "AJ", + "AL", + "AM", + "AN", + "AP", + "BC", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BP", + "CE", + "CF", + "CG", + "CH", + "CI", + "CJ", + "CL", + "CM", + "CN", + "CP", + "EF", + "EG", + "EH", + "EI", + "EJ", + "EL", + "EM", + "EN", + "EP", + "FG", + "FH", + "FI", + "FJ", + "FL", + "FM", + "FN", + "FP", + "GH", + "GI", + "GJ", + "GL", + "GM", + "GN", + "GP", + "HI", + "HJ", + "HL", + "HM", + "HN", + "HP", + "IJ", + "IL", + "IM", + "IN", + "IP", + "JL", + "JM", + "JN", + "JP", + "LM", + "LN", + "LP", + "MN", + "MP", + "NP", + "ABC", + "ABE", + "ABF", + "ABG", + "ABH", + "ABI", + "ABJ", + "ABL", + "ABM", + "ABN", + "ABP", + "ACE", + "ACF", + "ACG", + "ACH", + "ACI", + "ACJ", + "ACL", + "ACM", + "ACN", + "ACP", + "AEF", + "AEG", + "AEH", + "AEI", + "AEJ", + "AEL", + "AEM", + "AEN", + "AEP", + "AFG", + "AFH", + "AFI", + "AFJ", + "AFL", + "AFM", + "AFN", + "AFP", + "AGH", + "AGI", + "AGJ", + "AGL", + "AGM", + "AGN", + "AGP", + "AHI", + "AHJ", + "AHL", + "AHM", + "AHN", + "AHP", + "AIJ", + "AIL", + "AIM", + "AIN", + "AIP", + "AJL", + "AJM", + "AJN", + "AJP", + "ALM", + "ALN", + "ALP", + "AMN", + "AMP", + "ANP", + "BCE", + "BCF", + "BCG", + "BCH", + "BCI", + "BCJ", + "BCL", + "BCM", + "BCN", + "BCP", + "BEF", + "BEG", + "BEH", + "BEI", + "BEJ", + "BEL", + "BEM", + "BEN", + "BEP", + "BFG", + "BFH", + "BFI", + "BFJ", + "BFL", + "BFM", + "BFN", + "BFP", + "BGH", + "BGI", + "BGJ", + "BGL", + "BGM", + "BGN", + "BGP", + "BHI", + "BHJ", + "BHL", + "BHM", + "BHN", + "BHP", + "BIJ", + "BIL", + "BIM", + "BIN", + "BIP", + "BJL", + "BJM", + "BJN", + "BJP", + "BLM", + "BLN", + "BLP", + "BMN", + "BMP", + "BNP", + "CEF", + "CEG", + "CEH", + "CEI", + "CEJ", + "CEL", + "CEM", + "CEN", + "CEP", + "CFG", + "CFH", + "CFI", + "CFJ", + "CFL", + "CFM", + "CFN", + "CFP", + "CGH", + "CGI", + "CGJ", + "CGL", + "CGM", + "CGN", + "CGP", + "CHI", + "CHJ", + "CHL", + "CHM", + "CHN", + "CHP", + "CIJ", + "CIL", + "CIM", + "CIN", + "CIP", + "CJL", + "CJM", + "CJN", + "CJP", + "CLM", + "CLN", + "CLP", + "CMN", + "CMP", + "CNP", + "EFG", + "EFH", + "EFI", + "EFJ", + "EFL", + "EFM", + "EFN", + "EFP", + "EGH", + "EGI", + "EGJ", + "EGL", + "EGM", + "EGN", + "EGP", + "EHI", + "EHJ", + "EHL", + "EHM", + "EHN", + "EHP", + "EIJ", + "EIL", + "EIM", + "EIN", + "EIP", + "EJL", + "EJM", + "EJN", + "EJP", + "ELM", + "ELN", + "ELP", + "EMN", + "EMP", + "ENP", + "FGH", + "FGI", + "FGJ", + "FGL", + "FGM", + "FGN", + "FGP", + "FHI", + "FHJ", + "FHL", + "FHM", + "FHN", + "FHP", + "FIJ", + "FIL", + "FIM", + "FIN", + "FIP", + "FJL", + "FJM", + "FJN", + "FJP", + "FLM", + "FLN", + "FLP", + "FMN", + "FMP", + "FNP", + "GHI", + "GHJ", + "GHL", + "GHM", + "GHN", + "GHP", + "GIJ", + "GIL", + "GIM", + "GIN", + "GIP", + "GJL", + "GJM", + "GJN", + "GJP", + "GLM", + "GLN", + "GLP", + "GMN", + "GMP", + "GNP", + "HIJ", + "HIL", + "HIM", + "HIN", + "HIP", + "HJL", + "HJM", + "HJN", + "HJP", + "HLM", + "HLN", + "HLP", + "HMN", + "HMP", + "HNP", + "IJL", + "IJM", + "IJN", + "IJP", + "ILM", + "ILN", + "ILP", + "IMN", + "IMP", + "INP", + "JLM", + "JLN", + "JLP", + "JMN", + "JMP", + "JNP", + "LMN", + "LMP", + "LNP", + "MNP", + "ABCE", + "ABCF", + "ABCG", + "ABCH", + "ABCI", + "ABCJ", + "ABCL", + "ABCM", + "ABCN", + "ABCP", + "ABEF", + "ABEG", + "ABEH", + "ABEI", + "ABEJ", + "ABEL", + "ABEM", + "ABEN", + "ABEP", + "ABFG", + "ABFH", + "ABFI", + "ABFJ", + "ABFL", + "ABFM", + "ABFN", + "ABFP", + "ABGH", + "ABGI", + "ABGJ", + "ABGL", + "ABGM", + "ABGN", + "ABGP", + "ABHI", + "ABHJ", + "ABHL", + "ABHM", + "ABHN", + "ABHP", + "ABIJ", + "ABIL", + "ABIM", + "ABIN", + "ABIP", + "ABJL", + "ABJM", + "ABJN", + "ABJP", + "ABLM", + "ABLN", + "ABLP", + "ABMN", + "ABMP", + "ABNP", + "ACEF", + "ACEG", + "ACEH", + "ACEI", + "ACEJ", + "ACEL", + "ACEM", + "ACEN", + "ACEP", + "ACFG", + "ACFH", + "ACFI", + "ACFJ", + "ACFL", + "ACFM", + "ACFN", + "ACFP", + "ACGH", + "ACGI", + "ACGJ", + "ACGL", + "ACGM", + "ACGN", + "ACGP", + "ACHI", + "ACHJ", + "ACHL", + "ACHM", + "ACHN", + "ACHP", + "ACIJ", + "ACIL", + "ACIM", + "ACIN", + "ACIP", + "ACJL", + "ACJM", + "ACJN", + "ACJP", + "ACLM", + "ACLN", + "ACLP", + "ACMN", + "ACMP", + "ACNP", + "AEFG", + "AEFH", + "AEFI", + "AEFJ", + "AEFL", + "AEFM", + "AEFN", + "AEFP", + "AEGH", + "AEGI", + "AEGJ", + "AEGL", + "AEGM", + "AEGN", + "AEGP", + "AEHI", + "AEHJ", + "AEHL", + "AEHM", + "AEHN", + "AEHP", + "AEIJ", + "AEIL", + "AEIM", + "AEIN", + "AEIP", + "AEJL", + "AEJM", + "AEJN", + "AEJP", + "AELM", + "AELN", + "AELP", + "AEMN", + "AEMP", + "AENP", + "AFGH", + "AFGI", + "AFGJ", + "AFGL", + "AFGM", + "AFGN", + "AFGP", + "AFHI", + "AFHJ", + "AFHL", + "AFHM", + "AFHN", + "AFHP", + "AFIJ", + "AFIL", + "AFIM", + "AFIN", + "AFIP", + "AFJL", + "AFJM", + "AFJN", + "AFJP", + "AFLM", + "AFLN", + "AFLP", + "AFMN", + "AFMP", + "AFNP", + "AGHI", + "AGHJ", + "AGHL", + "AGHM", + "AGHN", + "AGHP", + "AGIJ", + "AGIL", + "AGIM", + "AGIN", + "AGIP", + "AGJL", + "AGJM", + "AGJN", + "AGJP", + "AGLM", + "AGLN", + "AGLP", + "AGMN", + "AGMP", + "AGNP", + "AHIJ", + "AHIL", + "AHIM", + "AHIN", + "AHIP", + "AHJL", + "AHJM", + "AHJN", + "AHJP", + "AHLM", + "AHLN", + "AHLP", + "AHMN", + "AHMP", + "AHNP", + "AIJL", + "AIJM", + "AIJN", + "AIJP", + "AILM", + "AILN", + "AILP", + "AIMN", + "AIMP", + "AINP", + "AJLM", + "AJLN", + "AJLP", + "AJMN", + "AJMP", + "AJNP", + "ALMN", + "ALMP", + "ALNP", + "AMNP", + "BCEF", + "BCEG", + "BCEH", + "BCEI", + "BCEJ", + "BCEL", + "BCEM", + "BCEN", + "BCEP", + "BCFG", + "BCFH", + "BCFI", + "BCFJ", + "BCFL", + "BCFM", + "BCFN", + "BCFP", + "BCGH", + "BCGI", + "BCGJ", + "BCGL", + "BCGM", + "BCGN", + "BCGP", + "BCHI", + "BCHJ", + "BCHL", + "BCHM", + "BCHN", + "BCHP", + "BCIJ", + "BCIL", + "BCIM", + "BCIN", + "BCIP", + "BCJL", + "BCJM", + "BCJN", + "BCJP", + "BCLM", + "BCLN", + "BCLP", + "BCMN", + "BCMP", + "BCNP", + "BEFG", + "BEFH", + "BEFI", + "BEFJ", + "BEFL", + "BEFM", + "BEFN", + "BEFP", + "BEGH", + "BEGI", + "BEGJ", + "BEGL", + "BEGM", + "BEGN", + "BEGP", + "BEHI", + "BEHJ", + "BEHL", + "BEHM", + "BEHN", + "BEHP", + "BEIJ", + "BEIL", + "BEIM", + "BEIN", + "BEIP", + "BEJL", + "BEJM", + "BEJN", + "BEJP", + "BELM", + "BELN", + "BELP", + "BEMN", + "BEMP", + "BENP", + "BFGH", + "BFGI", + "BFGJ", + "BFGL", + "BFGM", + "BFGN", + "BFGP", + "BFHI", + "BFHJ", + "BFHL", + "BFHM", + "BFHN", + "BFHP", + "BFIJ", + "BFIL", + "BFIM", + "BFIN", + "BFIP", + "BFJL", + "BFJM", + "BFJN", + "BFJP", + "BFLM", + "BFLN", + "BFLP", + "BFMN", + "BFMP", + "BFNP", + "BGHI", + "BGHJ", + "BGHL", + "BGHM", + "BGHN", + "BGHP", + "BGIJ", + "BGIL", + "BGIM", + "BGIN", + "BGIP", + "BGJL", + "BGJM", + "BGJN", + "BGJP", + "BGLM", + "BGLN", + "BGLP", + "BGMN", + "BGMP", + "BGNP", + "BHIJ", + "BHIL", + "BHIM", + "BHIN", + "BHIP", + "BHJL", + "BHJM", + "BHJN", + "BHJP", + "BHLM", + "BHLN", + "BHLP", + "BHMN", + "BHMP", + "BHNP", + "BIJL", + "BIJM", + "BIJN", + "BIJP", + "BILM", + "BILN", + "BILP", + "BIMN", + "BIMP", + "BINP", + "BJLM", + "BJLN", + "BJLP", + "BJMN", + "BJMP", + "BJNP", + "BLMN", + "BLMP", + "BLNP", + "BMNP", + "CEFG", + "CEFH", + "CEFI", + "CEFJ", + "CEFL", + "CEFM", + "CEFN", + "CEFP", + "CEGH", + "CEGI", + "CEGJ", + "CEGL", + "CEGM", + "CEGN", + "CEGP", + "CEHI", + "CEHJ", + "CEHL", + "CEHM", + "CEHN", + "CEHP", + "CEIJ", + "CEIL", + "CEIM", + "CEIN", + "CEIP", + "CEJL", + "CEJM", + "CEJN", + "CEJP", + "CELM", + "CELN", + "CELP", + "CEMN", + "CEMP", + "CENP", + "CFGH", + "CFGI", + "CFGJ", + "CFGL", + "CFGM", + "CFGN", + "CFGP", + "CFHI", + "CFHJ", + "CFHL", + "CFHM", + "CFHN", + "CFHP", + "CFIJ", + "CFIL", + "CFIM", + "CFIN", + "CFIP", + "CFJL", + "CFJM", + "CFJN", + "CFJP", + "CFLM", + "CFLN", + "CFLP", + "CFMN", + "CFMP", + "CFNP", + "CGHI", + "CGHJ", + "CGHL", + "CGHM", + "CGHN", + "CGHP", + "CGIJ", + "CGIL", + "CGIM", + "CGIN", + "CGIP", + "CGJL", + "CGJM", + "CGJN", + "CGJP", + "CGLM", + "CGLN", + "CGLP", + "CGMN", + "CGMP", + "CGNP", + "CHIJ", + "CHIL", + "CHIM", + "CHIN", + "CHIP", + "CHJL", + "CHJM", + "CHJN", + "CHJP", + "CHLM", + "CHLN", + "CHLP", + "CHMN", + "CHMP", + "CHNP", + "CIJL", + "CIJM", + "CIJN", + "CIJP", + "CILM", + "CILN", + "CILP", + "CIMN", + "CIMP", + "CINP", + "CJLM", + "CJLN", + "CJLP", + "CJMN", + "CJMP", + "CJNP", + "CLMN", + "CLMP", + "CLNP", + "CMNP", + "EFGH", + "EFGI", + "EFGJ", + "EFGL", + "EFGM", + "EFGN", + "EFGP", + "EFHI", + "EFHJ", + "EFHL", + "EFHM", + "EFHN", + "EFHP", + "EFIJ", + "EFIL", + "EFIM", + "EFIN", + "EFIP", + "EFJL", + "EFJM", + "EFJN", + "EFJP", + "EFLM", + "EFLN", + "EFLP", + "EFMN", + "EFMP", + "EFNP", + "EGHI", + "EGHJ", + "EGHL", + "EGHM", + "EGHN", + "EGHP", + "EGIJ", + "EGIL", + "EGIM", + "EGIN", + "EGIP", + "EGJL", + "EGJM", + "EGJN", + "EGJP", + "EGLM", + "EGLN", + "EGLP", + "EGMN", + "EGMP", + "EGNP", + "EHIJ", + "EHIL", + "EHIM", + "EHIN", + "EHIP", + "EHJL", + "EHJM", + "EHJN", + "EHJP", + "EHLM", + "EHLN", + "EHLP", + "EHMN", + "EHMP", + "EHNP", + "EIJL", + "EIJM", + "EIJN", + "EIJP", + "EILM", + "EILN", + "EILP", + "EIMN", + "EIMP", + "EINP", + "EJLM", + "EJLN", + "EJLP", + "EJMN", + "EJMP", + "EJNP", + "ELMN", + "ELMP", + "ELNP", + "EMNP", + "FGHI", + "FGHJ", + "FGHL", + "FGHM", + "FGHN", + "FGHP", + "FGIJ", + "FGIL", + "FGIM", + "FGIN", + "FGIP", + "FGJL", + "FGJM", + "FGJN", + "FGJP", + "FGLM", + "FGLN", + "FGLP", + "FGMN", + "FGMP", + "FGNP", + "FHIJ", + "FHIL", + "FHIM", + "FHIN", + "FHIP", + "FHJL", + "FHJM", + "FHJN", + "FHJP", + "FHLM", + "FHLN", + "FHLP", + "FHMN", + "FHMP", + "FHNP", + "FIJL", + "FIJM", + "FIJN", + "FIJP", + "FILM", + "FILN", + "FILP", + "FIMN", + "FIMP", + "FINP", + "FJLM", + "FJLN", + "FJLP", + "FJMN", + "FJMP", + "FJNP", + "FLMN", + "FLMP", + "FLNP", + "FMNP", + "GHIJ", + "GHIL", + "GHIM", + "GHIN", + "GHIP", + "GHJL", + "GHJM", + "GHJN", + "GHJP", + "GHLM", + "GHLN", + "GHLP", + "GHMN", + "GHMP", + "GHNP", + "GIJL", + "GIJM", + "GIJN", + "GIJP", + "GILM", + "GILN", + "GILP", + "GIMN", + "GIMP", + "GINP", + "GJLM", + "GJLN", + "GJLP", + "GJMN", + "GJMP", + "GJNP", + "GLMN", + "GLMP", + "GLNP", + "GMNP", + "HIJL", + "HIJM", + "HIJN", + "HIJP", + "HILM", + "HILN", + "HILP", + "HIMN", + "HIMP", + "HINP", + "HJLM", + "HJLN", + "HJLP", + "HJMN", + "HJMP", + "HJNP", + "HLMN", + "HLMP", + "HLNP", + "HMNP", + "IJLM", + "IJLN", + "IJLP", + "IJMN", + "IJMP", + "IJNP", + "ILMN", + "ILMP", + "ILNP", + "IMNP", + "JLMN", + "JLMP", + "JLNP", + "JMNP", + "LMNP", + "ABCEF", + "ABCEG", + "ABCEH", + "ABCEI", + "ABCEJ", + "ABCEL", + "ABCEM", + "ABCEN", + "ABCEP", + "ABCFG", + "ABCFH", + "ABCFI", + "ABCFJ", + "ABCFL", + "ABCFM", + "ABCFN", + "ABCFP", + "ABCGH", + "ABCGI", + "ABCGJ", + "ABCGL", + "ABCGM", + "ABCGN", + "ABCGP", + "ABCHI", + "ABCHJ", + "ABCHL", + "ABCHM", + "ABCHN", + "ABCHP", + "ABCIJ", + "ABCIL", + "ABCIM", + "ABCIN", + "ABCIP", + "ABCJL", + "ABCJM", + "ABCJN", + "ABCJP", + "ABCLM", + "ABCLN", + "ABCLP", + "ABCMN", + "ABCMP", + "ABCNP", + "ABEFG", + "ABEFH", + "ABEFI", + "ABEFJ", + "ABEFL", + "ABEFM", + "ABEFN", + "ABEFP", + "ABEGH", + "ABEGI", + "ABEGJ", + "ABEGL", + "ABEGM", + "ABEGN", + "ABEGP", + "ABEHI", + "ABEHJ", + "ABEHL", + "ABEHM", + "ABEHN", + "ABEHP", + "ABEIJ", + "ABEIL", + "ABEIM", + "ABEIN", + "ABEIP", + "ABEJL", + "ABEJM", + "ABEJN", + "ABEJP", + "ABELM", + "ABELN", + "ABELP", + "ABEMN", + "ABEMP", + "ABENP", + "ABFGH", + "ABFGI", + "ABFGJ", + "ABFGL", + "ABFGM", + "ABFGN", + "ABFGP", + "ABFHI", + "ABFHJ", + "ABFHL", + "ABFHM", + "ABFHN", + "ABFHP", + "ABFIJ", + "ABFIL", + "ABFIM", + "ABFIN", + "ABFIP", + "ABFJL", + "ABFJM", + "ABFJN", + "ABFJP", + "ABFLM", + "ABFLN", + "ABFLP", + "ABFMN", + "ABFMP", + "ABFNP", + "ABGHI", + "ABGHJ", + "ABGHL", + "ABGHM", + "ABGHN", + "ABGHP", + "ABGIJ", + "ABGIL", + "ABGIM", + "ABGIN", + "ABGIP", + "ABGJL", + "ABGJM", + "ABGJN", + "ABGJP", + "ABGLM", + "ABGLN", + "ABGLP", + "ABGMN", + "ABGMP", + "ABGNP", + "ABHIJ", + "ABHIL", + "ABHIM", + "ABHIN", + "ABHIP", + "ABHJL", + "ABHJM", + "ABHJN", + "ABHJP", + "ABHLM", + "ABHLN", + "ABHLP", + "ABHMN", + "ABHMP", + "ABHNP", + "ABIJL", + "ABIJM", + "ABIJN", + "ABIJP", + "ABILM", + "ABILN", + "ABILP", + "ABIMN", + "ABIMP", + "ABINP", + "ABJLM", + "ABJLN", + "ABJLP", + "ABJMN", + "ABJMP", + "ABJNP", + "ABLMN", + "ABLMP", + "ABLNP", + "ABMNP", + "ACEFG", + "ACEFH", + "ACEFI", + "ACEFJ", + "ACEFL", + "ACEFM", + "ACEFN", + "ACEFP", + "ACEGH", + "ACEGI", + "ACEGJ", + "ACEGL", + "ACEGM", + "ACEGN", + "ACEGP", + "ACEHI", + "ACEHJ", + "ACEHL", + "ACEHM", + "ACEHN", + "ACEHP", + "ACEIJ", + "ACEIL", + "ACEIM", + "ACEIN", + "ACEIP", + "ACEJL", + "ACEJM", + "ACEJN", + "ACEJP", + "ACELM", + "ACELN", + "ACELP", + "ACEMN", + "ACEMP", + "ACENP", + "ACFGH", + "ACFGI", + "ACFGJ", + "ACFGL", + "ACFGM", + "ACFGN", + "ACFGP", + "ACFHI", + "ACFHJ", + "ACFHL", + "ACFHM", + "ACFHN", + "ACFHP", + "ACFIJ", + "ACFIL", + "ACFIM", + "ACFIN", + "ACFIP", + "ACFJL", + "ACFJM", + "ACFJN", + "ACFJP", + "ACFLM", + "ACFLN", + "ACFLP", + "ACFMN", + "ACFMP", + "ACFNP", + "ACGHI", + "ACGHJ", + "ACGHL", + "ACGHM", + "ACGHN", + "ACGHP", + "ACGIJ", + "ACGIL", + "ACGIM", + "ACGIN", + "ACGIP", + "ACGJL", + "ACGJM", + "ACGJN", + "ACGJP", + "ACGLM", + "ACGLN", + "ACGLP", + "ACGMN", + "ACGMP", + "ACGNP", + "ACHIJ", + "ACHIL", + "ACHIM", + "ACHIN", + "ACHIP", + "ACHJL", + "ACHJM", + "ACHJN", + "ACHJP", + "ACHLM", + "ACHLN", + "ACHLP", + "ACHMN", + "ACHMP", + "ACHNP", + "ACIJL", + "ACIJM", + "ACIJN", + "ACIJP", + "ACILM", + "ACILN", + "ACILP", + "ACIMN", + "ACIMP", + "ACINP", + "ACJLM", + "ACJLN", + "ACJLP", + "ACJMN", + "ACJMP", + "ACJNP", + "ACLMN", + "ACLMP", + "ACLNP", + "ACMNP", + "AEFGH", + "AEFGI", + "AEFGJ", + "AEFGL", + "AEFGM", + "AEFGN", + "AEFGP", + "AEFHI", + "AEFHJ", + "AEFHL", + "AEFHM", + "AEFHN", + "AEFHP", + "AEFIJ", + "AEFIL", + "AEFIM", + "AEFIN", + "AEFIP", + "AEFJL", + "AEFJM", + "AEFJN", + "AEFJP", + "AEFLM", + "AEFLN", + "AEFLP", + "AEFMN", + "AEFMP", + "AEFNP", + "AEGHI", + "AEGHJ", + "AEGHL", + "AEGHM", + "AEGHN", + "AEGHP", + "AEGIJ", + "AEGIL", + "AEGIM", + "AEGIN", + "AEGIP", + "AEGJL", + "AEGJM", + "AEGJN", + "AEGJP", + "AEGLM", + "AEGLN", + "AEGLP", + "AEGMN", + "AEGMP", + "AEGNP", + "AEHIJ", + "AEHIL", + "AEHIM", + "AEHIN", + "AEHIP", + "AEHJL", + "AEHJM", + "AEHJN", + "AEHJP", + "AEHLM", + "AEHLN", + "AEHLP", + "AEHMN", + "AEHMP", + "AEHNP", + "AEIJL", + "AEIJM", + "AEIJN", + "AEIJP", + "AEILM", + "AEILN", + "AEILP", + "AEIMN", + "AEIMP", + "AEINP", + "AEJLM", + "AEJLN", + "AEJLP", + "AEJMN", + "AEJMP", + "AEJNP", + "AELMN", + "AELMP", + "AELNP", + "AEMNP", + "AFGHI", + "AFGHJ", + "AFGHL", + "AFGHM", + "AFGHN", + "AFGHP", + "AFGIJ", + "AFGIL", + "AFGIM", + "AFGIN", + "AFGIP", + "AFGJL", + "AFGJM", + "AFGJN", + "AFGJP", + "AFGLM", + "AFGLN", + "AFGLP", + "AFGMN", + "AFGMP", + "AFGNP", + "AFHIJ", + "AFHIL", + "AFHIM", + "AFHIN", + "AFHIP", + "AFHJL", + "AFHJM", + "AFHJN", + "AFHJP", + "AFHLM", + "AFHLN", + "AFHLP", + "AFHMN", + "AFHMP", + "AFHNP", + "AFIJL", + "AFIJM", + "AFIJN", + "AFIJP", + "AFILM", + "AFILN", + "AFILP", + "AFIMN", + "AFIMP", + "AFINP", + "AFJLM", + "AFJLN", + "AFJLP", + "AFJMN", + "AFJMP", + "AFJNP", + "AFLMN", + "AFLMP", + "AFLNP", + "AFMNP", + "AGHIJ", + "AGHIL", + "AGHIM", + "AGHIN", + "AGHIP", + "AGHJL", + "AGHJM", + "AGHJN", + "AGHJP", + "AGHLM", + "AGHLN", + "AGHLP", + "AGHMN", + "AGHMP", + "AGHNP", + "AGIJL", + "AGIJM", + "AGIJN", + "AGIJP", + "AGILM", + "AGILN", + "AGILP", + "AGIMN", + "AGIMP", + "AGINP", + "AGJLM", + "AGJLN", + "AGJLP", + "AGJMN", + "AGJMP", + "AGJNP", + "AGLMN", + "AGLMP", + "AGLNP", + "AGMNP", + "AHIJL", + "AHIJM", + "AHIJN", + "AHIJP", + "AHILM", + "AHILN", + "AHILP", + "AHIMN", + "AHIMP", + "AHINP", + "AHJLM", + "AHJLN", + "AHJLP", + "AHJMN", + "AHJMP", + "AHJNP", + "AHLMN", + "AHLMP", + "AHLNP", + "AHMNP", + "AIJLM", + "AIJLN", + "AIJLP", + "AIJMN", + "AIJMP", + "AIJNP", + "AILMN", + "AILMP", + "AILNP", + "AIMNP", + "AJLMN", + "AJLMP", + "AJLNP", + "AJMNP", + "ALMNP", + "BCEFG", + "BCEFH", + "BCEFI", + "BCEFJ", + "BCEFL", + "BCEFM", + "BCEFN", + "BCEFP", + "BCEGH", + "BCEGI", + "BCEGJ", + "BCEGL", + "BCEGM", + "BCEGN", + "BCEGP", + "BCEHI", + "BCEHJ", + "BCEHL", + "BCEHM", + "BCEHN", + "BCEHP", + "BCEIJ", + "BCEIL", + "BCEIM", + "BCEIN", + "BCEIP", + "BCEJL", + "BCEJM", + "BCEJN", + "BCEJP", + "BCELM", + "BCELN", + "BCELP", + "BCEMN", + "BCEMP", + "BCENP", + "BCFGH", + "BCFGI", + "BCFGJ", + "BCFGL", + "BCFGM", + "BCFGN", + "BCFGP", + "BCFHI", + "BCFHJ", + "BCFHL", + "BCFHM", + "BCFHN", + "BCFHP", + "BCFIJ", + "BCFIL", + "BCFIM", + "BCFIN", + "BCFIP", + "BCFJL", + "BCFJM", + "BCFJN", + "BCFJP", + "BCFLM", + "BCFLN", + "BCFLP", + "BCFMN", + "BCFMP", + "BCFNP", + "BCGHI", + "BCGHJ", + "BCGHL", + "BCGHM", + "BCGHN", + "BCGHP", + "BCGIJ", + "BCGIL", + "BCGIM", + "BCGIN", + "BCGIP", + "BCGJL", + "BCGJM", + "BCGJN", + "BCGJP", + "BCGLM", + "BCGLN", + "BCGLP", + "BCGMN", + "BCGMP", + "BCGNP", + "BCHIJ", + "BCHIL", + "BCHIM", + "BCHIN", + "BCHIP", + "BCHJL", + "BCHJM", + "BCHJN", + "BCHJP", + "BCHLM", + "BCHLN", + "BCHLP", + "BCHMN", + "BCHMP", + "BCHNP", + "BCIJL", + "BCIJM", + "BCIJN", + "BCIJP", + "BCILM", + "BCILN", + "BCILP", + "BCIMN", + "BCIMP", + "BCINP", + "BCJLM", + "BCJLN", + "BCJLP", + "BCJMN", + "BCJMP", + "BCJNP", + "BCLMN", + "BCLMP", + "BCLNP", + "BCMNP", + "BEFGH", + "BEFGI", + "BEFGJ", + "BEFGL", + "BEFGM", + "BEFGN", + "BEFGP", + "BEFHI", + "BEFHJ", + "BEFHL", + "BEFHM", + "BEFHN", + "BEFHP", + "BEFIJ", + "BEFIL", + "BEFIM", + "BEFIN", + "BEFIP", + "BEFJL", + "BEFJM", + "BEFJN", + "BEFJP", + "BEFLM", + "BEFLN", + "BEFLP", + "BEFMN", + "BEFMP", + "BEFNP", + "BEGHI", + "BEGHJ", + "BEGHL", + "BEGHM", + "BEGHN", + "BEGHP", + "BEGIJ", + "BEGIL", + "BEGIM", + "BEGIN", + "BEGIP", + "BEGJL", + "BEGJM", + "BEGJN", + "BEGJP", + "BEGLM", + "BEGLN", + "BEGLP", + "BEGMN", + "BEGMP", + "BEGNP", + "BEHIJ", + "BEHIL", + "BEHIM", + "BEHIN", + "BEHIP", + "BEHJL", + "BEHJM", + "BEHJN", + "BEHJP", + "BEHLM", + "BEHLN", + "BEHLP", + "BEHMN", + "BEHMP", + "BEHNP", + "BEIJL", + "BEIJM", + "BEIJN", + "BEIJP", + "BEILM", + "BEILN", + "BEILP", + "BEIMN", + "BEIMP", + "BEINP", + "BEJLM", + "BEJLN", + "BEJLP", + "BEJMN", + "BEJMP", + "BEJNP", + "BELMN", + "BELMP", + "BELNP", + "BEMNP", + "BFGHI", + "BFGHJ", + "BFGHL", + "BFGHM", + "BFGHN", + "BFGHP", + "BFGIJ", + "BFGIL", + "BFGIM", + "BFGIN", + "BFGIP", + "BFGJL", + "BFGJM", + "BFGJN", + "BFGJP", + "BFGLM", + "BFGLN", + "BFGLP", + "BFGMN", + "BFGMP", + "BFGNP", + "BFHIJ", + "BFHIL", + "BFHIM", + "BFHIN", + "BFHIP", + "BFHJL", + "BFHJM", + "BFHJN", + "BFHJP", + "BFHLM", + "BFHLN", + "BFHLP", + "BFHMN", + "BFHMP", + "BFHNP", + "BFIJL", + "BFIJM", + "BFIJN", + "BFIJP", + "BFILM", + "BFILN", + "BFILP", + "BFIMN", + "BFIMP", + "BFINP", + "BFJLM", + "BFJLN", + "BFJLP", + "BFJMN", + "BFJMP", + "BFJNP", + "BFLMN", + "BFLMP", + "BFLNP", + "BFMNP", + "BGHIJ", + "BGHIL", + "BGHIM", + "BGHIN", + "BGHIP", + "BGHJL", + "BGHJM", + "BGHJN", + "BGHJP", + "BGHLM", + "BGHLN", + "BGHLP", + "BGHMN", + "BGHMP", + "BGHNP", + "BGIJL", + "BGIJM", + "BGIJN", + "BGIJP", + "BGILM", + "BGILN", + "BGILP", + "BGIMN", + "BGIMP", + "BGINP", + "BGJLM", + "BGJLN", + "BGJLP", + "BGJMN", + "BGJMP", + "BGJNP", + "BGLMN", + "BGLMP", + "BGLNP", + "BGMNP", + "BHIJL", + "BHIJM", + "BHIJN", + "BHIJP", + "BHILM", + "BHILN", + "BHILP", + "BHIMN", + "BHIMP", + "BHINP", + "BHJLM", + "BHJLN", + "BHJLP", + "BHJMN", + "BHJMP", + "BHJNP", + "BHLMN", + "BHLMP", + "BHLNP", + "BHMNP", + "BIJLM", + "BIJLN", + "BIJLP", + "BIJMN", + "BIJMP", + "BIJNP", + "BILMN", + "BILMP", + "BILNP", + "BIMNP", + "BJLMN", + "BJLMP", + "BJLNP", + "BJMNP", + "BLMNP", + "CEFGH", + "CEFGI", + "CEFGJ", + "CEFGL", + "CEFGM", + "CEFGN", + "CEFGP", + "CEFHI", + "CEFHJ", + "CEFHL", + "CEFHM", + "CEFHN", + "CEFHP", + "CEFIJ", + "CEFIL", + "CEFIM", + "CEFIN", + "CEFIP", + "CEFJL", + "CEFJM", + "CEFJN", + "CEFJP", + "CEFLM", + "CEFLN", + "CEFLP", + "CEFMN", + "CEFMP", + "CEFNP", + "CEGHI", + "CEGHJ", + "CEGHL", + "CEGHM", + "CEGHN", + "CEGHP", + "CEGIJ", + "CEGIL", + "CEGIM", + "CEGIN", + "CEGIP", + "CEGJL", + "CEGJM", + "CEGJN", + "CEGJP", + "CEGLM", + "CEGLN", + "CEGLP", + "CEGMN", + "CEGMP", + "CEGNP", + "CEHIJ", + "CEHIL", + "CEHIM", + "CEHIN", + "CEHIP", + "CEHJL", + "CEHJM", + "CEHJN", + "CEHJP", + "CEHLM", + "CEHLN", + "CEHLP", + "CEHMN", + "CEHMP", + "CEHNP", + "CEIJL", + "CEIJM", + "CEIJN", + "CEIJP", + "CEILM", + "CEILN", + "CEILP", + "CEIMN", + "CEIMP", + "CEINP", + "CEJLM", + "CEJLN", + "CEJLP", + "CEJMN", + "CEJMP", + "CEJNP", + "CELMN", + "CELMP", + "CELNP", + "CEMNP", + "CFGHI", + "CFGHJ", + "CFGHL", + "CFGHM", + "CFGHN", + "CFGHP", + "CFGIJ", + "CFGIL", + "CFGIM", + "CFGIN", + "CFGIP", + "CFGJL", + "CFGJM", + "CFGJN", + "CFGJP", + "CFGLM", + "CFGLN", + "CFGLP", + "CFGMN", + "CFGMP", + "CFGNP", + "CFHIJ", + "CFHIL", + "CFHIM", + "CFHIN", + "CFHIP", + "CFHJL", + "CFHJM", + "CFHJN", + "CFHJP", + "CFHLM", + "CFHLN", + "CFHLP", + "CFHMN", + "CFHMP", + "CFHNP", + "CFIJL", + "CFIJM", + "CFIJN", + "CFIJP", + "CFILM", + "CFILN", + "CFILP", + "CFIMN", + "CFIMP", + "CFINP", + "CFJLM", + "CFJLN", + "CFJLP", + "CFJMN", + "CFJMP", + "CFJNP", + "CFLMN", + "CFLMP", + "CFLNP", + "CFMNP", + "CGHIJ", + "CGHIL", + "CGHIM", + "CGHIN", + "CGHIP", + "CGHJL", + "CGHJM", + "CGHJN", + "CGHJP", + "CGHLM", + "CGHLN", + "CGHLP", + "CGHMN", + "CGHMP", + "CGHNP", + "CGIJL", + "CGIJM", + "CGIJN", + "CGIJP", + "CGILM", + "CGILN", + "CGILP", + "CGIMN", + "CGIMP", + "CGINP", + "CGJLM", + "CGJLN", + "CGJLP", + "CGJMN", + "CGJMP", + "CGJNP", + "CGLMN", + "CGLMP", + "CGLNP", + "CGMNP", + "CHIJL", + "CHIJM", + "CHIJN", + "CHIJP", + "CHILM", + "CHILN", + "CHILP", + "CHIMN", + "CHIMP", + "CHINP", + "CHJLM", + "CHJLN", + "CHJLP", + "CHJMN", + "CHJMP", + "CHJNP", + "CHLMN", + "CHLMP", + "CHLNP", + "CHMNP", + "CIJLM", + "CIJLN", + "CIJLP", + "CIJMN", + "CIJMP", + "CIJNP", + "CILMN", + "CILMP", + "CILNP", + "CIMNP", + "CJLMN", + "CJLMP", + "CJLNP", + "CJMNP", + "CLMNP", + "EFGHI", + "EFGHJ", + "EFGHL", + "EFGHM", + "EFGHN", + "EFGHP", + "EFGIJ", + "EFGIL", + "EFGIM", + "EFGIN", + "EFGIP", + "EFGJL", + "EFGJM", + "EFGJN", + "EFGJP", + "EFGLM", + "EFGLN", + "EFGLP", + "EFGMN", + "EFGMP", + "EFGNP", + "EFHIJ", + "EFHIL", + "EFHIM", + "EFHIN", + "EFHIP", + "EFHJL", + "EFHJM", + "EFHJN", + "EFHJP", + "EFHLM", + "EFHLN", + "EFHLP", + "EFHMN", + "EFHMP", + "EFHNP", + "EFIJL", + "EFIJM", + "EFIJN", + "EFIJP", + "EFILM", + "EFILN", + "EFILP", + "EFIMN", + "EFIMP", + "EFINP", + "EFJLM", + "EFJLN", + "EFJLP", + "EFJMN", + "EFJMP", + "EFJNP", + "EFLMN", + "EFLMP", + "EFLNP", + "EFMNP", + "EGHIJ", + "EGHIL", + "EGHIM", + "EGHIN", + "EGHIP", + "EGHJL", + "EGHJM", + "EGHJN", + "EGHJP", + "EGHLM", + "EGHLN", + "EGHLP", + "EGHMN", + "EGHMP", + "EGHNP", + "EGIJL", + "EGIJM", + "EGIJN", + "EGIJP", + "EGILM", + "EGILN", + "EGILP", + "EGIMN", + "EGIMP", + "EGINP", + "EGJLM", + "EGJLN", + "EGJLP", + "EGJMN", + "EGJMP", + "EGJNP", + "EGLMN", + "EGLMP", + "EGLNP", + "EGMNP", + "EHIJL", + "EHIJM", + "EHIJN", + "EHIJP", + "EHILM", + "EHILN", + "EHILP", + "EHIMN", + "EHIMP", + "EHINP", + "EHJLM", + "EHJLN", + "EHJLP", + "EHJMN", + "EHJMP", + "EHJNP", + "EHLMN", + "EHLMP", + "EHLNP", + "EHMNP", + "EIJLM", + "EIJLN", + "EIJLP", + "EIJMN", + "EIJMP", + "EIJNP", + "EILMN", + "EILMP", + "EILNP", + "EIMNP", + "EJLMN", + "EJLMP", + "EJLNP", + "EJMNP", + "ELMNP", + "FGHIJ", + "FGHIL", + "FGHIM", + "FGHIN", + "FGHIP", + "FGHJL", + "FGHJM", + "FGHJN", + "FGHJP", + "FGHLM", + "FGHLN", + "FGHLP", + "FGHMN", + "FGHMP", + "FGHNP", + "FGIJL", + "FGIJM", + "FGIJN", + "FGIJP", + "FGILM", + "FGILN", + "FGILP", + "FGIMN", + "FGIMP", + "FGINP", + "FGJLM", + "FGJLN", + "FGJLP", + "FGJMN", + "FGJMP", + "FGJNP", + "FGLMN", + "FGLMP", + "FGLNP", + "FGMNP", + "FHIJL", + "FHIJM", + "FHIJN", + "FHIJP", + "FHILM", + "FHILN", + "FHILP", + "FHIMN", + "FHIMP", + "FHINP", + "FHJLM", + "FHJLN", + "FHJLP", + "FHJMN", + "FHJMP", + "FHJNP", + "FHLMN", + "FHLMP", + "FHLNP", + "FHMNP", + "FIJLM", + "FIJLN", + "FIJLP", + "FIJMN", + "FIJMP", + "FIJNP", + "FILMN", + "FILMP", + "FILNP", + "FIMNP", + "FJLMN", + "FJLMP", + "FJLNP", + "FJMNP", + "FLMNP", + "GHIJL", + "GHIJM", + "GHIJN", + "GHIJP", + "GHILM", + "GHILN", + "GHILP", + "GHIMN", + "GHIMP", + "GHINP", + "GHJLM", + "GHJLN", + "GHJLP", + "GHJMN", + "GHJMP", + "GHJNP", + "GHLMN", + "GHLMP", + "GHLNP", + "GHMNP", + "GIJLM", + "GIJLN", + "GIJLP", + "GIJMN", + "GIJMP", + "GIJNP", + "GILMN", + "GILMP", + "GILNP", + "GIMNP", + "GJLMN", + "GJLMP", + "GJLNP", + "GJMNP", + "GLMNP", + "HIJLM", + "HIJLN", + "HIJLP", + "HIJMN", + "HIJMP", + "HIJNP", + "HILMN", + "HILMP", + "HILNP", + "HIMNP", + "HJLMN", + "HJLMP", + "HJLNP", + "HJMNP", + "HLMNP", + "IJLMN", + "IJLMP", + "IJLNP", + "IJMNP", + "ILMNP", + "JLMNP", + "ABCEFG", + "ABCEFH", + "ABCEFI", + "ABCEFJ", + "ABCEFL", + "ABCEFM", + "ABCEFN", + "ABCEFP", + "ABCEGH", + "ABCEGI", + "ABCEGJ", + "ABCEGL", + "ABCEGM", + "ABCEGN", + "ABCEGP", + "ABCEHI", + "ABCEHJ", + "ABCEHL", + "ABCEHM", + "ABCEHN", + "ABCEHP", + "ABCEIJ", + "ABCEIL", + "ABCEIM", + "ABCEIN", + "ABCEIP", + "ABCEJL", + "ABCEJM", + "ABCEJN", + "ABCEJP", + "ABCELM", + "ABCELN", + "ABCELP", + "ABCEMN", + "ABCEMP", + "ABCENP", + "ABCFGH", + "ABCFGI", + "ABCFGJ", + "ABCFGL", + "ABCFGM", + "ABCFGN", + "ABCFGP", + "ABCFHI", + "ABCFHJ", + "ABCFHL", + "ABCFHM", + "ABCFHN", + "ABCFHP", + "ABCFIJ", + "ABCFIL", + "ABCFIM", + "ABCFIN", + "ABCFIP", + "ABCFJL", + "ABCFJM", + "ABCFJN", + "ABCFJP", + "ABCFLM", + "ABCFLN", + "ABCFLP", + "ABCFMN", + "ABCFMP", + "ABCFNP", + "ABCGHI", + "ABCGHJ", + "ABCGHL", + "ABCGHM", + "ABCGHN", + "ABCGHP", + "ABCGIJ", + "ABCGIL", + "ABCGIM", + "ABCGIN", + "ABCGIP", + "ABCGJL", + "ABCGJM", + "ABCGJN", + "ABCGJP", + "ABCGLM", + "ABCGLN", + "ABCGLP", + "ABCGMN", + "ABCGMP", + "ABCGNP", + "ABCHIJ", + "ABCHIL", + "ABCHIM", + "ABCHIN", + "ABCHIP", + "ABCHJL", + "ABCHJM", + "ABCHJN", + "ABCHJP", + "ABCHLM", + "ABCHLN", + "ABCHLP", + "ABCHMN", + "ABCHMP", + "ABCHNP", + "ABCIJL", + "ABCIJM", + "ABCIJN", + "ABCIJP", + "ABCILM", + "ABCILN", + "ABCILP", + "ABCIMN", + "ABCIMP", + "ABCINP", + "ABCJLM", + "ABCJLN", + "ABCJLP", + "ABCJMN", + "ABCJMP", + "ABCJNP", + "ABCLMN", + "ABCLMP", + "ABCLNP", + "ABCMNP", + "ABEFGH", + "ABEFGI", + "ABEFGJ", + "ABEFGL", + "ABEFGM", + "ABEFGN", + "ABEFGP", + "ABEFHI", + "ABEFHJ", + "ABEFHL", + "ABEFHM", + "ABEFHN", + "ABEFHP", + "ABEFIJ", + "ABEFIL", + "ABEFIM", + "ABEFIN", + "ABEFIP", + "ABEFJL", + "ABEFJM", + "ABEFJN", + "ABEFJP", + "ABEFLM", + "ABEFLN", + "ABEFLP", + "ABEFMN", + "ABEFMP", + "ABEFNP", + "ABEGHI", + "ABEGHJ", + "ABEGHL", + "ABEGHM", + "ABEGHN", + "ABEGHP", + "ABEGIJ", + "ABEGIL", + "ABEGIM", + "ABEGIN", + "ABEGIP", + "ABEGJL", + "ABEGJM", + "ABEGJN", + "ABEGJP", + "ABEGLM", + "ABEGLN", + "ABEGLP", + "ABEGMN", + "ABEGMP", + "ABEGNP", + "ABEHIJ", + "ABEHIL", + "ABEHIM", + "ABEHIN", + "ABEHIP", + "ABEHJL", + "ABEHJM", + "ABEHJN", + "ABEHJP", + "ABEHLM", + "ABEHLN", + "ABEHLP", + "ABEHMN", + "ABEHMP", + "ABEHNP", + "ABEIJL", + "ABEIJM", + "ABEIJN", + "ABEIJP", + "ABEILM", + "ABEILN", + "ABEILP", + "ABEIMN", + "ABEIMP", + "ABEINP", + "ABEJLM", + "ABEJLN", + "ABEJLP", + "ABEJMN", + "ABEJMP", + "ABEJNP", + "ABELMN", + "ABELMP", + "ABELNP", + "ABEMNP", + "ABFGHI", + "ABFGHJ", + "ABFGHL", + "ABFGHM", + "ABFGHN", + "ABFGHP", + "ABFGIJ", + "ABFGIL", + "ABFGIM", + "ABFGIN", + "ABFGIP", + "ABFGJL", + "ABFGJM", + "ABFGJN", + "ABFGJP", + "ABFGLM", + "ABFGLN", + "ABFGLP", + "ABFGMN", + "ABFGMP", + "ABFGNP", + "ABFHIJ", + "ABFHIL", + "ABFHIM", + "ABFHIN", + "ABFHIP", + "ABFHJL", + "ABFHJM", + "ABFHJN", + "ABFHJP", + "ABFHLM", + "ABFHLN", + "ABFHLP", + "ABFHMN", + "ABFHMP", + "ABFHNP", + "ABFIJL", + "ABFIJM", + "ABFIJN", + "ABFIJP", + "ABFILM", + "ABFILN", + "ABFILP", + "ABFIMN", + "ABFIMP", + "ABFINP", + "ABFJLM", + "ABFJLN", + "ABFJLP", + "ABFJMN", + "ABFJMP", + "ABFJNP", + "ABFLMN", + "ABFLMP", + "ABFLNP", + "ABFMNP", + "ABGHIJ", + "ABGHIL", + "ABGHIM", + "ABGHIN", + "ABGHIP", + "ABGHJL", + "ABGHJM", + "ABGHJN", + "ABGHJP", + "ABGHLM", + "ABGHLN", + "ABGHLP", + "ABGHMN", + "ABGHMP", + "ABGHNP", + "ABGIJL", + "ABGIJM", + "ABGIJN", + "ABGIJP", + "ABGILM", + "ABGILN", + "ABGILP", + "ABGIMN", + "ABGIMP", + "ABGINP", + "ABGJLM", + "ABGJLN", + "ABGJLP", + "ABGJMN", + "ABGJMP", + "ABGJNP", + "ABGLMN", + "ABGLMP", + "ABGLNP", + "ABGMNP", + "ABHIJL", + "ABHIJM", + "ABHIJN", + "ABHIJP", + "ABHILM", + "ABHILN", + "ABHILP", + "ABHIMN", + "ABHIMP", + "ABHINP", + "ABHJLM", + "ABHJLN", + "ABHJLP", + "ABHJMN", + "ABHJMP", + "ABHJNP", + "ABHLMN", + "ABHLMP", + "ABHLNP", + "ABHMNP", + "ABIJLM", + "ABIJLN", + "ABIJLP", + "ABIJMN", + "ABIJMP", + "ABIJNP", + "ABILMN", + "ABILMP", + "ABILNP", + "ABIMNP", + "ABJLMN", + "ABJLMP", + "ABJLNP", + "ABJMNP", + "ABLMNP", + "ACEFGH", + "ACEFGI", + "ACEFGJ", + "ACEFGL", + "ACEFGM", + "ACEFGN", + "ACEFGP", + "ACEFHI", + "ACEFHJ", + "ACEFHL", + "ACEFHM", + "ACEFHN", + "ACEFHP", + "ACEFIJ", + "ACEFIL", + "ACEFIM", + "ACEFIN", + "ACEFIP", + "ACEFJL", + "ACEFJM", + "ACEFJN", + "ACEFJP", + "ACEFLM", + "ACEFLN", + "ACEFLP", + "ACEFMN", + "ACEFMP", + "ACEFNP", + "ACEGHI", + "ACEGHJ", + "ACEGHL", + "ACEGHM", + "ACEGHN", + "ACEGHP", + "ACEGIJ", + "ACEGIL", + "ACEGIM", + "ACEGIN", + "ACEGIP", + "ACEGJL", + "ACEGJM", + "ACEGJN", + "ACEGJP", + "ACEGLM", + "ACEGLN", + "ACEGLP", + "ACEGMN", + "ACEGMP", + "ACEGNP", + "ACEHIJ", + "ACEHIL", + "ACEHIM", + "ACEHIN", + "ACEHIP", + "ACEHJL", + "ACEHJM", + "ACEHJN", + "ACEHJP", + "ACEHLM", + "ACEHLN", + "ACEHLP", + "ACEHMN", + "ACEHMP", + "ACEHNP", + "ACEIJL", + "ACEIJM", + "ACEIJN", + "ACEIJP", + "ACEILM", + "ACEILN", + "ACEILP", + "ACEIMN", + "ACEIMP", + "ACEINP", + "ACEJLM", + "ACEJLN", + "ACEJLP", + "ACEJMN", + "ACEJMP", + "ACEJNP", + "ACELMN", + "ACELMP", + "ACELNP", + "ACEMNP", + "ACFGHI", + "ACFGHJ", + "ACFGHL", + "ACFGHM", + "ACFGHN", + "ACFGHP", + "ACFGIJ", + "ACFGIL", + "ACFGIM", + "ACFGIN", + "ACFGIP", + "ACFGJL", + "ACFGJM", + "ACFGJN", + "ACFGJP", + "ACFGLM", + "ACFGLN", + "ACFGLP", + "ACFGMN", + "ACFGMP", + "ACFGNP", + "ACFHIJ", + "ACFHIL", + "ACFHIM", + "ACFHIN", + "ACFHIP", + "ACFHJL", + "ACFHJM", + "ACFHJN", + "ACFHJP", + "ACFHLM", + "ACFHLN", + "ACFHLP", + "ACFHMN", + "ACFHMP", + "ACFHNP", + "ACFIJL", + "ACFIJM", + "ACFIJN", + "ACFIJP", + "ACFILM", + "ACFILN", + "ACFILP", + "ACFIMN", + "ACFIMP", + "ACFINP", + "ACFJLM", + "ACFJLN", + "ACFJLP", + "ACFJMN", + "ACFJMP", + "ACFJNP", + "ACFLMN", + "ACFLMP", + "ACFLNP", + "ACFMNP", + "ACGHIJ", + "ACGHIL", + "ACGHIM", + "ACGHIN", + "ACGHIP", + "ACGHJL", + "ACGHJM", + "ACGHJN", + "ACGHJP", + "ACGHLM", + "ACGHLN", + "ACGHLP", + "ACGHMN", + "ACGHMP", + "ACGHNP", + "ACGIJL", + "ACGIJM", + "ACGIJN", + "ACGIJP", + "ACGILM", + "ACGILN", + "ACGILP", + "ACGIMN", + "ACGIMP", + "ACGINP", + "ACGJLM", + "ACGJLN", + "ACGJLP", + "ACGJMN", + "ACGJMP", + "ACGJNP", + "ACGLMN", + "ACGLMP", + "ACGLNP", + "ACGMNP", + "ACHIJL", + "ACHIJM", + "ACHIJN", + "ACHIJP", + "ACHILM", + "ACHILN", + "ACHILP", + "ACHIMN", + "ACHIMP", + "ACHINP", + "ACHJLM", + "ACHJLN", + "ACHJLP", + "ACHJMN", + "ACHJMP", + "ACHJNP", + "ACHLMN", + "ACHLMP", + "ACHLNP", + "ACHMNP", + "ACIJLM", + "ACIJLN", + "ACIJLP", + "ACIJMN", + "ACIJMP", + "ACIJNP", + "ACILMN", + "ACILMP", + "ACILNP", + "ACIMNP", + "ACJLMN", + "ACJLMP", + "ACJLNP", + "ACJMNP", + "ACLMNP", + "AEFGHI", + "AEFGHJ", + "AEFGHL", + "AEFGHM", + "AEFGHN", + "AEFGHP", + "AEFGIJ", + "AEFGIL", + "AEFGIM", + "AEFGIN", + "AEFGIP", + "AEFGJL", + "AEFGJM", + "AEFGJN", + "AEFGJP", + "AEFGLM", + "AEFGLN", + "AEFGLP", + "AEFGMN", + "AEFGMP", + "AEFGNP", + "AEFHIJ", + "AEFHIL", + "AEFHIM", + "AEFHIN", + "AEFHIP", + "AEFHJL", + "AEFHJM", + "AEFHJN", + "AEFHJP", + "AEFHLM", + "AEFHLN", + "AEFHLP", + "AEFHMN", + "AEFHMP", + "AEFHNP", + "AEFIJL", + "AEFIJM", + "AEFIJN", + "AEFIJP", + "AEFILM", + "AEFILN", + "AEFILP", + "AEFIMN", + "AEFIMP", + "AEFINP", + "AEFJLM", + "AEFJLN", + "AEFJLP", + "AEFJMN", + "AEFJMP", + "AEFJNP", + "AEFLMN", + "AEFLMP", + "AEFLNP", + "AEFMNP", + "AEGHIJ", + "AEGHIL", + "AEGHIM", + "AEGHIN", + "AEGHIP", + "AEGHJL", + "AEGHJM", + "AEGHJN", + "AEGHJP", + "AEGHLM", + "AEGHLN", + "AEGHLP", + "AEGHMN", + "AEGHMP", + "AEGHNP", + "AEGIJL", + "AEGIJM", + "AEGIJN", + "AEGIJP", + "AEGILM", + "AEGILN", + "AEGILP", + "AEGIMN", + "AEGIMP", + "AEGINP", + "AEGJLM", + "AEGJLN", + "AEGJLP", + "AEGJMN", + "AEGJMP", + "AEGJNP", + "AEGLMN", + "AEGLMP", + "AEGLNP", + "AEGMNP", + "AEHIJL", + "AEHIJM", + "AEHIJN", + "AEHIJP", + "AEHILM", + "AEHILN", + "AEHILP", + "AEHIMN", + "AEHIMP", + "AEHINP", + "AEHJLM", + "AEHJLN", + "AEHJLP", + "AEHJMN", + "AEHJMP", + "AEHJNP", + "AEHLMN", + "AEHLMP", + "AEHLNP", + "AEHMNP", + "AEIJLM", + "AEIJLN", + "AEIJLP", + "AEIJMN", + "AEIJMP", + "AEIJNP", + "AEILMN", + "AEILMP", + "AEILNP", + "AEIMNP", + "AEJLMN", + "AEJLMP", + "AEJLNP", + "AEJMNP", + "AELMNP", + "AFGHIJ", + "AFGHIL", + "AFGHIM", + "AFGHIN", + "AFGHIP", + "AFGHJL", + "AFGHJM", + "AFGHJN", + "AFGHJP", + "AFGHLM", + "AFGHLN", + "AFGHLP", + "AFGHMN", + "AFGHMP", + "AFGHNP", + "AFGIJL", + "AFGIJM", + "AFGIJN", + "AFGIJP", + "AFGILM", + "AFGILN", + "AFGILP", + "AFGIMN", + "AFGIMP", + "AFGINP", + "AFGJLM", + "AFGJLN", + "AFGJLP", + "AFGJMN", + "AFGJMP", + "AFGJNP", + "AFGLMN", + "AFGLMP", + "AFGLNP", + "AFGMNP", + "AFHIJL", + "AFHIJM", + "AFHIJN", + "AFHIJP", + "AFHILM", + "AFHILN", + "AFHILP", + "AFHIMN", + "AFHIMP", + "AFHINP", + "AFHJLM", + "AFHJLN", + "AFHJLP", + "AFHJMN", + "AFHJMP", + "AFHJNP", + "AFHLMN", + "AFHLMP", + "AFHLNP", + "AFHMNP", + "AFIJLM", + "AFIJLN", + "AFIJLP", + "AFIJMN", + "AFIJMP", + "AFIJNP", + "AFILMN", + "AFILMP", + "AFILNP", + "AFIMNP", + "AFJLMN", + "AFJLMP", + "AFJLNP", + "AFJMNP", + "AFLMNP", + "AGHIJL", + "AGHIJM", + "AGHIJN", + "AGHIJP", + "AGHILM", + "AGHILN", + "AGHILP", + "AGHIMN", + "AGHIMP", + "AGHINP", + "AGHJLM", + "AGHJLN", + "AGHJLP", + "AGHJMN", + "AGHJMP", + "AGHJNP", + "AGHLMN", + "AGHLMP", + "AGHLNP", + "AGHMNP", + "AGIJLM", + "AGIJLN", + "AGIJLP", + "AGIJMN", + "AGIJMP", + "AGIJNP", + "AGILMN", + "AGILMP", + "AGILNP", + "AGIMNP", + "AGJLMN", + "AGJLMP", + "AGJLNP", + "AGJMNP", + "AGLMNP", + "AHIJLM", + "AHIJLN", + "AHIJLP", + "AHIJMN", + "AHIJMP", + "AHIJNP", + "AHILMN", + "AHILMP", + "AHILNP", + "AHIMNP", + "AHJLMN", + "AHJLMP", + "AHJLNP", + "AHJMNP", + "AHLMNP", + "AIJLMN", + "AIJLMP", + "AIJLNP", + "AIJMNP", + "AILMNP", + "AJLMNP", + "BCEFGH", + "BCEFGI", + "BCEFGJ", + "BCEFGL", + "BCEFGM", + "BCEFGN", + "BCEFGP", + "BCEFHI", + "BCEFHJ", + "BCEFHL", + "BCEFHM", + "BCEFHN", + "BCEFHP", + "BCEFIJ", + "BCEFIL", + "BCEFIM", + "BCEFIN", + "BCEFIP", + "BCEFJL", + "BCEFJM", + "BCEFJN", + "BCEFJP", + "BCEFLM", + "BCEFLN", + "BCEFLP", + "BCEFMN", + "BCEFMP", + "BCEFNP", + "BCEGHI", + "BCEGHJ", + "BCEGHL", + "BCEGHM", + "BCEGHN", + "BCEGHP", + "BCEGIJ", + "BCEGIL", + "BCEGIM", + "BCEGIN", + "BCEGIP", + "BCEGJL", + "BCEGJM", + "BCEGJN", + "BCEGJP", + "BCEGLM", + "BCEGLN", + "BCEGLP", + "BCEGMN", + "BCEGMP", + "BCEGNP", + "BCEHIJ", + "BCEHIL", + "BCEHIM", + "BCEHIN", + "BCEHIP", + "BCEHJL", + "BCEHJM", + "BCEHJN", + "BCEHJP", + "BCEHLM", + "BCEHLN", + "BCEHLP", + "BCEHMN", + "BCEHMP", + "BCEHNP", + "BCEIJL", + "BCEIJM", + "BCEIJN", + "BCEIJP", + "BCEILM", + "BCEILN", + "BCEILP", + "BCEIMN", + "BCEIMP", + "BCEINP", + "BCEJLM", + "BCEJLN", + "BCEJLP", + "BCEJMN", + "BCEJMP", + "BCEJNP", + "BCELMN", + "BCELMP", + "BCELNP", + "BCEMNP", + "BCFGHI", + "BCFGHJ", + "BCFGHL", + "BCFGHM", + "BCFGHN", + "BCFGHP", + "BCFGIJ", + "BCFGIL", + "BCFGIM", + "BCFGIN", + "BCFGIP", + "BCFGJL", + "BCFGJM", + "BCFGJN", + "BCFGJP", + "BCFGLM", + "BCFGLN", + "BCFGLP", + "BCFGMN", + "BCFGMP", + "BCFGNP", + "BCFHIJ", + "BCFHIL", + "BCFHIM", + "BCFHIN", + "BCFHIP", + "BCFHJL", + "BCFHJM", + "BCFHJN", + "BCFHJP", + "BCFHLM", + "BCFHLN", + "BCFHLP", + "BCFHMN", + "BCFHMP", + "BCFHNP", + "BCFIJL", + "BCFIJM", + "BCFIJN", + "BCFIJP", + "BCFILM", + "BCFILN", + "BCFILP", + "BCFIMN", + "BCFIMP", + "BCFINP", + "BCFJLM", + "BCFJLN", + "BCFJLP", + "BCFJMN", + "BCFJMP", + "BCFJNP", + "BCFLMN", + "BCFLMP", + "BCFLNP", + "BCFMNP", + "BCGHIJ", + "BCGHIL", + "BCGHIM", + "BCGHIN", + "BCGHIP", + "BCGHJL", + "BCGHJM", + "BCGHJN", + "BCGHJP", + "BCGHLM", + "BCGHLN", + "BCGHLP", + "BCGHMN", + "BCGHMP", + "BCGHNP", + "BCGIJL", + "BCGIJM", + "BCGIJN", + "BCGIJP", + "BCGILM", + "BCGILN", + "BCGILP", + "BCGIMN", + "BCGIMP", + "BCGINP", + "BCGJLM", + "BCGJLN", + "BCGJLP", + "BCGJMN", + "BCGJMP", + "BCGJNP", + "BCGLMN", + "BCGLMP", + "BCGLNP", + "BCGMNP", + "BCHIJL", + "BCHIJM", + "BCHIJN", + "BCHIJP", + "BCHILM", + "BCHILN", + "BCHILP", + "BCHIMN", + "BCHIMP", + "BCHINP", + "BCHJLM", + "BCHJLN", + "BCHJLP", + "BCHJMN", + "BCHJMP", + "BCHJNP", + "BCHLMN", + "BCHLMP", + "BCHLNP", + "BCHMNP", + "BCIJLM", + "BCIJLN", + "BCIJLP", + "BCIJMN", + "BCIJMP", + "BCIJNP", + "BCILMN", + "BCILMP", + "BCILNP", + "BCIMNP", + "BCJLMN", + "BCJLMP", + "BCJLNP", + "BCJMNP", + "BCLMNP", + "BEFGHI", + "BEFGHJ", + "BEFGHL", + "BEFGHM", + "BEFGHN", + "BEFGHP", + "BEFGIJ", + "BEFGIL", + "BEFGIM", + "BEFGIN", + "BEFGIP", + "BEFGJL", + "BEFGJM", + "BEFGJN", + "BEFGJP", + "BEFGLM", + "BEFGLN", + "BEFGLP", + "BEFGMN", + "BEFGMP", + "BEFGNP", + "BEFHIJ", + "BEFHIL", + "BEFHIM", + "BEFHIN", + "BEFHIP", + "BEFHJL", + "BEFHJM", + "BEFHJN", + "BEFHJP", + "BEFHLM", + "BEFHLN", + "BEFHLP", + "BEFHMN", + "BEFHMP", + "BEFHNP", + "BEFIJL", + "BEFIJM", + "BEFIJN", + "BEFIJP", + "BEFILM", + "BEFILN", + "BEFILP", + "BEFIMN", + "BEFIMP", + "BEFINP", + "BEFJLM", + "BEFJLN", + "BEFJLP", + "BEFJMN", + "BEFJMP", + "BEFJNP", + "BEFLMN", + "BEFLMP", + "BEFLNP", + "BEFMNP", + "BEGHIJ", + "BEGHIL", + "BEGHIM", + "BEGHIN", + "BEGHIP", + "BEGHJL", + "BEGHJM", + "BEGHJN", + "BEGHJP", + "BEGHLM", + "BEGHLN", + "BEGHLP", + "BEGHMN", + "BEGHMP", + "BEGHNP", + "BEGIJL", + "BEGIJM", + "BEGIJN", + "BEGIJP", + "BEGILM", + "BEGILN", + "BEGILP", + "BEGIMN", + "BEGIMP", + "BEGINP", + "BEGJLM", + "BEGJLN", + "BEGJLP", + "BEGJMN", + "BEGJMP", + "BEGJNP", + "BEGLMN", + "BEGLMP", + "BEGLNP", + "BEGMNP", + "BEHIJL", + "BEHIJM", + "BEHIJN", + "BEHIJP", + "BEHILM", + "BEHILN", + "BEHILP", + "BEHIMN", + "BEHIMP", + "BEHINP", + "BEHJLM", + "BEHJLN", + "BEHJLP", + "BEHJMN", + "BEHJMP", + "BEHJNP", + "BEHLMN", + "BEHLMP", + "BEHLNP", + "BEHMNP", + "BEIJLM", + "BEIJLN", + "BEIJLP", + "BEIJMN", + "BEIJMP", + "BEIJNP", + "BEILMN", + "BEILMP", + "BEILNP", + "BEIMNP", + "BEJLMN", + "BEJLMP", + "BEJLNP", + "BEJMNP", + "BELMNP", + "BFGHIJ", + "BFGHIL", + "BFGHIM", + "BFGHIN", + "BFGHIP", + "BFGHJL", + "BFGHJM", + "BFGHJN", + "BFGHJP", + "BFGHLM", + "BFGHLN", + "BFGHLP", + "BFGHMN", + "BFGHMP", + "BFGHNP", + "BFGIJL", + "BFGIJM", + "BFGIJN", + "BFGIJP", + "BFGILM", + "BFGILN", + "BFGILP", + "BFGIMN", + "BFGIMP", + "BFGINP", + "BFGJLM", + "BFGJLN", + "BFGJLP", + "BFGJMN", + "BFGJMP", + "BFGJNP", + "BFGLMN", + "BFGLMP", + "BFGLNP", + "BFGMNP", + "BFHIJL", + "BFHIJM", + "BFHIJN", + "BFHIJP", + "BFHILM", + "BFHILN", + "BFHILP", + "BFHIMN", + "BFHIMP", + "BFHINP", + "BFHJLM", + "BFHJLN", + "BFHJLP", + "BFHJMN", + "BFHJMP", + "BFHJNP", + "BFHLMN", + "BFHLMP", + "BFHLNP", + "BFHMNP", + "BFIJLM", + "BFIJLN", + "BFIJLP", + "BFIJMN", + "BFIJMP", + "BFIJNP", + "BFILMN", + "BFILMP", + "BFILNP", + "BFIMNP", + "BFJLMN", + "BFJLMP", + "BFJLNP", + "BFJMNP", + "BFLMNP", + "BGHIJL", + "BGHIJM", + "BGHIJN", + "BGHIJP", + "BGHILM", + "BGHILN", + "BGHILP", + "BGHIMN", + "BGHIMP", + "BGHINP", + "BGHJLM", + "BGHJLN", + "BGHJLP", + "BGHJMN", + "BGHJMP", + "BGHJNP", + "BGHLMN", + "BGHLMP", + "BGHLNP", + "BGHMNP", + "BGIJLM", + "BGIJLN", + "BGIJLP", + "BGIJMN", + "BGIJMP", + "BGIJNP", + "BGILMN", + "BGILMP", + "BGILNP", + "BGIMNP", + "BGJLMN", + "BGJLMP", + "BGJLNP", + "BGJMNP", + "BGLMNP", + "BHIJLM", + "BHIJLN", + "BHIJLP", + "BHIJMN", + "BHIJMP", + "BHIJNP", + "BHILMN", + "BHILMP", + "BHILNP", + "BHIMNP", + "BHJLMN", + "BHJLMP", + "BHJLNP", + "BHJMNP", + "BHLMNP", + "BIJLMN", + "BIJLMP", + "BIJLNP", + "BIJMNP", + "BILMNP", + "BJLMNP", + "CEFGHI", + "CEFGHJ", + "CEFGHL", + "CEFGHM", + "CEFGHN", + "CEFGHP", + "CEFGIJ", + "CEFGIL", + "CEFGIM", + "CEFGIN", + "CEFGIP", + "CEFGJL", + "CEFGJM", + "CEFGJN", + "CEFGJP", + "CEFGLM", + "CEFGLN", + "CEFGLP", + "CEFGMN", + "CEFGMP", + "CEFGNP", + "CEFHIJ", + "CEFHIL", + "CEFHIM", + "CEFHIN", + "CEFHIP", + "CEFHJL", + "CEFHJM", + "CEFHJN", + "CEFHJP", + "CEFHLM", + "CEFHLN", + "CEFHLP", + "CEFHMN", + "CEFHMP", + "CEFHNP", + "CEFIJL", + "CEFIJM", + "CEFIJN", + "CEFIJP", + "CEFILM", + "CEFILN", + "CEFILP", + "CEFIMN", + "CEFIMP", + "CEFINP", + "CEFJLM", + "CEFJLN", + "CEFJLP", + "CEFJMN", + "CEFJMP", + "CEFJNP", + "CEFLMN", + "CEFLMP", + "CEFLNP", + "CEFMNP", + "CEGHIJ", + "CEGHIL", + "CEGHIM", + "CEGHIN", + "CEGHIP", + "CEGHJL", + "CEGHJM", + "CEGHJN", + "CEGHJP", + "CEGHLM", + "CEGHLN", + "CEGHLP", + "CEGHMN", + "CEGHMP", + "CEGHNP", + "CEGIJL", + "CEGIJM", + "CEGIJN", + "CEGIJP", + "CEGILM", + "CEGILN", + "CEGILP", + "CEGIMN", + "CEGIMP", + "CEGINP", + "CEGJLM", + "CEGJLN", + "CEGJLP", + "CEGJMN", + "CEGJMP", + "CEGJNP", + "CEGLMN", + "CEGLMP", + "CEGLNP", + "CEGMNP", + "CEHIJL", + "CEHIJM", + "CEHIJN", + "CEHIJP", + "CEHILM", + "CEHILN", + "CEHILP", + "CEHIMN", + "CEHIMP", + "CEHINP", + "CEHJLM", + "CEHJLN", + "CEHJLP", + "CEHJMN", + "CEHJMP", + "CEHJNP", + "CEHLMN", + "CEHLMP", + "CEHLNP", + "CEHMNP", + "CEIJLM", + "CEIJLN", + "CEIJLP", + "CEIJMN", + "CEIJMP", + "CEIJNP", + "CEILMN", + "CEILMP", + "CEILNP", + "CEIMNP", + "CEJLMN", + "CEJLMP", + "CEJLNP", + "CEJMNP", + "CELMNP", + "CFGHIJ", + "CFGHIL", + "CFGHIM", + "CFGHIN", + "CFGHIP", + "CFGHJL", + "CFGHJM", + "CFGHJN", + "CFGHJP", + "CFGHLM", + "CFGHLN", + "CFGHLP", + "CFGHMN", + "CFGHMP", + "CFGHNP", + "CFGIJL", + "CFGIJM", + "CFGIJN", + "CFGIJP", + "CFGILM", + "CFGILN", + "CFGILP", + "CFGIMN", + "CFGIMP", + "CFGINP", + "CFGJLM", + "CFGJLN", + "CFGJLP", + "CFGJMN", + "CFGJMP", + "CFGJNP", + "CFGLMN", + "CFGLMP", + "CFGLNP", + "CFGMNP", + "CFHIJL", + "CFHIJM", + "CFHIJN", + "CFHIJP", + "CFHILM", + "CFHILN", + "CFHILP", + "CFHIMN", + "CFHIMP", + "CFHINP", + "CFHJLM", + "CFHJLN", + "CFHJLP", + "CFHJMN", + "CFHJMP", + "CFHJNP", + "CFHLMN", + "CFHLMP", + "CFHLNP", + "CFHMNP", + "CFIJLM", + "CFIJLN", + "CFIJLP", + "CFIJMN", + "CFIJMP", + "CFIJNP", + "CFILMN", + "CFILMP", + "CFILNP", + "CFIMNP", + "CFJLMN", + "CFJLMP", + "CFJLNP", + "CFJMNP", + "CFLMNP", + "CGHIJL", + "CGHIJM", + "CGHIJN", + "CGHIJP", + "CGHILM", + "CGHILN", + "CGHILP", + "CGHIMN", + "CGHIMP", + "CGHINP", + "CGHJLM", + "CGHJLN", + "CGHJLP", + "CGHJMN", + "CGHJMP", + "CGHJNP", + "CGHLMN", + "CGHLMP", + "CGHLNP", + "CGHMNP", + "CGIJLM", + "CGIJLN", + "CGIJLP", + "CGIJMN", + "CGIJMP", + "CGIJNP", + "CGILMN", + "CGILMP", + "CGILNP", + "CGIMNP", + "CGJLMN", + "CGJLMP", + "CGJLNP", + "CGJMNP", + "CGLMNP", + "CHIJLM", + "CHIJLN", + "CHIJLP", + "CHIJMN", + "CHIJMP", + "CHIJNP", + "CHILMN", + "CHILMP", + "CHILNP", + "CHIMNP", + "CHJLMN", + "CHJLMP", + "CHJLNP", + "CHJMNP", + "CHLMNP", + "CIJLMN", + "CIJLMP", + "CIJLNP", + "CIJMNP", + "CILMNP", + "CJLMNP", + "EFGHIJ", + "EFGHIL", + "EFGHIM", + "EFGHIN", + "EFGHIP", + "EFGHJL", + "EFGHJM", + "EFGHJN", + "EFGHJP", + "EFGHLM", + "EFGHLN", + "EFGHLP", + "EFGHMN", + "EFGHMP", + "EFGHNP", + "EFGIJL", + "EFGIJM", + "EFGIJN", + "EFGIJP", + "EFGILM", + "EFGILN", + "EFGILP", + "EFGIMN", + "EFGIMP", + "EFGINP", + "EFGJLM", + "EFGJLN", + "EFGJLP", + "EFGJMN", + "EFGJMP", + "EFGJNP", + "EFGLMN", + "EFGLMP", + "EFGLNP", + "EFGMNP", + "EFHIJL", + "EFHIJM", + "EFHIJN", + "EFHIJP", + "EFHILM", + "EFHILN", + "EFHILP", + "EFHIMN", + "EFHIMP", + "EFHINP", + "EFHJLM", + "EFHJLN", + "EFHJLP", + "EFHJMN", + "EFHJMP", + "EFHJNP", + "EFHLMN", + "EFHLMP", + "EFHLNP", + "EFHMNP", + "EFIJLM", + "EFIJLN", + "EFIJLP", + "EFIJMN", + "EFIJMP", + "EFIJNP", + "EFILMN", + "EFILMP", + "EFILNP", + "EFIMNP", + "EFJLMN", + "EFJLMP", + "EFJLNP", + "EFJMNP", + "EFLMNP", + "EGHIJL", + "EGHIJM", + "EGHIJN", + "EGHIJP", + "EGHILM", + "EGHILN", + "EGHILP", + "EGHIMN", + "EGHIMP", + "EGHINP", + "EGHJLM", + "EGHJLN", + "EGHJLP", + "EGHJMN", + "EGHJMP", + "EGHJNP", + "EGHLMN", + "EGHLMP", + "EGHLNP", + "EGHMNP", + "EGIJLM", + "EGIJLN", + "EGIJLP", + "EGIJMN", + "EGIJMP", + "EGIJNP", + "EGILMN", + "EGILMP", + "EGILNP", + "EGIMNP", + "EGJLMN", + "EGJLMP", + "EGJLNP", + "EGJMNP", + "EGLMNP", + "EHIJLM", + "EHIJLN", + "EHIJLP", + "EHIJMN", + "EHIJMP", + "EHIJNP", + "EHILMN", + "EHILMP", + "EHILNP", + "EHIMNP", + "EHJLMN", + "EHJLMP", + "EHJLNP", + "EHJMNP", + "EHLMNP", + "EIJLMN", + "EIJLMP", + "EIJLNP", + "EIJMNP", + "EILMNP", + "EJLMNP", + "FGHIJL", + "FGHIJM", + "FGHIJN", + "FGHIJP", + "FGHILM", + "FGHILN", + "FGHILP", + "FGHIMN", + "FGHIMP", + "FGHINP", + "FGHJLM", + "FGHJLN", + "FGHJLP", + "FGHJMN", + "FGHJMP", + "FGHJNP", + "FGHLMN", + "FGHLMP", + "FGHLNP", + "FGHMNP", + "FGIJLM", + "FGIJLN", + "FGIJLP", + "FGIJMN", + "FGIJMP", + "FGIJNP", + "FGILMN", + "FGILMP", + "FGILNP", + "FGIMNP", + "FGJLMN", + "FGJLMP", + "FGJLNP", + "FGJMNP", + "FGLMNP", + "FHIJLM", + "FHIJLN", + "FHIJLP", + "FHIJMN", + "FHIJMP", + "FHIJNP", + "FHILMN", + "FHILMP", + "FHILNP", + "FHIMNP", + "FHJLMN", + "FHJLMP", + "FHJLNP", + "FHJMNP", + "FHLMNP", + "FIJLMN", + "FIJLMP", + "FIJLNP", + "FIJMNP", + "FILMNP", + "FJLMNP", + "GHIJLM", + "GHIJLN", + "GHIJLP", + "GHIJMN", + "GHIJMP", + "GHIJNP", + "GHILMN", + "GHILMP", + "GHILNP", + "GHIMNP", + "GHJLMN", + "GHJLMP", + "GHJLNP", + "GHJMNP", + "GHLMNP", + "GIJLMN", + "GIJLMP", + "GIJLNP", + "GIJMNP", + "GILMNP", + "GJLMNP", + "HIJLMN", + "HIJLMP", + "HIJLNP", + "HIJMNP", + "HILMNP", + "HJLMNP", + "IJLMNP", + "ABCEFGH", + "ABCEFGI", + "ABCEFGJ", + "ABCEFGL", + "ABCEFGM", + "ABCEFGN", + "ABCEFGP", + "ABCEFHI", + "ABCEFHJ", + "ABCEFHL", + "ABCEFHM", + "ABCEFHN", + "ABCEFHP", + "ABCEFIJ", + "ABCEFIL", + "ABCEFIM", + "ABCEFIN", + "ABCEFIP", + "ABCEFJL", + "ABCEFJM", + "ABCEFJN", + "ABCEFJP", + "ABCEFLM", + "ABCEFLN", + "ABCEFLP", + "ABCEFMN", + "ABCEFMP", + "ABCEFNP", + "ABCEGHI", + "ABCEGHJ", + "ABCEGHL", + "ABCEGHM", + "ABCEGHN", + "ABCEGHP", + "ABCEGIJ", + "ABCEGIL", + "ABCEGIM", + "ABCEGIN", + "ABCEGIP", + "ABCEGJL", + "ABCEGJM", + "ABCEGJN", + "ABCEGJP", + "ABCEGLM", + "ABCEGLN", + "ABCEGLP", + "ABCEGMN", + "ABCEGMP", + "ABCEGNP", + "ABCEHIJ", + "ABCEHIL", + "ABCEHIM", + "ABCEHIN", + "ABCEHIP", + "ABCEHJL", + "ABCEHJM", + "ABCEHJN", + "ABCEHJP", + "ABCEHLM", + "ABCEHLN", + "ABCEHLP", + "ABCEHMN", + "ABCEHMP", + "ABCEHNP", + "ABCEIJL", + "ABCEIJM", + "ABCEIJN", + "ABCEIJP", + "ABCEILM", + "ABCEILN", + "ABCEILP", + "ABCEIMN", + "ABCEIMP", + "ABCEINP", + "ABCEJLM", + "ABCEJLN", + "ABCEJLP", + "ABCEJMN", + "ABCEJMP", + "ABCEJNP", + "ABCELMN", + "ABCELMP", + "ABCELNP", + "ABCEMNP", + "ABCFGHI", + "ABCFGHJ", + "ABCFGHL", + "ABCFGHM", + "ABCFGHN", + "ABCFGHP", + "ABCFGIJ", + "ABCFGIL", + "ABCFGIM", + "ABCFGIN", + "ABCFGIP", + "ABCFGJL", + "ABCFGJM", + "ABCFGJN", + "ABCFGJP", + "ABCFGLM", + "ABCFGLN", + "ABCFGLP", + "ABCFGMN", + "ABCFGMP", + "ABCFGNP", + "ABCFHIJ", + "ABCFHIL", + "ABCFHIM", + "ABCFHIN", + "ABCFHIP", + "ABCFHJL", + "ABCFHJM", + "ABCFHJN", + "ABCFHJP", + "ABCFHLM", + "ABCFHLN", + "ABCFHLP", + "ABCFHMN", + "ABCFHMP", + "ABCFHNP", + "ABCFIJL", + "ABCFIJM", + "ABCFIJN", + "ABCFIJP", + "ABCFILM", + "ABCFILN", + "ABCFILP", + "ABCFIMN", + "ABCFIMP", + "ABCFINP", + "ABCFJLM", + "ABCFJLN", + "ABCFJLP", + "ABCFJMN", + "ABCFJMP", + "ABCFJNP", + "ABCFLMN", + "ABCFLMP", + "ABCFLNP", + "ABCFMNP", + "ABCGHIJ", + "ABCGHIL", + "ABCGHIM", + "ABCGHIN", + "ABCGHIP", + "ABCGHJL", + "ABCGHJM", + "ABCGHJN", + "ABCGHJP", + "ABCGHLM", + "ABCGHLN", + "ABCGHLP", + "ABCGHMN", + "ABCGHMP", + "ABCGHNP", + "ABCGIJL", + "ABCGIJM", + "ABCGIJN", + "ABCGIJP", + "ABCGILM", + "ABCGILN", + "ABCGILP", + "ABCGIMN", + "ABCGIMP", + "ABCGINP", + "ABCGJLM", + "ABCGJLN", + "ABCGJLP", + "ABCGJMN", + "ABCGJMP", + "ABCGJNP", + "ABCGLMN", + "ABCGLMP", + "ABCGLNP", + "ABCGMNP", + "ABCHIJL", + "ABCHIJM", + "ABCHIJN", + "ABCHIJP", + "ABCHILM", + "ABCHILN", + "ABCHILP", + "ABCHIMN", + "ABCHIMP", + "ABCHINP", + "ABCHJLM", + "ABCHJLN", + "ABCHJLP", + "ABCHJMN", + "ABCHJMP", + "ABCHJNP", + "ABCHLMN", + "ABCHLMP", + "ABCHLNP", + "ABCHMNP", + "ABCIJLM", + "ABCIJLN", + "ABCIJLP", + "ABCIJMN", + "ABCIJMP", + "ABCIJNP", + "ABCILMN", + "ABCILMP", + "ABCILNP", + "ABCIMNP", + "ABCJLMN", + "ABCJLMP", + "ABCJLNP", + "ABCJMNP", + "ABCLMNP", + "ABEFGHI", + "ABEFGHJ", + "ABEFGHL", + "ABEFGHM", + "ABEFGHN", + "ABEFGHP", + "ABEFGIJ", + "ABEFGIL", + "ABEFGIM", + "ABEFGIN", + "ABEFGIP", + "ABEFGJL", + "ABEFGJM", + "ABEFGJN", + "ABEFGJP", + "ABEFGLM", + "ABEFGLN", + "ABEFGLP", + "ABEFGMN", + "ABEFGMP", + "ABEFGNP", + "ABEFHIJ", + "ABEFHIL", + "ABEFHIM", + "ABEFHIN", + "ABEFHIP", + "ABEFHJL", + "ABEFHJM", + "ABEFHJN", + "ABEFHJP", + "ABEFHLM", + "ABEFHLN", + "ABEFHLP", + "ABEFHMN", + "ABEFHMP", + "ABEFHNP", + "ABEFIJL", + "ABEFIJM", + "ABEFIJN", + "ABEFIJP", + "ABEFILM", + "ABEFILN", + "ABEFILP", + "ABEFIMN", + "ABEFIMP", + "ABEFINP", + "ABEFJLM", + "ABEFJLN", + "ABEFJLP", + "ABEFJMN", + "ABEFJMP", + "ABEFJNP", + "ABEFLMN", + "ABEFLMP", + "ABEFLNP", + "ABEFMNP", + "ABEGHIJ", + "ABEGHIL", + "ABEGHIM", + "ABEGHIN", + "ABEGHIP", + "ABEGHJL", + "ABEGHJM", + "ABEGHJN", + "ABEGHJP", + "ABEGHLM", + "ABEGHLN", + "ABEGHLP", + "ABEGHMN", + "ABEGHMP", + "ABEGHNP", + "ABEGIJL", + "ABEGIJM", + "ABEGIJN", + "ABEGIJP", + "ABEGILM", + "ABEGILN", + "ABEGILP", + "ABEGIMN", + "ABEGIMP", + "ABEGINP", + "ABEGJLM", + "ABEGJLN", + "ABEGJLP", + "ABEGJMN", + "ABEGJMP", + "ABEGJNP", + "ABEGLMN", + "ABEGLMP", + "ABEGLNP", + "ABEGMNP", + "ABEHIJL", + "ABEHIJM", + "ABEHIJN", + "ABEHIJP", + "ABEHILM", + "ABEHILN", + "ABEHILP", + "ABEHIMN", + "ABEHIMP", + "ABEHINP", + "ABEHJLM", + "ABEHJLN", + "ABEHJLP", + "ABEHJMN", + "ABEHJMP", + "ABEHJNP", + "ABEHLMN", + "ABEHLMP", + "ABEHLNP", + "ABEHMNP", + "ABEIJLM", + "ABEIJLN", + "ABEIJLP", + "ABEIJMN", + "ABEIJMP", + "ABEIJNP", + "ABEILMN", + "ABEILMP", + "ABEILNP", + "ABEIMNP", + "ABEJLMN", + "ABEJLMP", + "ABEJLNP", + "ABEJMNP", + "ABELMNP", + "ABFGHIJ", + "ABFGHIL", + "ABFGHIM", + "ABFGHIN", + "ABFGHIP", + "ABFGHJL", + "ABFGHJM", + "ABFGHJN", + "ABFGHJP", + "ABFGHLM", + "ABFGHLN", + "ABFGHLP", + "ABFGHMN", + "ABFGHMP", + "ABFGHNP", + "ABFGIJL", + "ABFGIJM", + "ABFGIJN", + "ABFGIJP", + "ABFGILM", + "ABFGILN", + "ABFGILP", + "ABFGIMN", + "ABFGIMP", + "ABFGINP", + "ABFGJLM", + "ABFGJLN", + "ABFGJLP", + "ABFGJMN", + "ABFGJMP", + "ABFGJNP", + "ABFGLMN", + "ABFGLMP", + "ABFGLNP", + "ABFGMNP", + "ABFHIJL", + "ABFHIJM", + "ABFHIJN", + "ABFHIJP", + "ABFHILM", + "ABFHILN", + "ABFHILP", + "ABFHIMN", + "ABFHIMP", + "ABFHINP", + "ABFHJLM", + "ABFHJLN", + "ABFHJLP", + "ABFHJMN", + "ABFHJMP", + "ABFHJNP", + "ABFHLMN", + "ABFHLMP", + "ABFHLNP", + "ABFHMNP", + "ABFIJLM", + "ABFIJLN", + "ABFIJLP", + "ABFIJMN", + "ABFIJMP", + "ABFIJNP", + "ABFILMN", + "ABFILMP", + "ABFILNP", + "ABFIMNP", + "ABFJLMN", + "ABFJLMP", + "ABFJLNP", + "ABFJMNP", + "ABFLMNP", + "ABGHIJL", + "ABGHIJM", + "ABGHIJN", + "ABGHIJP", + "ABGHILM", + "ABGHILN", + "ABGHILP", + "ABGHIMN", + "ABGHIMP", + "ABGHINP", + "ABGHJLM", + "ABGHJLN", + "ABGHJLP", + "ABGHJMN", + "ABGHJMP", + "ABGHJNP", + "ABGHLMN", + "ABGHLMP", + "ABGHLNP", + "ABGHMNP", + "ABGIJLM", + "ABGIJLN", + "ABGIJLP", + "ABGIJMN", + "ABGIJMP", + "ABGIJNP", + "ABGILMN", + "ABGILMP", + "ABGILNP", + "ABGIMNP", + "ABGJLMN", + "ABGJLMP", + "ABGJLNP", + "ABGJMNP", + "ABGLMNP", + "ABHIJLM", + "ABHIJLN", + "ABHIJLP", + "ABHIJMN", + "ABHIJMP", + "ABHIJNP", + "ABHILMN", + "ABHILMP", + "ABHILNP", + "ABHIMNP", + "ABHJLMN", + "ABHJLMP", + "ABHJLNP", + "ABHJMNP", + "ABHLMNP", + "ABIJLMN", + "ABIJLMP", + "ABIJLNP", + "ABIJMNP", + "ABILMNP", + "ABJLMNP", + "ACEFGHI", + "ACEFGHJ", + "ACEFGHL", + "ACEFGHM", + "ACEFGHN", + "ACEFGHP", + "ACEFGIJ", + "ACEFGIL", + "ACEFGIM", + "ACEFGIN", + "ACEFGIP", + "ACEFGJL", + "ACEFGJM", + "ACEFGJN", + "ACEFGJP", + "ACEFGLM", + "ACEFGLN", + "ACEFGLP", + "ACEFGMN", + "ACEFGMP", + "ACEFGNP", + "ACEFHIJ", + "ACEFHIL", + "ACEFHIM", + "ACEFHIN", + "ACEFHIP", + "ACEFHJL", + "ACEFHJM", + "ACEFHJN", + "ACEFHJP", + "ACEFHLM", + "ACEFHLN", + "ACEFHLP", + "ACEFHMN", + "ACEFHMP", + "ACEFHNP", + "ACEFIJL", + "ACEFIJM", + "ACEFIJN", + "ACEFIJP", + "ACEFILM", + "ACEFILN", + "ACEFILP", + "ACEFIMN", + "ACEFIMP", + "ACEFINP", + "ACEFJLM", + "ACEFJLN", + "ACEFJLP", + "ACEFJMN", + "ACEFJMP", + "ACEFJNP", + "ACEFLMN", + "ACEFLMP", + "ACEFLNP", + "ACEFMNP", + "ACEGHIJ", + "ACEGHIL", + "ACEGHIM", + "ACEGHIN", + "ACEGHIP", + "ACEGHJL", + "ACEGHJM", + "ACEGHJN", + "ACEGHJP", + "ACEGHLM", + "ACEGHLN", + "ACEGHLP", + "ACEGHMN", + "ACEGHMP", + "ACEGHNP", + "ACEGIJL", + "ACEGIJM", + "ACEGIJN", + "ACEGIJP", + "ACEGILM", + "ACEGILN", + "ACEGILP", + "ACEGIMN", + "ACEGIMP", + "ACEGINP", + "ACEGJLM", + "ACEGJLN", + "ACEGJLP", + "ACEGJMN", + "ACEGJMP", + "ACEGJNP", + "ACEGLMN", + "ACEGLMP", + "ACEGLNP", + "ACEGMNP", + "ACEHIJL", + "ACEHIJM", + "ACEHIJN", + "ACEHIJP", + "ACEHILM", + "ACEHILN", + "ACEHILP", + "ACEHIMN", + "ACEHIMP", + "ACEHINP", + "ACEHJLM", + "ACEHJLN", + "ACEHJLP", + "ACEHJMN", + "ACEHJMP", + "ACEHJNP", + "ACEHLMN", + "ACEHLMP", + "ACEHLNP", + "ACEHMNP", + "ACEIJLM", + "ACEIJLN", + "ACEIJLP", + "ACEIJMN", + "ACEIJMP", + "ACEIJNP", + "ACEILMN", + "ACEILMP", + "ACEILNP", + "ACEIMNP", + "ACEJLMN", + "ACEJLMP", + "ACEJLNP", + "ACEJMNP", + "ACELMNP", + "ACFGHIJ", + "ACFGHIL", + "ACFGHIM", + "ACFGHIN", + "ACFGHIP", + "ACFGHJL", + "ACFGHJM", + "ACFGHJN", + "ACFGHJP", + "ACFGHLM", + "ACFGHLN", + "ACFGHLP", + "ACFGHMN", + "ACFGHMP", + "ACFGHNP", + "ACFGIJL", + "ACFGIJM", + "ACFGIJN", + "ACFGIJP", + "ACFGILM", + "ACFGILN", + "ACFGILP", + "ACFGIMN", + "ACFGIMP", + "ACFGINP", + "ACFGJLM", + "ACFGJLN", + "ACFGJLP", + "ACFGJMN", + "ACFGJMP", + "ACFGJNP", + "ACFGLMN", + "ACFGLMP", + "ACFGLNP", + "ACFGMNP", + "ACFHIJL", + "ACFHIJM", + "ACFHIJN", + "ACFHIJP", + "ACFHILM", + "ACFHILN", + "ACFHILP", + "ACFHIMN", + "ACFHIMP", + "ACFHINP", + "ACFHJLM", + "ACFHJLN", + "ACFHJLP", + "ACFHJMN", + "ACFHJMP", + "ACFHJNP", + "ACFHLMN", + "ACFHLMP", + "ACFHLNP", + "ACFHMNP", + "ACFIJLM", + "ACFIJLN", + "ACFIJLP", + "ACFIJMN", + "ACFIJMP", + "ACFIJNP", + "ACFILMN", + "ACFILMP", + "ACFILNP", + "ACFIMNP", + "ACFJLMN", + "ACFJLMP", + "ACFJLNP", + "ACFJMNP", + "ACFLMNP", + "ACGHIJL", + "ACGHIJM", + "ACGHIJN", + "ACGHIJP", + "ACGHILM", + "ACGHILN", + "ACGHILP", + "ACGHIMN", + "ACGHIMP", + "ACGHINP", + "ACGHJLM", + "ACGHJLN", + "ACGHJLP", + "ACGHJMN", + "ACGHJMP", + "ACGHJNP", + "ACGHLMN", + "ACGHLMP", + "ACGHLNP", + "ACGHMNP", + "ACGIJLM", + "ACGIJLN", + "ACGIJLP", + "ACGIJMN", + "ACGIJMP", + "ACGIJNP", + "ACGILMN", + "ACGILMP", + "ACGILNP", + "ACGIMNP", + "ACGJLMN", + "ACGJLMP", + "ACGJLNP", + "ACGJMNP", + "ACGLMNP", + "ACHIJLM", + "ACHIJLN", + "ACHIJLP", + "ACHIJMN", + "ACHIJMP", + "ACHIJNP", + "ACHILMN", + "ACHILMP", + "ACHILNP", + "ACHIMNP", + "ACHJLMN", + "ACHJLMP", + "ACHJLNP", + "ACHJMNP", + "ACHLMNP", + "ACIJLMN", + "ACIJLMP", + "ACIJLNP", + "ACIJMNP", + "ACILMNP", + "ACJLMNP", + "AEFGHIJ", + "AEFGHIL", + "AEFGHIM", + "AEFGHIN", + "AEFGHIP", + "AEFGHJL", + "AEFGHJM", + "AEFGHJN", + "AEFGHJP", + "AEFGHLM", + "AEFGHLN", + "AEFGHLP", + "AEFGHMN", + "AEFGHMP", + "AEFGHNP", + "AEFGIJL", + "AEFGIJM", + "AEFGIJN", + "AEFGIJP", + "AEFGILM", + "AEFGILN", + "AEFGILP", + "AEFGIMN", + "AEFGIMP", + "AEFGINP", + "AEFGJLM", + "AEFGJLN", + "AEFGJLP", + "AEFGJMN", + "AEFGJMP", + "AEFGJNP", + "AEFGLMN", + "AEFGLMP", + "AEFGLNP", + "AEFGMNP", + "AEFHIJL", + "AEFHIJM", + "AEFHIJN", + "AEFHIJP", + "AEFHILM", + "AEFHILN", + "AEFHILP", + "AEFHIMN", + "AEFHIMP", + "AEFHINP", + "AEFHJLM", + "AEFHJLN", + "AEFHJLP", + "AEFHJMN", + "AEFHJMP", + "AEFHJNP", + "AEFHLMN", + "AEFHLMP", + "AEFHLNP", + "AEFHMNP", + "AEFIJLM", + "AEFIJLN", + "AEFIJLP", + "AEFIJMN", + "AEFIJMP", + "AEFIJNP", + "AEFILMN", + "AEFILMP", + "AEFILNP", + "AEFIMNP", + "AEFJLMN", + "AEFJLMP", + "AEFJLNP", + "AEFJMNP", + "AEFLMNP", + "AEGHIJL", + "AEGHIJM", + "AEGHIJN", + "AEGHIJP", + "AEGHILM", + "AEGHILN", + "AEGHILP", + "AEGHIMN", + "AEGHIMP", + "AEGHINP", + "AEGHJLM", + "AEGHJLN", + "AEGHJLP", + "AEGHJMN", + "AEGHJMP", + "AEGHJNP", + "AEGHLMN", + "AEGHLMP", + "AEGHLNP", + "AEGHMNP", + "AEGIJLM", + "AEGIJLN", + "AEGIJLP", + "AEGIJMN", + "AEGIJMP", + "AEGIJNP", + "AEGILMN", + "AEGILMP", + "AEGILNP", + "AEGIMNP", + "AEGJLMN", + "AEGJLMP", + "AEGJLNP", + "AEGJMNP", + "AEGLMNP", + "AEHIJLM", + "AEHIJLN", + "AEHIJLP", + "AEHIJMN", + "AEHIJMP", + "AEHIJNP", + "AEHILMN", + "AEHILMP", + "AEHILNP", + "AEHIMNP", + "AEHJLMN", + "AEHJLMP", + "AEHJLNP", + "AEHJMNP", + "AEHLMNP", + "AEIJLMN", + "AEIJLMP", + "AEIJLNP", + "AEIJMNP", + "AEILMNP", + "AEJLMNP", + "AFGHIJL", + "AFGHIJM", + "AFGHIJN", + "AFGHIJP", + "AFGHILM", + "AFGHILN", + "AFGHILP", + "AFGHIMN", + "AFGHIMP", + "AFGHINP", + "AFGHJLM", + "AFGHJLN", + "AFGHJLP", + "AFGHJMN", + "AFGHJMP", + "AFGHJNP", + "AFGHLMN", + "AFGHLMP", + "AFGHLNP", + "AFGHMNP", + "AFGIJLM", + "AFGIJLN", + "AFGIJLP", + "AFGIJMN", + "AFGIJMP", + "AFGIJNP", + "AFGILMN", + "AFGILMP", + "AFGILNP", + "AFGIMNP", + "AFGJLMN", + "AFGJLMP", + "AFGJLNP", + "AFGJMNP", + "AFGLMNP", + "AFHIJLM", + "AFHIJLN", + "AFHIJLP", + "AFHIJMN", + "AFHIJMP", + "AFHIJNP", + "AFHILMN", + "AFHILMP", + "AFHILNP", + "AFHIMNP", + "AFHJLMN", + "AFHJLMP", + "AFHJLNP", + "AFHJMNP", + "AFHLMNP", + "AFIJLMN", + "AFIJLMP", + "AFIJLNP", + "AFIJMNP", + "AFILMNP", + "AFJLMNP", + "AGHIJLM", + "AGHIJLN", + "AGHIJLP", + "AGHIJMN", + "AGHIJMP", + "AGHIJNP", + "AGHILMN", + "AGHILMP", + "AGHILNP", + "AGHIMNP", + "AGHJLMN", + "AGHJLMP", + "AGHJLNP", + "AGHJMNP", + "AGHLMNP", + "AGIJLMN", + "AGIJLMP", + "AGIJLNP", + "AGIJMNP", + "AGILMNP", + "AGJLMNP", + "AHIJLMN", + "AHIJLMP", + "AHIJLNP", + "AHIJMNP", + "AHILMNP", + "AHJLMNP", + "AIJLMNP", + "BCEFGHI", + "BCEFGHJ", + "BCEFGHL", + "BCEFGHM", + "BCEFGHN", + "BCEFGHP", + "BCEFGIJ", + "BCEFGIL", + "BCEFGIM", + "BCEFGIN", + "BCEFGIP", + "BCEFGJL", + "BCEFGJM", + "BCEFGJN", + "BCEFGJP", + "BCEFGLM", + "BCEFGLN", + "BCEFGLP", + "BCEFGMN", + "BCEFGMP", + "BCEFGNP", + "BCEFHIJ", + "BCEFHIL", + "BCEFHIM", + "BCEFHIN", + "BCEFHIP", + "BCEFHJL", + "BCEFHJM", + "BCEFHJN", + "BCEFHJP", + "BCEFHLM", + "BCEFHLN", + "BCEFHLP", + "BCEFHMN", + "BCEFHMP", + "BCEFHNP", + "BCEFIJL", + "BCEFIJM", + "BCEFIJN", + "BCEFIJP", + "BCEFILM", + "BCEFILN", + "BCEFILP", + "BCEFIMN", + "BCEFIMP", + "BCEFINP", + "BCEFJLM", + "BCEFJLN", + "BCEFJLP", + "BCEFJMN", + "BCEFJMP", + "BCEFJNP", + "BCEFLMN", + "BCEFLMP", + "BCEFLNP", + "BCEFMNP", + "BCEGHIJ", + "BCEGHIL", + "BCEGHIM", + "BCEGHIN", + "BCEGHIP", + "BCEGHJL", + "BCEGHJM", + "BCEGHJN", + "BCEGHJP", + "BCEGHLM", + "BCEGHLN", + "BCEGHLP", + "BCEGHMN", + "BCEGHMP", + "BCEGHNP", + "BCEGIJL", + "BCEGIJM", + "BCEGIJN", + "BCEGIJP", + "BCEGILM", + "BCEGILN", + "BCEGILP", + "BCEGIMN", + "BCEGIMP", + "BCEGINP", + "BCEGJLM", + "BCEGJLN", + "BCEGJLP", + "BCEGJMN", + "BCEGJMP", + "BCEGJNP", + "BCEGLMN", + "BCEGLMP", + "BCEGLNP", + "BCEGMNP", + "BCEHIJL", + "BCEHIJM", + "BCEHIJN", + "BCEHIJP", + "BCEHILM", + "BCEHILN", + "BCEHILP", + "BCEHIMN", + "BCEHIMP", + "BCEHINP", + "BCEHJLM", + "BCEHJLN", + "BCEHJLP", + "BCEHJMN", + "BCEHJMP", + "BCEHJNP", + "BCEHLMN", + "BCEHLMP", + "BCEHLNP", + "BCEHMNP", + "BCEIJLM", + "BCEIJLN", + "BCEIJLP", + "BCEIJMN", + "BCEIJMP", + "BCEIJNP", + "BCEILMN", + "BCEILMP", + "BCEILNP", + "BCEIMNP", + "BCEJLMN", + "BCEJLMP", + "BCEJLNP", + "BCEJMNP", + "BCELMNP", + "BCFGHIJ", + "BCFGHIL", + "BCFGHIM", + "BCFGHIN", + "BCFGHIP", + "BCFGHJL", + "BCFGHJM", + "BCFGHJN", + "BCFGHJP", + "BCFGHLM", + "BCFGHLN", + "BCFGHLP", + "BCFGHMN", + "BCFGHMP", + "BCFGHNP", + "BCFGIJL", + "BCFGIJM", + "BCFGIJN", + "BCFGIJP", + "BCFGILM", + "BCFGILN", + "BCFGILP", + "BCFGIMN", + "BCFGIMP", + "BCFGINP", + "BCFGJLM", + "BCFGJLN", + "BCFGJLP", + "BCFGJMN", + "BCFGJMP", + "BCFGJNP", + "BCFGLMN", + "BCFGLMP", + "BCFGLNP", + "BCFGMNP", + "BCFHIJL", + "BCFHIJM", + "BCFHIJN", + "BCFHIJP", + "BCFHILM", + "BCFHILN", + "BCFHILP", + "BCFHIMN", + "BCFHIMP", + "BCFHINP", + "BCFHJLM", + "BCFHJLN", + "BCFHJLP", + "BCFHJMN", + "BCFHJMP", + "BCFHJNP", + "BCFHLMN", + "BCFHLMP", + "BCFHLNP", + "BCFHMNP", + "BCFIJLM", + "BCFIJLN", + "BCFIJLP", + "BCFIJMN", + "BCFIJMP", + "BCFIJNP", + "BCFILMN", + "BCFILMP", + "BCFILNP", + "BCFIMNP", + "BCFJLMN", + "BCFJLMP", + "BCFJLNP", + "BCFJMNP", + "BCFLMNP", + "BCGHIJL", + "BCGHIJM", + "BCGHIJN", + "BCGHIJP", + "BCGHILM", + "BCGHILN", + "BCGHILP", + "BCGHIMN", + "BCGHIMP", + "BCGHINP", + "BCGHJLM", + "BCGHJLN", + "BCGHJLP", + "BCGHJMN", + "BCGHJMP", + "BCGHJNP", + "BCGHLMN", + "BCGHLMP", + "BCGHLNP", + "BCGHMNP", + "BCGIJLM", + "BCGIJLN", + "BCGIJLP", + "BCGIJMN", + "BCGIJMP", + "BCGIJNP", + "BCGILMN", + "BCGILMP", + "BCGILNP", + "BCGIMNP", + "BCGJLMN", + "BCGJLMP", + "BCGJLNP", + "BCGJMNP", + "BCGLMNP", + "BCHIJLM", + "BCHIJLN", + "BCHIJLP", + "BCHIJMN", + "BCHIJMP", + "BCHIJNP", + "BCHILMN", + "BCHILMP", + "BCHILNP", + "BCHIMNP", + "BCHJLMN", + "BCHJLMP", + "BCHJLNP", + "BCHJMNP", + "BCHLMNP", + "BCIJLMN", + "BCIJLMP", + "BCIJLNP", + "BCIJMNP", + "BCILMNP", + "BCJLMNP", + "BEFGHIJ", + "BEFGHIL", + "BEFGHIM", + "BEFGHIN", + "BEFGHIP", + "BEFGHJL", + "BEFGHJM", + "BEFGHJN", + "BEFGHJP", + "BEFGHLM", + "BEFGHLN", + "BEFGHLP", + "BEFGHMN", + "BEFGHMP", + "BEFGHNP", + "BEFGIJL", + "BEFGIJM", + "BEFGIJN", + "BEFGIJP", + "BEFGILM", + "BEFGILN", + "BEFGILP", + "BEFGIMN", + "BEFGIMP", + "BEFGINP", + "BEFGJLM", + "BEFGJLN", + "BEFGJLP", + "BEFGJMN", + "BEFGJMP", + "BEFGJNP", + "BEFGLMN", + "BEFGLMP", + "BEFGLNP", + "BEFGMNP", + "BEFHIJL", + "BEFHIJM", + "BEFHIJN", + "BEFHIJP", + "BEFHILM", + "BEFHILN", + "BEFHILP", + "BEFHIMN", + "BEFHIMP", + "BEFHINP", + "BEFHJLM", + "BEFHJLN", + "BEFHJLP", + "BEFHJMN", + "BEFHJMP", + "BEFHJNP", + "BEFHLMN", + "BEFHLMP", + "BEFHLNP", + "BEFHMNP", + "BEFIJLM", + "BEFIJLN", + "BEFIJLP", + "BEFIJMN", + "BEFIJMP", + "BEFIJNP", + "BEFILMN", + "BEFILMP", + "BEFILNP", + "BEFIMNP", + "BEFJLMN", + "BEFJLMP", + "BEFJLNP", + "BEFJMNP", + "BEFLMNP", + "BEGHIJL", + "BEGHIJM", + "BEGHIJN", + "BEGHIJP", + "BEGHILM", + "BEGHILN", + "BEGHILP", + "BEGHIMN", + "BEGHIMP", + "BEGHINP", + "BEGHJLM", + "BEGHJLN", + "BEGHJLP", + "BEGHJMN", + "BEGHJMP", + "BEGHJNP", + "BEGHLMN", + "BEGHLMP", + "BEGHLNP", + "BEGHMNP", + "BEGIJLM", + "BEGIJLN", + "BEGIJLP", + "BEGIJMN", + "BEGIJMP", + "BEGIJNP", + "BEGILMN", + "BEGILMP", + "BEGILNP", + "BEGIMNP", + "BEGJLMN", + "BEGJLMP", + "BEGJLNP", + "BEGJMNP", + "BEGLMNP", + "BEHIJLM", + "BEHIJLN", + "BEHIJLP", + "BEHIJMN", + "BEHIJMP", + "BEHIJNP", + "BEHILMN", + "BEHILMP", + "BEHILNP", + "BEHIMNP", + "BEHJLMN", + "BEHJLMP", + "BEHJLNP", + "BEHJMNP", + "BEHLMNP", + "BEIJLMN", + "BEIJLMP", + "BEIJLNP", + "BEIJMNP", + "BEILMNP", + "BEJLMNP", + "BFGHIJL", + "BFGHIJM", + "BFGHIJN", + "BFGHIJP", + "BFGHILM", + "BFGHILN", + "BFGHILP", + "BFGHIMN", + "BFGHIMP", + "BFGHINP", + "BFGHJLM", + "BFGHJLN", + "BFGHJLP", + "BFGHJMN", + "BFGHJMP", + "BFGHJNP", + "BFGHLMN", + "BFGHLMP", + "BFGHLNP", + "BFGHMNP", + "BFGIJLM", + "BFGIJLN", + "BFGIJLP", + "BFGIJMN", + "BFGIJMP", + "BFGIJNP", + "BFGILMN", + "BFGILMP", + "BFGILNP", + "BFGIMNP", + "BFGJLMN", + "BFGJLMP", + "BFGJLNP", + "BFGJMNP", + "BFGLMNP", + "BFHIJLM", + "BFHIJLN", + "BFHIJLP", + "BFHIJMN", + "BFHIJMP", + "BFHIJNP", + "BFHILMN", + "BFHILMP", + "BFHILNP", + "BFHIMNP", + "BFHJLMN", + "BFHJLMP", + "BFHJLNP", + "BFHJMNP", + "BFHLMNP", + "BFIJLMN", + "BFIJLMP", + "BFIJLNP", + "BFIJMNP", + "BFILMNP", + "BFJLMNP", + "BGHIJLM", + "BGHIJLN", + "BGHIJLP", + "BGHIJMN", + "BGHIJMP", + "BGHIJNP", + "BGHILMN", + "BGHILMP", + "BGHILNP", + "BGHIMNP", + "BGHJLMN", + "BGHJLMP", + "BGHJLNP", + "BGHJMNP", + "BGHLMNP", + "BGIJLMN", + "BGIJLMP", + "BGIJLNP", + "BGIJMNP", + "BGILMNP", + "BGJLMNP", + "BHIJLMN", + "BHIJLMP", + "BHIJLNP", + "BHIJMNP", + "BHILMNP", + "BHJLMNP", + "BIJLMNP", + "CEFGHIJ", + "CEFGHIL", + "CEFGHIM", + "CEFGHIN", + "CEFGHIP", + "CEFGHJL", + "CEFGHJM", + "CEFGHJN", + "CEFGHJP", + "CEFGHLM", + "CEFGHLN", + "CEFGHLP", + "CEFGHMN", + "CEFGHMP", + "CEFGHNP", + "CEFGIJL", + "CEFGIJM", + "CEFGIJN", + "CEFGIJP", + "CEFGILM", + "CEFGILN", + "CEFGILP", + "CEFGIMN", + "CEFGIMP", + "CEFGINP", + "CEFGJLM", + "CEFGJLN", + "CEFGJLP", + "CEFGJMN", + "CEFGJMP", + "CEFGJNP", + "CEFGLMN", + "CEFGLMP", + "CEFGLNP", + "CEFGMNP", + "CEFHIJL", + "CEFHIJM", + "CEFHIJN", + "CEFHIJP", + "CEFHILM", + "CEFHILN", + "CEFHILP", + "CEFHIMN", + "CEFHIMP", + "CEFHINP", + "CEFHJLM", + "CEFHJLN", + "CEFHJLP", + "CEFHJMN", + "CEFHJMP", + "CEFHJNP", + "CEFHLMN", + "CEFHLMP", + "CEFHLNP", + "CEFHMNP", + "CEFIJLM", + "CEFIJLN", + "CEFIJLP", + "CEFIJMN", + "CEFIJMP", + "CEFIJNP", + "CEFILMN", + "CEFILMP", + "CEFILNP", + "CEFIMNP", + "CEFJLMN", + "CEFJLMP", + "CEFJLNP", + "CEFJMNP", + "CEFLMNP", + "CEGHIJL", + "CEGHIJM", + "CEGHIJN", + "CEGHIJP", + "CEGHILM", + "CEGHILN", + "CEGHILP", + "CEGHIMN", + "CEGHIMP", + "CEGHINP", + "CEGHJLM", + "CEGHJLN", + "CEGHJLP", + "CEGHJMN", + "CEGHJMP", + "CEGHJNP", + "CEGHLMN", + "CEGHLMP", + "CEGHLNP", + "CEGHMNP", + "CEGIJLM", + "CEGIJLN", + "CEGIJLP", + "CEGIJMN", + "CEGIJMP", + "CEGIJNP", + "CEGILMN", + "CEGILMP", + "CEGILNP", + "CEGIMNP", + "CEGJLMN", + "CEGJLMP", + "CEGJLNP", + "CEGJMNP", + "CEGLMNP", + "CEHIJLM", + "CEHIJLN", + "CEHIJLP", + "CEHIJMN", + "CEHIJMP", + "CEHIJNP", + "CEHILMN", + "CEHILMP", + "CEHILNP", + "CEHIMNP", + "CEHJLMN", + "CEHJLMP", + "CEHJLNP", + "CEHJMNP", + "CEHLMNP", + "CEIJLMN", + "CEIJLMP", + "CEIJLNP", + "CEIJMNP", + "CEILMNP", + "CEJLMNP", + "CFGHIJL", + "CFGHIJM", + "CFGHIJN", + "CFGHIJP", + "CFGHILM", + "CFGHILN", + "CFGHILP", + "CFGHIMN", + "CFGHIMP", + "CFGHINP", + "CFGHJLM", + "CFGHJLN", + "CFGHJLP", + "CFGHJMN", + "CFGHJMP", + "CFGHJNP", + "CFGHLMN", + "CFGHLMP", + "CFGHLNP", + "CFGHMNP", + "CFGIJLM", + "CFGIJLN", + "CFGIJLP", + "CFGIJMN", + "CFGIJMP", + "CFGIJNP", + "CFGILMN", + "CFGILMP", + "CFGILNP", + "CFGIMNP", + "CFGJLMN", + "CFGJLMP", + "CFGJLNP", + "CFGJMNP", + "CFGLMNP", + "CFHIJLM", + "CFHIJLN", + "CFHIJLP", + "CFHIJMN", + "CFHIJMP", + "CFHIJNP", + "CFHILMN", + "CFHILMP", + "CFHILNP", + "CFHIMNP", + "CFHJLMN", + "CFHJLMP", + "CFHJLNP", + "CFHJMNP", + "CFHLMNP", + "CFIJLMN", + "CFIJLMP", + "CFIJLNP", + "CFIJMNP", + "CFILMNP", + "CFJLMNP", + "CGHIJLM", + "CGHIJLN", + "CGHIJLP", + "CGHIJMN", + "CGHIJMP", + "CGHIJNP", + "CGHILMN", + "CGHILMP", + "CGHILNP", + "CGHIMNP", + "CGHJLMN", + "CGHJLMP", + "CGHJLNP", + "CGHJMNP", + "CGHLMNP", + "CGIJLMN", + "CGIJLMP", + "CGIJLNP", + "CGIJMNP", + "CGILMNP", + "CGJLMNP", + "CHIJLMN", + "CHIJLMP", + "CHIJLNP", + "CHIJMNP", + "CHILMNP", + "CHJLMNP", + "CIJLMNP", + "EFGHIJL", + "EFGHIJM", + "EFGHIJN", + "EFGHIJP", + "EFGHILM", + "EFGHILN", + "EFGHILP", + "EFGHIMN", + "EFGHIMP", + "EFGHINP", + "EFGHJLM", + "EFGHJLN", + "EFGHJLP", + "EFGHJMN", + "EFGHJMP", + "EFGHJNP", + "EFGHLMN", + "EFGHLMP", + "EFGHLNP", + "EFGHMNP", + "EFGIJLM", + "EFGIJLN", + "EFGIJLP", + "EFGIJMN", + "EFGIJMP", + "EFGIJNP", + "EFGILMN", + "EFGILMP", + "EFGILNP", + "EFGIMNP", + "EFGJLMN", + "EFGJLMP", + "EFGJLNP", + "EFGJMNP", + "EFGLMNP", + "EFHIJLM", + "EFHIJLN", + "EFHIJLP", + "EFHIJMN", + "EFHIJMP", + "EFHIJNP", + "EFHILMN", + "EFHILMP", + "EFHILNP", + "EFHIMNP", + "EFHJLMN", + "EFHJLMP", + "EFHJLNP", + "EFHJMNP", + "EFHLMNP", + "EFIJLMN", + "EFIJLMP", + "EFIJLNP", + "EFIJMNP", + "EFILMNP", + "EFJLMNP", + "EGHIJLM", + "EGHIJLN", + "EGHIJLP", + "EGHIJMN", + "EGHIJMP", + "EGHIJNP", + "EGHILMN", + "EGHILMP", + "EGHILNP", + "EGHIMNP", + "EGHJLMN", + "EGHJLMP", + "EGHJLNP", + "EGHJMNP", + "EGHLMNP", + "EGIJLMN", + "EGIJLMP", + "EGIJLNP", + "EGIJMNP", + "EGILMNP", + "EGJLMNP", + "EHIJLMN", + "EHIJLMP", + "EHIJLNP", + "EHIJMNP", + "EHILMNP", + "EHJLMNP", + "EIJLMNP", + "FGHIJLM", + "FGHIJLN", + "FGHIJLP", + "FGHIJMN", + "FGHIJMP", + "FGHIJNP", + "FGHILMN", + "FGHILMP", + "FGHILNP", + "FGHIMNP", + "FGHJLMN", + "FGHJLMP", + "FGHJLNP", + "FGHJMNP", + "FGHLMNP", + "FGIJLMN", + "FGIJLMP", + "FGIJLNP", + "FGIJMNP", + "FGILMNP", + "FGJLMNP", + "FHIJLMN", + "FHIJLMP", + "FHIJLNP", + "FHIJMNP", + "FHILMNP", + "FHJLMNP", + "FIJLMNP", + "GHIJLMN", + "GHIJLMP", + "GHIJLNP", + "GHIJMNP", + "GHILMNP", + "GHJLMNP", + "GIJLMNP", + "HIJLMNP", + "ABCEFGHI", + "ABCEFGHJ", + "ABCEFGHL", + "ABCEFGHM", + "ABCEFGHN", + "ABCEFGHP", + "ABCEFGIJ", + "ABCEFGIL", + "ABCEFGIM", + "ABCEFGIN", + "ABCEFGIP", + "ABCEFGJL", + "ABCEFGJM", + "ABCEFGJN", + "ABCEFGJP", + "ABCEFGLM", + "ABCEFGLN", + "ABCEFGLP", + "ABCEFGMN", + "ABCEFGMP", + "ABCEFGNP", + "ABCEFHIJ", + "ABCEFHIL", + "ABCEFHIM", + "ABCEFHIN", + "ABCEFHIP", + "ABCEFHJL", + "ABCEFHJM", + "ABCEFHJN", + "ABCEFHJP", + "ABCEFHLM", + "ABCEFHLN", + "ABCEFHLP", + "ABCEFHMN", + "ABCEFHMP", + "ABCEFHNP", + "ABCEFIJL", + "ABCEFIJM", + "ABCEFIJN", + "ABCEFIJP", + "ABCEFILM", + "ABCEFILN", + "ABCEFILP", + "ABCEFIMN", + "ABCEFIMP", + "ABCEFINP", + "ABCEFJLM", + "ABCEFJLN", + "ABCEFJLP", + "ABCEFJMN", + "ABCEFJMP", + "ABCEFJNP", + "ABCEFLMN", + "ABCEFLMP", + "ABCEFLNP", + "ABCEFMNP", + "ABCEGHIJ", + "ABCEGHIL", + "ABCEGHIM", + "ABCEGHIN", + "ABCEGHIP", + "ABCEGHJL", + "ABCEGHJM", + "ABCEGHJN", + "ABCEGHJP", + "ABCEGHLM", + "ABCEGHLN", + "ABCEGHLP", + "ABCEGHMN", + "ABCEGHMP", + "ABCEGHNP", + "ABCEGIJL", + "ABCEGIJM", + "ABCEGIJN", + "ABCEGIJP", + "ABCEGILM", + "ABCEGILN", + "ABCEGILP", + "ABCEGIMN", + "ABCEGIMP", + "ABCEGINP", + "ABCEGJLM", + "ABCEGJLN", + "ABCEGJLP", + "ABCEGJMN", + "ABCEGJMP", + "ABCEGJNP", + "ABCEGLMN", + "ABCEGLMP", + "ABCEGLNP", + "ABCEGMNP", + "ABCEHIJL", + "ABCEHIJM", + "ABCEHIJN", + "ABCEHIJP", + "ABCEHILM", + "ABCEHILN", + "ABCEHILP", + "ABCEHIMN", + "ABCEHIMP", + "ABCEHINP", + "ABCEHJLM", + "ABCEHJLN", + "ABCEHJLP", + "ABCEHJMN", + "ABCEHJMP", + "ABCEHJNP", + "ABCEHLMN", + "ABCEHLMP", + "ABCEHLNP", + "ABCEHMNP", + "ABCEIJLM", + "ABCEIJLN", + "ABCEIJLP", + "ABCEIJMN", + "ABCEIJMP", + "ABCEIJNP", + "ABCEILMN", + "ABCEILMP", + "ABCEILNP", + "ABCEIMNP", + "ABCEJLMN", + "ABCEJLMP", + "ABCEJLNP", + "ABCEJMNP", + "ABCELMNP", + "ABCFGHIJ", + "ABCFGHIL", + "ABCFGHIM", + "ABCFGHIN", + "ABCFGHIP", + "ABCFGHJL", + "ABCFGHJM", + "ABCFGHJN", + "ABCFGHJP", + "ABCFGHLM", + "ABCFGHLN", + "ABCFGHLP", + "ABCFGHMN", + "ABCFGHMP", + "ABCFGHNP", + "ABCFGIJL", + "ABCFGIJM", + "ABCFGIJN", + "ABCFGIJP", + "ABCFGILM", + "ABCFGILN", + "ABCFGILP", + "ABCFGIMN", + "ABCFGIMP", + "ABCFGINP", + "ABCFGJLM", + "ABCFGJLN", + "ABCFGJLP", + "ABCFGJMN", + "ABCFGJMP", + "ABCFGJNP", + "ABCFGLMN", + "ABCFGLMP", + "ABCFGLNP", + "ABCFGMNP", + "ABCFHIJL", + "ABCFHIJM", + "ABCFHIJN", + "ABCFHIJP", + "ABCFHILM", + "ABCFHILN", + "ABCFHILP", + "ABCFHIMN", + "ABCFHIMP", + "ABCFHINP", + "ABCFHJLM", + "ABCFHJLN", + "ABCFHJLP", + "ABCFHJMN", + "ABCFHJMP", + "ABCFHJNP", + "ABCFHLMN", + "ABCFHLMP", + "ABCFHLNP", + "ABCFHMNP", + "ABCFIJLM", + "ABCFIJLN", + "ABCFIJLP", + "ABCFIJMN", + "ABCFIJMP", + "ABCFIJNP", + "ABCFILMN", + "ABCFILMP", + "ABCFILNP", + "ABCFIMNP", + "ABCFJLMN", + "ABCFJLMP", + "ABCFJLNP", + "ABCFJMNP", + "ABCFLMNP", + "ABCGHIJL", + "ABCGHIJM", + "ABCGHIJN", + "ABCGHIJP", + "ABCGHILM", + "ABCGHILN", + "ABCGHILP", + "ABCGHIMN", + "ABCGHIMP", + "ABCGHINP", + "ABCGHJLM", + "ABCGHJLN", + "ABCGHJLP", + "ABCGHJMN", + "ABCGHJMP", + "ABCGHJNP", + "ABCGHLMN", + "ABCGHLMP", + "ABCGHLNP", + "ABCGHMNP", + "ABCGIJLM", + "ABCGIJLN", + "ABCGIJLP", + "ABCGIJMN", + "ABCGIJMP", + "ABCGIJNP", + "ABCGILMN", + "ABCGILMP", + "ABCGILNP", + "ABCGIMNP", + "ABCGJLMN", + "ABCGJLMP", + "ABCGJLNP", + "ABCGJMNP", + "ABCGLMNP", + "ABCHIJLM", + "ABCHIJLN", + "ABCHIJLP", + "ABCHIJMN", + "ABCHIJMP", + "ABCHIJNP", + "ABCHILMN", + "ABCHILMP", + "ABCHILNP", + "ABCHIMNP", + "ABCHJLMN", + "ABCHJLMP", + "ABCHJLNP", + "ABCHJMNP", + "ABCHLMNP", + "ABCIJLMN", + "ABCIJLMP", + "ABCIJLNP", + "ABCIJMNP", + "ABCILMNP", + "ABCJLMNP", + "ABEFGHIJ", + "ABEFGHIL", + "ABEFGHIM", + "ABEFGHIN", + "ABEFGHIP", + "ABEFGHJL", + "ABEFGHJM", + "ABEFGHJN", + "ABEFGHJP", + "ABEFGHLM", + "ABEFGHLN", + "ABEFGHLP", + "ABEFGHMN", + "ABEFGHMP", + "ABEFGHNP", + "ABEFGIJL", + "ABEFGIJM", + "ABEFGIJN", + "ABEFGIJP", + "ABEFGILM", + "ABEFGILN", + "ABEFGILP", + "ABEFGIMN", + "ABEFGIMP", + "ABEFGINP", + "ABEFGJLM", + "ABEFGJLN", + "ABEFGJLP", + "ABEFGJMN", + "ABEFGJMP", + "ABEFGJNP", + "ABEFGLMN", + "ABEFGLMP", + "ABEFGLNP", + "ABEFGMNP", + "ABEFHIJL", + "ABEFHIJM", + "ABEFHIJN", + "ABEFHIJP", + "ABEFHILM", + "ABEFHILN", + "ABEFHILP", + "ABEFHIMN", + "ABEFHIMP", + "ABEFHINP", + "ABEFHJLM", + "ABEFHJLN", + "ABEFHJLP", + "ABEFHJMN", + "ABEFHJMP", + "ABEFHJNP", + "ABEFHLMN", + "ABEFHLMP", + "ABEFHLNP", + "ABEFHMNP", + "ABEFIJLM", + "ABEFIJLN", + "ABEFIJLP", + "ABEFIJMN", + "ABEFIJMP", + "ABEFIJNP", + "ABEFILMN", + "ABEFILMP", + "ABEFILNP", + "ABEFIMNP", + "ABEFJLMN", + "ABEFJLMP", + "ABEFJLNP", + "ABEFJMNP", + "ABEFLMNP", + "ABEGHIJL", + "ABEGHIJM", + "ABEGHIJN", + "ABEGHIJP", + "ABEGHILM", + "ABEGHILN", + "ABEGHILP", + "ABEGHIMN", + "ABEGHIMP", + "ABEGHINP", + "ABEGHJLM", + "ABEGHJLN", + "ABEGHJLP", + "ABEGHJMN", + "ABEGHJMP", + "ABEGHJNP", + "ABEGHLMN", + "ABEGHLMP", + "ABEGHLNP", + "ABEGHMNP", + "ABEGIJLM", + "ABEGIJLN", + "ABEGIJLP", + "ABEGIJMN", + "ABEGIJMP", + "ABEGIJNP", + "ABEGILMN", + "ABEGILMP", + "ABEGILNP", + "ABEGIMNP", + "ABEGJLMN", + "ABEGJLMP", + "ABEGJLNP", + "ABEGJMNP", + "ABEGLMNP", + "ABEHIJLM", + "ABEHIJLN", + "ABEHIJLP", + "ABEHIJMN", + "ABEHIJMP", + "ABEHIJNP", + "ABEHILMN", + "ABEHILMP", + "ABEHILNP", + "ABEHIMNP", + "ABEHJLMN", + "ABEHJLMP", + "ABEHJLNP", + "ABEHJMNP", + "ABEHLMNP", + "ABEIJLMN", + "ABEIJLMP", + "ABEIJLNP", + "ABEIJMNP", + "ABEILMNP", + "ABEJLMNP", + "ABFGHIJL", + "ABFGHIJM", + "ABFGHIJN", + "ABFGHIJP", + "ABFGHILM", + "ABFGHILN", + "ABFGHILP", + "ABFGHIMN", + "ABFGHIMP", + "ABFGHINP", + "ABFGHJLM", + "ABFGHJLN", + "ABFGHJLP", + "ABFGHJMN", + "ABFGHJMP", + "ABFGHJNP", + "ABFGHLMN", + "ABFGHLMP", + "ABFGHLNP", + "ABFGHMNP", + "ABFGIJLM", + "ABFGIJLN", + "ABFGIJLP", + "ABFGIJMN", + "ABFGIJMP", + "ABFGIJNP", + "ABFGILMN", + "ABFGILMP", + "ABFGILNP", + "ABFGIMNP", + "ABFGJLMN", + "ABFGJLMP", + "ABFGJLNP", + "ABFGJMNP", + "ABFGLMNP", + "ABFHIJLM", + "ABFHIJLN", + "ABFHIJLP", + "ABFHIJMN", + "ABFHIJMP", + "ABFHIJNP", + "ABFHILMN", + "ABFHILMP", + "ABFHILNP", + "ABFHIMNP", + "ABFHJLMN", + "ABFHJLMP", + "ABFHJLNP", + "ABFHJMNP", + "ABFHLMNP", + "ABFIJLMN", + "ABFIJLMP", + "ABFIJLNP", + "ABFIJMNP", + "ABFILMNP", + "ABFJLMNP", + "ABGHIJLM", + "ABGHIJLN", + "ABGHIJLP", + "ABGHIJMN", + "ABGHIJMP", + "ABGHIJNP", + "ABGHILMN", + "ABGHILMP", + "ABGHILNP", + "ABGHIMNP", + "ABGHJLMN", + "ABGHJLMP", + "ABGHJLNP", + "ABGHJMNP", + "ABGHLMNP", + "ABGIJLMN", + "ABGIJLMP", + "ABGIJLNP", + "ABGIJMNP", + "ABGILMNP", + "ABGJLMNP", + "ABHIJLMN", + "ABHIJLMP", + "ABHIJLNP", + "ABHIJMNP", + "ABHILMNP", + "ABHJLMNP", + "ABIJLMNP", + "ACEFGHIJ", + "ACEFGHIL", + "ACEFGHIM", + "ACEFGHIN", + "ACEFGHIP", + "ACEFGHJL", + "ACEFGHJM", + "ACEFGHJN", + "ACEFGHJP", + "ACEFGHLM", + "ACEFGHLN", + "ACEFGHLP", + "ACEFGHMN", + "ACEFGHMP", + "ACEFGHNP", + "ACEFGIJL", + "ACEFGIJM", + "ACEFGIJN", + "ACEFGIJP", + "ACEFGILM", + "ACEFGILN", + "ACEFGILP", + "ACEFGIMN", + "ACEFGIMP", + "ACEFGINP", + "ACEFGJLM", + "ACEFGJLN", + "ACEFGJLP", + "ACEFGJMN", + "ACEFGJMP", + "ACEFGJNP", + "ACEFGLMN", + "ACEFGLMP", + "ACEFGLNP", + "ACEFGMNP", + "ACEFHIJL", + "ACEFHIJM", + "ACEFHIJN", + "ACEFHIJP", + "ACEFHILM", + "ACEFHILN", + "ACEFHILP", + "ACEFHIMN", + "ACEFHIMP", + "ACEFHINP", + "ACEFHJLM", + "ACEFHJLN", + "ACEFHJLP", + "ACEFHJMN", + "ACEFHJMP", + "ACEFHJNP", + "ACEFHLMN", + "ACEFHLMP", + "ACEFHLNP", + "ACEFHMNP", + "ACEFIJLM", + "ACEFIJLN", + "ACEFIJLP", + "ACEFIJMN", + "ACEFIJMP", + "ACEFIJNP", + "ACEFILMN", + "ACEFILMP", + "ACEFILNP", + "ACEFIMNP", + "ACEFJLMN", + "ACEFJLMP", + "ACEFJLNP", + "ACEFJMNP", + "ACEFLMNP", + "ACEGHIJL", + "ACEGHIJM", + "ACEGHIJN", + "ACEGHIJP", + "ACEGHILM", + "ACEGHILN", + "ACEGHILP", + "ACEGHIMN", + "ACEGHIMP", + "ACEGHINP", + "ACEGHJLM", + "ACEGHJLN", + "ACEGHJLP", + "ACEGHJMN", + "ACEGHJMP", + "ACEGHJNP", + "ACEGHLMN", + "ACEGHLMP", + "ACEGHLNP", + "ACEGHMNP", + "ACEGIJLM", + "ACEGIJLN", + "ACEGIJLP", + "ACEGIJMN", + "ACEGIJMP", + "ACEGIJNP", + "ACEGILMN", + "ACEGILMP", + "ACEGILNP", + "ACEGIMNP", + "ACEGJLMN", + "ACEGJLMP", + "ACEGJLNP", + "ACEGJMNP", + "ACEGLMNP", + "ACEHIJLM", + "ACEHIJLN", + "ACEHIJLP", + "ACEHIJMN", + "ACEHIJMP", + "ACEHIJNP", + "ACEHILMN", + "ACEHILMP", + "ACEHILNP", + "ACEHIMNP", + "ACEHJLMN", + "ACEHJLMP", + "ACEHJLNP", + "ACEHJMNP", + "ACEHLMNP", + "ACEIJLMN", + "ACEIJLMP", + "ACEIJLNP", + "ACEIJMNP", + "ACEILMNP", + "ACEJLMNP", + "ACFGHIJL", + "ACFGHIJM", + "ACFGHIJN", + "ACFGHIJP", + "ACFGHILM", + "ACFGHILN", + "ACFGHILP", + "ACFGHIMN", + "ACFGHIMP", + "ACFGHINP", + "ACFGHJLM", + "ACFGHJLN", + "ACFGHJLP", + "ACFGHJMN", + "ACFGHJMP", + "ACFGHJNP", + "ACFGHLMN", + "ACFGHLMP", + "ACFGHLNP", + "ACFGHMNP", + "ACFGIJLM", + "ACFGIJLN", + "ACFGIJLP", + "ACFGIJMN", + "ACFGIJMP", + "ACFGIJNP", + "ACFGILMN", + "ACFGILMP", + "ACFGILNP", + "ACFGIMNP", + "ACFGJLMN", + "ACFGJLMP", + "ACFGJLNP", + "ACFGJMNP", + "ACFGLMNP", + "ACFHIJLM", + "ACFHIJLN", + "ACFHIJLP", + "ACFHIJMN", + "ACFHIJMP", + "ACFHIJNP", + "ACFHILMN", + "ACFHILMP", + "ACFHILNP", + "ACFHIMNP", + "ACFHJLMN", + "ACFHJLMP", + "ACFHJLNP", + "ACFHJMNP", + "ACFHLMNP", + "ACFIJLMN", + "ACFIJLMP", + "ACFIJLNP", + "ACFIJMNP", + "ACFILMNP", + "ACFJLMNP", + "ACGHIJLM", + "ACGHIJLN", + "ACGHIJLP", + "ACGHIJMN", + "ACGHIJMP", + "ACGHIJNP", + "ACGHILMN", + "ACGHILMP", + "ACGHILNP", + "ACGHIMNP", + "ACGHJLMN", + "ACGHJLMP", + "ACGHJLNP", + "ACGHJMNP", + "ACGHLMNP", + "ACGIJLMN", + "ACGIJLMP", + "ACGIJLNP", + "ACGIJMNP", + "ACGILMNP", + "ACGJLMNP", + "ACHIJLMN", + "ACHIJLMP", + "ACHIJLNP", + "ACHIJMNP", + "ACHILMNP", + "ACHJLMNP", + "ACIJLMNP", + "AEFGHIJL", + "AEFGHIJM", + "AEFGHIJN", + "AEFGHIJP", + "AEFGHILM", + "AEFGHILN", + "AEFGHILP", + "AEFGHIMN", + "AEFGHIMP", + "AEFGHINP", + "AEFGHJLM", + "AEFGHJLN", + "AEFGHJLP", + "AEFGHJMN", + "AEFGHJMP", + "AEFGHJNP", + "AEFGHLMN", + "AEFGHLMP", + "AEFGHLNP", + "AEFGHMNP", + "AEFGIJLM", + "AEFGIJLN", + "AEFGIJLP", + "AEFGIJMN", + "AEFGIJMP", + "AEFGIJNP", + "AEFGILMN", + "AEFGILMP", + "AEFGILNP", + "AEFGIMNP", + "AEFGJLMN", + "AEFGJLMP", + "AEFGJLNP", + "AEFGJMNP", + "AEFGLMNP", + "AEFHIJLM", + "AEFHIJLN", + "AEFHIJLP", + "AEFHIJMN", + "AEFHIJMP", + "AEFHIJNP", + "AEFHILMN", + "AEFHILMP", + "AEFHILNP", + "AEFHIMNP", + "AEFHJLMN", + "AEFHJLMP", + "AEFHJLNP", + "AEFHJMNP", + "AEFHLMNP", + "AEFIJLMN", + "AEFIJLMP", + "AEFIJLNP", + "AEFIJMNP", + "AEFILMNP", + "AEFJLMNP", + "AEGHIJLM", + "AEGHIJLN", + "AEGHIJLP", + "AEGHIJMN", + "AEGHIJMP", + "AEGHIJNP", + "AEGHILMN", + "AEGHILMP", + "AEGHILNP", + "AEGHIMNP", + "AEGHJLMN", + "AEGHJLMP", + "AEGHJLNP", + "AEGHJMNP", + "AEGHLMNP", + "AEGIJLMN", + "AEGIJLMP", + "AEGIJLNP", + "AEGIJMNP", + "AEGILMNP", + "AEGJLMNP", + "AEHIJLMN", + "AEHIJLMP", + "AEHIJLNP", + "AEHIJMNP", + "AEHILMNP", + "AEHJLMNP", + "AEIJLMNP", + "AFGHIJLM", + "AFGHIJLN", + "AFGHIJLP", + "AFGHIJMN", + "AFGHIJMP", + "AFGHIJNP", + "AFGHILMN", + "AFGHILMP", + "AFGHILNP", + "AFGHIMNP", + "AFGHJLMN", + "AFGHJLMP", + "AFGHJLNP", + "AFGHJMNP", + "AFGHLMNP", + "AFGIJLMN", + "AFGIJLMP", + "AFGIJLNP", + "AFGIJMNP", + "AFGILMNP", + "AFGJLMNP", + "AFHIJLMN", + "AFHIJLMP", + "AFHIJLNP", + "AFHIJMNP", + "AFHILMNP", + "AFHJLMNP", + "AFIJLMNP", + "AGHIJLMN", + "AGHIJLMP", + "AGHIJLNP", + "AGHIJMNP", + "AGHILMNP", + "AGHJLMNP", + "AGIJLMNP", + "AHIJLMNP", + "BCEFGHIJ", + "BCEFGHIL", + "BCEFGHIM", + "BCEFGHIN", + "BCEFGHIP", + "BCEFGHJL", + "BCEFGHJM", + "BCEFGHJN", + "BCEFGHJP", + "BCEFGHLM", + "BCEFGHLN", + "BCEFGHLP", + "BCEFGHMN", + "BCEFGHMP", + "BCEFGHNP", + "BCEFGIJL", + "BCEFGIJM", + "BCEFGIJN", + "BCEFGIJP", + "BCEFGILM", + "BCEFGILN", + "BCEFGILP", + "BCEFGIMN", + "BCEFGIMP", + "BCEFGINP", + "BCEFGJLM", + "BCEFGJLN", + "BCEFGJLP", + "BCEFGJMN", + "BCEFGJMP", + "BCEFGJNP", + "BCEFGLMN", + "BCEFGLMP", + "BCEFGLNP", + "BCEFGMNP", + "BCEFHIJL", + "BCEFHIJM", + "BCEFHIJN", + "BCEFHIJP", + "BCEFHILM", + "BCEFHILN", + "BCEFHILP", + "BCEFHIMN", + "BCEFHIMP", + "BCEFHINP", + "BCEFHJLM", + "BCEFHJLN", + "BCEFHJLP", + "BCEFHJMN", + "BCEFHJMP", + "BCEFHJNP", + "BCEFHLMN", + "BCEFHLMP", + "BCEFHLNP", + "BCEFHMNP", + "BCEFIJLM", + "BCEFIJLN", + "BCEFIJLP", + "BCEFIJMN", + "BCEFIJMP", + "BCEFIJNP", + "BCEFILMN", + "BCEFILMP", + "BCEFILNP", + "BCEFIMNP", + "BCEFJLMN", + "BCEFJLMP", + "BCEFJLNP", + "BCEFJMNP", + "BCEFLMNP", + "BCEGHIJL", + "BCEGHIJM", + "BCEGHIJN", + "BCEGHIJP", + "BCEGHILM", + "BCEGHILN", + "BCEGHILP", + "BCEGHIMN", + "BCEGHIMP", + "BCEGHINP", + "BCEGHJLM", + "BCEGHJLN", + "BCEGHJLP", + "BCEGHJMN", + "BCEGHJMP", + "BCEGHJNP", + "BCEGHLMN", + "BCEGHLMP", + "BCEGHLNP", + "BCEGHMNP", + "BCEGIJLM", + "BCEGIJLN", + "BCEGIJLP", + "BCEGIJMN", + "BCEGIJMP", + "BCEGIJNP", + "BCEGILMN", + "BCEGILMP", + "BCEGILNP", + "BCEGIMNP", + "BCEGJLMN", + "BCEGJLMP", + "BCEGJLNP", + "BCEGJMNP", + "BCEGLMNP", + "BCEHIJLM", + "BCEHIJLN", + "BCEHIJLP", + "BCEHIJMN", + "BCEHIJMP", + "BCEHIJNP", + "BCEHILMN", + "BCEHILMP", + "BCEHILNP", + "BCEHIMNP", + "BCEHJLMN", + "BCEHJLMP", + "BCEHJLNP", + "BCEHJMNP", + "BCEHLMNP", + "BCEIJLMN", + "BCEIJLMP", + "BCEIJLNP", + "BCEIJMNP", + "BCEILMNP", + "BCEJLMNP", + "BCFGHIJL", + "BCFGHIJM", + "BCFGHIJN", + "BCFGHIJP", + "BCFGHILM", + "BCFGHILN", + "BCFGHILP", + "BCFGHIMN", + "BCFGHIMP", + "BCFGHINP", + "BCFGHJLM", + "BCFGHJLN", + "BCFGHJLP", + "BCFGHJMN", + "BCFGHJMP", + "BCFGHJNP", + "BCFGHLMN", + "BCFGHLMP", + "BCFGHLNP", + "BCFGHMNP", + "BCFGIJLM", + "BCFGIJLN", + "BCFGIJLP", + "BCFGIJMN", + "BCFGIJMP", + "BCFGIJNP", + "BCFGILMN", + "BCFGILMP", + "BCFGILNP", + "BCFGIMNP", + "BCFGJLMN", + "BCFGJLMP", + "BCFGJLNP", + "BCFGJMNP", + "BCFGLMNP", + "BCFHIJLM", + "BCFHIJLN", + "BCFHIJLP", + "BCFHIJMN", + "BCFHIJMP", + "BCFHIJNP", + "BCFHILMN", + "BCFHILMP", + "BCFHILNP", + "BCFHIMNP", + "BCFHJLMN", + "BCFHJLMP", + "BCFHJLNP", + "BCFHJMNP", + "BCFHLMNP", + "BCFIJLMN", + "BCFIJLMP", + "BCFIJLNP", + "BCFIJMNP", + "BCFILMNP", + "BCFJLMNP", + "BCGHIJLM", + "BCGHIJLN", + "BCGHIJLP", + "BCGHIJMN", + "BCGHIJMP", + "BCGHIJNP", + "BCGHILMN", + "BCGHILMP", + "BCGHILNP", + "BCGHIMNP", + "BCGHJLMN", + "BCGHJLMP", + "BCGHJLNP", + "BCGHJMNP", + "BCGHLMNP", + "BCGIJLMN", + "BCGIJLMP", + "BCGIJLNP", + "BCGIJMNP", + "BCGILMNP", + "BCGJLMNP", + "BCHIJLMN", + "BCHIJLMP", + "BCHIJLNP", + "BCHIJMNP", + "BCHILMNP", + "BCHJLMNP", + "BCIJLMNP", + "BEFGHIJL", + "BEFGHIJM", + "BEFGHIJN", + "BEFGHIJP", + "BEFGHILM", + "BEFGHILN", + "BEFGHILP", + "BEFGHIMN", + "BEFGHIMP", + "BEFGHINP", + "BEFGHJLM", + "BEFGHJLN", + "BEFGHJLP", + "BEFGHJMN", + "BEFGHJMP", + "BEFGHJNP", + "BEFGHLMN", + "BEFGHLMP", + "BEFGHLNP", + "BEFGHMNP", + "BEFGIJLM", + "BEFGIJLN", + "BEFGIJLP", + "BEFGIJMN", + "BEFGIJMP", + "BEFGIJNP", + "BEFGILMN", + "BEFGILMP", + "BEFGILNP", + "BEFGIMNP", + "BEFGJLMN", + "BEFGJLMP", + "BEFGJLNP", + "BEFGJMNP", + "BEFGLMNP", + "BEFHIJLM", + "BEFHIJLN", + "BEFHIJLP", + "BEFHIJMN", + "BEFHIJMP", + "BEFHIJNP", + "BEFHILMN", + "BEFHILMP", + "BEFHILNP", + "BEFHIMNP", + "BEFHJLMN", + "BEFHJLMP", + "BEFHJLNP", + "BEFHJMNP", + "BEFHLMNP", + "BEFIJLMN", + "BEFIJLMP", + "BEFIJLNP", + "BEFIJMNP", + "BEFILMNP", + "BEFJLMNP", + "BEGHIJLM", + "BEGHIJLN", + "BEGHIJLP", + "BEGHIJMN", + "BEGHIJMP", + "BEGHIJNP", + "BEGHILMN", + "BEGHILMP", + "BEGHILNP", + "BEGHIMNP", + "BEGHJLMN", + "BEGHJLMP", + "BEGHJLNP", + "BEGHJMNP", + "BEGHLMNP", + "BEGIJLMN", + "BEGIJLMP", + "BEGIJLNP", + "BEGIJMNP", + "BEGILMNP", + "BEGJLMNP", + "BEHIJLMN", + "BEHIJLMP", + "BEHIJLNP", + "BEHIJMNP", + "BEHILMNP", + "BEHJLMNP", + "BEIJLMNP", + "BFGHIJLM", + "BFGHIJLN", + "BFGHIJLP", + "BFGHIJMN", + "BFGHIJMP", + "BFGHIJNP", + "BFGHILMN", + "BFGHILMP", + "BFGHILNP", + "BFGHIMNP", + "BFGHJLMN", + "BFGHJLMP", + "BFGHJLNP", + "BFGHJMNP", + "BFGHLMNP", + "BFGIJLMN", + "BFGIJLMP", + "BFGIJLNP", + "BFGIJMNP", + "BFGILMNP", + "BFGJLMNP", + "BFHIJLMN", + "BFHIJLMP", + "BFHIJLNP", + "BFHIJMNP", + "BFHILMNP", + "BFHJLMNP", + "BFIJLMNP", + "BGHIJLMN", + "BGHIJLMP", + "BGHIJLNP", + "BGHIJMNP", + "BGHILMNP", + "BGHJLMNP", + "BGIJLMNP", + "BHIJLMNP", + "CEFGHIJL", + "CEFGHIJM", + "CEFGHIJN", + "CEFGHIJP", + "CEFGHILM", + "CEFGHILN", + "CEFGHILP", + "CEFGHIMN", + "CEFGHIMP", + "CEFGHINP", + "CEFGHJLM", + "CEFGHJLN", + "CEFGHJLP", + "CEFGHJMN", + "CEFGHJMP", + "CEFGHJNP", + "CEFGHLMN", + "CEFGHLMP", + "CEFGHLNP", + "CEFGHMNP", + "CEFGIJLM", + "CEFGIJLN", + "CEFGIJLP", + "CEFGIJMN", + "CEFGIJMP", + "CEFGIJNP", + "CEFGILMN", + "CEFGILMP", + "CEFGILNP", + "CEFGIMNP", + "CEFGJLMN", + "CEFGJLMP", + "CEFGJLNP", + "CEFGJMNP", + "CEFGLMNP", + "CEFHIJLM", + "CEFHIJLN", + "CEFHIJLP", + "CEFHIJMN", + "CEFHIJMP", + "CEFHIJNP", + "CEFHILMN", + "CEFHILMP", + "CEFHILNP", + "CEFHIMNP", + "CEFHJLMN", + "CEFHJLMP", + "CEFHJLNP", + "CEFHJMNP", + "CEFHLMNP", + "CEFIJLMN", + "CEFIJLMP", + "CEFIJLNP", + "CEFIJMNP", + "CEFILMNP", + "CEFJLMNP", + "CEGHIJLM", + "CEGHIJLN", + "CEGHIJLP", + "CEGHIJMN", + "CEGHIJMP", + "CEGHIJNP", + "CEGHILMN", + "CEGHILMP", + "CEGHILNP", + "CEGHIMNP", + "CEGHJLMN", + "CEGHJLMP", + "CEGHJLNP", + "CEGHJMNP", + "CEGHLMNP", + "CEGIJLMN", + "CEGIJLMP", + "CEGIJLNP", + "CEGIJMNP", + "CEGILMNP", + "CEGJLMNP", + "CEHIJLMN", + "CEHIJLMP", + "CEHIJLNP", + "CEHIJMNP", + "CEHILMNP", + "CEHJLMNP", + "CEIJLMNP", + "CFGHIJLM", + "CFGHIJLN", + "CFGHIJLP", + "CFGHIJMN", + "CFGHIJMP", + "CFGHIJNP", + "CFGHILMN", + "CFGHILMP", + "CFGHILNP", + "CFGHIMNP", + "CFGHJLMN", + "CFGHJLMP", + "CFGHJLNP", + "CFGHJMNP", + "CFGHLMNP", + "CFGIJLMN", + "CFGIJLMP", + "CFGIJLNP", + "CFGIJMNP", + "CFGILMNP", + "CFGJLMNP", + "CFHIJLMN", + "CFHIJLMP", + "CFHIJLNP", + "CFHIJMNP", + "CFHILMNP", + "CFHJLMNP", + "CFIJLMNP", + "CGHIJLMN", + "CGHIJLMP", + "CGHIJLNP", + "CGHIJMNP", + "CGHILMNP", + "CGHJLMNP", + "CGIJLMNP", + "CHIJLMNP", + "EFGHIJLM", + "EFGHIJLN", + "EFGHIJLP", + "EFGHIJMN", + "EFGHIJMP", + "EFGHIJNP", + "EFGHILMN", + "EFGHILMP", + "EFGHILNP", + "EFGHIMNP", + "EFGHJLMN", + "EFGHJLMP", + "EFGHJLNP", + "EFGHJMNP", + "EFGHLMNP", + "EFGIJLMN", + "EFGIJLMP", + "EFGIJLNP", + "EFGIJMNP", + "EFGILMNP", + "EFGJLMNP", + "EFHIJLMN", + "EFHIJLMP", + "EFHIJLNP", + "EFHIJMNP", + "EFHILMNP", + "EFHJLMNP", + "EFIJLMNP", + "EGHIJLMN", + "EGHIJLMP", + "EGHIJLNP", + "EGHIJMNP", + "EGHILMNP", + "EGHJLMNP", + "EGIJLMNP", + "EHIJLMNP", + "FGHIJLMN", + "FGHIJLMP", + "FGHIJLNP", + "FGHIJMNP", + "FGHILMNP", + "FGHJLMNP", + "FGIJLMNP", + "FHIJLMNP", + "GHIJLMNP", + "ABCEFGHIJ", + "ABCEFGHIL", + "ABCEFGHIM", + "ABCEFGHIN", + "ABCEFGHIP", + "ABCEFGHJL", + "ABCEFGHJM", + "ABCEFGHJN", + "ABCEFGHJP", + "ABCEFGHLM", + "ABCEFGHLN", + "ABCEFGHLP", + "ABCEFGHMN", + "ABCEFGHMP", + "ABCEFGHNP", + "ABCEFGIJL", + "ABCEFGIJM", + "ABCEFGIJN", + "ABCEFGIJP", + "ABCEFGILM", + "ABCEFGILN", + "ABCEFGILP", + "ABCEFGIMN", + "ABCEFGIMP", + "ABCEFGINP", + "ABCEFGJLM", + "ABCEFGJLN", + "ABCEFGJLP", + "ABCEFGJMN", + "ABCEFGJMP", + "ABCEFGJNP", + "ABCEFGLMN", + "ABCEFGLMP", + "ABCEFGLNP", + "ABCEFGMNP", + "ABCEFHIJL", + "ABCEFHIJM", + "ABCEFHIJN", + "ABCEFHIJP", + "ABCEFHILM", + "ABCEFHILN", + "ABCEFHILP", + "ABCEFHIMN", + "ABCEFHIMP", + "ABCEFHINP", + "ABCEFHJLM", + "ABCEFHJLN", + "ABCEFHJLP", + "ABCEFHJMN", + "ABCEFHJMP", + "ABCEFHJNP", + "ABCEFHLMN", + "ABCEFHLMP", + "ABCEFHLNP", + "ABCEFHMNP", + "ABCEFIJLM", + "ABCEFIJLN", + "ABCEFIJLP", + "ABCEFIJMN", + "ABCEFIJMP", + "ABCEFIJNP", + "ABCEFILMN", + "ABCEFILMP", + "ABCEFILNP", + "ABCEFIMNP", + "ABCEFJLMN", + "ABCEFJLMP", + "ABCEFJLNP", + "ABCEFJMNP", + "ABCEFLMNP", + "ABCEGHIJL", + "ABCEGHIJM", + "ABCEGHIJN", + "ABCEGHIJP", + "ABCEGHILM", + "ABCEGHILN", + "ABCEGHILP", + "ABCEGHIMN", + "ABCEGHIMP", + "ABCEGHINP", + "ABCEGHJLM", + "ABCEGHJLN", + "ABCEGHJLP", + "ABCEGHJMN", + "ABCEGHJMP", + "ABCEGHJNP", + "ABCEGHLMN", + "ABCEGHLMP", + "ABCEGHLNP", + "ABCEGHMNP", + "ABCEGIJLM", + "ABCEGIJLN", + "ABCEGIJLP", + "ABCEGIJMN", + "ABCEGIJMP", + "ABCEGIJNP", + "ABCEGILMN", + "ABCEGILMP", + "ABCEGILNP", + "ABCEGIMNP", + "ABCEGJLMN", + "ABCEGJLMP", + "ABCEGJLNP", + "ABCEGJMNP", + "ABCEGLMNP", + "ABCEHIJLM", + "ABCEHIJLN", + "ABCEHIJLP", + "ABCEHIJMN", + "ABCEHIJMP", + "ABCEHIJNP", + "ABCEHILMN", + "ABCEHILMP", + "ABCEHILNP", + "ABCEHIMNP", + "ABCEHJLMN", + "ABCEHJLMP", + "ABCEHJLNP", + "ABCEHJMNP", + "ABCEHLMNP", + "ABCEIJLMN", + "ABCEIJLMP", + "ABCEIJLNP", + "ABCEIJMNP", + "ABCEILMNP", + "ABCEJLMNP", + "ABCFGHIJL", + "ABCFGHIJM", + "ABCFGHIJN", + "ABCFGHIJP", + "ABCFGHILM", + "ABCFGHILN", + "ABCFGHILP", + "ABCFGHIMN", + "ABCFGHIMP", + "ABCFGHINP", + "ABCFGHJLM", + "ABCFGHJLN", + "ABCFGHJLP", + "ABCFGHJMN", + "ABCFGHJMP", + "ABCFGHJNP", + "ABCFGHLMN", + "ABCFGHLMP", + "ABCFGHLNP", + "ABCFGHMNP", + "ABCFGIJLM", + "ABCFGIJLN", + "ABCFGIJLP", + "ABCFGIJMN", + "ABCFGIJMP", + "ABCFGIJNP", + "ABCFGILMN", + "ABCFGILMP", + "ABCFGILNP", + "ABCFGIMNP", + "ABCFGJLMN", + "ABCFGJLMP", + "ABCFGJLNP", + "ABCFGJMNP", + "ABCFGLMNP", + "ABCFHIJLM", + "ABCFHIJLN", + "ABCFHIJLP", + "ABCFHIJMN", + "ABCFHIJMP", + "ABCFHIJNP", + "ABCFHILMN", + "ABCFHILMP", + "ABCFHILNP", + "ABCFHIMNP", + "ABCFHJLMN", + "ABCFHJLMP", + "ABCFHJLNP", + "ABCFHJMNP", + "ABCFHLMNP", + "ABCFIJLMN", + "ABCFIJLMP", + "ABCFIJLNP", + "ABCFIJMNP", + "ABCFILMNP", + "ABCFJLMNP", + "ABCGHIJLM", + "ABCGHIJLN", + "ABCGHIJLP", + "ABCGHIJMN", + "ABCGHIJMP", + "ABCGHIJNP", + "ABCGHILMN", + "ABCGHILMP", + "ABCGHILNP", + "ABCGHIMNP", + "ABCGHJLMN", + "ABCGHJLMP", + "ABCGHJLNP", + "ABCGHJMNP", + "ABCGHLMNP", + "ABCGIJLMN", + "ABCGIJLMP", + "ABCGIJLNP", + "ABCGIJMNP", + "ABCGILMNP", + "ABCGJLMNP", + "ABCHIJLMN", + "ABCHIJLMP", + "ABCHIJLNP", + "ABCHIJMNP", + "ABCHILMNP", + "ABCHJLMNP", + "ABCIJLMNP", + "ABEFGHIJL", + "ABEFGHIJM", + "ABEFGHIJN", + "ABEFGHIJP", + "ABEFGHILM", + "ABEFGHILN", + "ABEFGHILP", + "ABEFGHIMN", + "ABEFGHIMP", + "ABEFGHINP", + "ABEFGHJLM", + "ABEFGHJLN", + "ABEFGHJLP", + "ABEFGHJMN", + "ABEFGHJMP", + "ABEFGHJNP", + "ABEFGHLMN", + "ABEFGHLMP", + "ABEFGHLNP", + "ABEFGHMNP", + "ABEFGIJLM", + "ABEFGIJLN", + "ABEFGIJLP", + "ABEFGIJMN", + "ABEFGIJMP", + "ABEFGIJNP", + "ABEFGILMN", + "ABEFGILMP", + "ABEFGILNP", + "ABEFGIMNP", + "ABEFGJLMN", + "ABEFGJLMP", + "ABEFGJLNP", + "ABEFGJMNP", + "ABEFGLMNP", + "ABEFHIJLM", + "ABEFHIJLN", + "ABEFHIJLP", + "ABEFHIJMN", + "ABEFHIJMP", + "ABEFHIJNP", + "ABEFHILMN", + "ABEFHILMP", + "ABEFHILNP", + "ABEFHIMNP", + "ABEFHJLMN", + "ABEFHJLMP", + "ABEFHJLNP", + "ABEFHJMNP", + "ABEFHLMNP", + "ABEFIJLMN", + "ABEFIJLMP", + "ABEFIJLNP", + "ABEFIJMNP", + "ABEFILMNP", + "ABEFJLMNP", + "ABEGHIJLM", + "ABEGHIJLN", + "ABEGHIJLP", + "ABEGHIJMN", + "ABEGHIJMP", + "ABEGHIJNP", + "ABEGHILMN", + "ABEGHILMP", + "ABEGHILNP", + "ABEGHIMNP", + "ABEGHJLMN", + "ABEGHJLMP", + "ABEGHJLNP", + "ABEGHJMNP", + "ABEGHLMNP", + "ABEGIJLMN", + "ABEGIJLMP", + "ABEGIJLNP", + "ABEGIJMNP", + "ABEGILMNP", + "ABEGJLMNP", + "ABEHIJLMN", + "ABEHIJLMP", + "ABEHIJLNP", + "ABEHIJMNP", + "ABEHILMNP", + "ABEHJLMNP", + "ABEIJLMNP", + "ABFGHIJLM", + "ABFGHIJLN", + "ABFGHIJLP", + "ABFGHIJMN", + "ABFGHIJMP", + "ABFGHIJNP", + "ABFGHILMN", + "ABFGHILMP", + "ABFGHILNP", + "ABFGHIMNP", + "ABFGHJLMN", + "ABFGHJLMP", + "ABFGHJLNP", + "ABFGHJMNP", + "ABFGHLMNP", + "ABFGIJLMN", + "ABFGIJLMP", + "ABFGIJLNP", + "ABFGIJMNP", + "ABFGILMNP", + "ABFGJLMNP", + "ABFHIJLMN", + "ABFHIJLMP", + "ABFHIJLNP", + "ABFHIJMNP", + "ABFHILMNP", + "ABFHJLMNP", + "ABFIJLMNP", + "ABGHIJLMN", + "ABGHIJLMP", + "ABGHIJLNP", + "ABGHIJMNP", + "ABGHILMNP", + "ABGHJLMNP", + "ABGIJLMNP", + "ABHIJLMNP", + "ACEFGHIJL", + "ACEFGHIJM", + "ACEFGHIJN", + "ACEFGHIJP", + "ACEFGHILM", + "ACEFGHILN", + "ACEFGHILP", + "ACEFGHIMN", + "ACEFGHIMP", + "ACEFGHINP", + "ACEFGHJLM", + "ACEFGHJLN", + "ACEFGHJLP", + "ACEFGHJMN", + "ACEFGHJMP", + "ACEFGHJNP", + "ACEFGHLMN", + "ACEFGHLMP", + "ACEFGHLNP", + "ACEFGHMNP", + "ACEFGIJLM", + "ACEFGIJLN", + "ACEFGIJLP", + "ACEFGIJMN", + "ACEFGIJMP", + "ACEFGIJNP", + "ACEFGILMN", + "ACEFGILMP", + "ACEFGILNP", + "ACEFGIMNP", + "ACEFGJLMN", + "ACEFGJLMP", + "ACEFGJLNP", + "ACEFGJMNP", + "ACEFGLMNP", + "ACEFHIJLM", + "ACEFHIJLN", + "ACEFHIJLP", + "ACEFHIJMN", + "ACEFHIJMP", + "ACEFHIJNP", + "ACEFHILMN", + "ACEFHILMP", + "ACEFHILNP", + "ACEFHIMNP", + "ACEFHJLMN", + "ACEFHJLMP", + "ACEFHJLNP", + "ACEFHJMNP", + "ACEFHLMNP", + "ACEFIJLMN", + "ACEFIJLMP", + "ACEFIJLNP", + "ACEFIJMNP", + "ACEFILMNP", + "ACEFJLMNP", + "ACEGHIJLM", + "ACEGHIJLN", + "ACEGHIJLP", + "ACEGHIJMN", + "ACEGHIJMP", + "ACEGHIJNP", + "ACEGHILMN", + "ACEGHILMP", + "ACEGHILNP", + "ACEGHIMNP", + "ACEGHJLMN", + "ACEGHJLMP", + "ACEGHJLNP", + "ACEGHJMNP", + "ACEGHLMNP", + "ACEGIJLMN", + "ACEGIJLMP", + "ACEGIJLNP", + "ACEGIJMNP", + "ACEGILMNP", + "ACEGJLMNP", + "ACEHIJLMN", + "ACEHIJLMP", + "ACEHIJLNP", + "ACEHIJMNP", + "ACEHILMNP", + "ACEHJLMNP", + "ACEIJLMNP", + "ACFGHIJLM", + "ACFGHIJLN", + "ACFGHIJLP", + "ACFGHIJMN", + "ACFGHIJMP", + "ACFGHIJNP", + "ACFGHILMN", + "ACFGHILMP", + "ACFGHILNP", + "ACFGHIMNP", + "ACFGHJLMN", + "ACFGHJLMP", + "ACFGHJLNP", + "ACFGHJMNP", + "ACFGHLMNP", + "ACFGIJLMN", + "ACFGIJLMP", + "ACFGIJLNP", + "ACFGIJMNP", + "ACFGILMNP", + "ACFGJLMNP", + "ACFHIJLMN", + "ACFHIJLMP", + "ACFHIJLNP", + "ACFHIJMNP", + "ACFHILMNP", + "ACFHJLMNP", + "ACFIJLMNP", + "ACGHIJLMN", + "ACGHIJLMP", + "ACGHIJLNP", + "ACGHIJMNP", + "ACGHILMNP", + "ACGHJLMNP", + "ACGIJLMNP", + "ACHIJLMNP", + "AEFGHIJLM", + "AEFGHIJLN", + "AEFGHIJLP", + "AEFGHIJMN", + "AEFGHIJMP", + "AEFGHIJNP", + "AEFGHILMN", + "AEFGHILMP", + "AEFGHILNP", + "AEFGHIMNP", + "AEFGHJLMN", + "AEFGHJLMP", + "AEFGHJLNP", + "AEFGHJMNP", + "AEFGHLMNP", + "AEFGIJLMN", + "AEFGIJLMP", + "AEFGIJLNP", + "AEFGIJMNP", + "AEFGILMNP", + "AEFGJLMNP", + "AEFHIJLMN", + "AEFHIJLMP", + "AEFHIJLNP", + "AEFHIJMNP", + "AEFHILMNP", + "AEFHJLMNP", + "AEFIJLMNP", + "AEGHIJLMN", + "AEGHIJLMP", + "AEGHIJLNP", + "AEGHIJMNP", + "AEGHILMNP", + "AEGHJLMNP", + "AEGIJLMNP", + "AEHIJLMNP", + "AFGHIJLMN", + "AFGHIJLMP", + "AFGHIJLNP", + "AFGHIJMNP", + "AFGHILMNP", + "AFGHJLMNP", + "AFGIJLMNP", + "AFHIJLMNP", + "AGHIJLMNP", + "BCEFGHIJL", + "BCEFGHIJM", + "BCEFGHIJN", + "BCEFGHIJP", + "BCEFGHILM", + "BCEFGHILN", + "BCEFGHILP", + "BCEFGHIMN", + "BCEFGHIMP", + "BCEFGHINP", + "BCEFGHJLM", + "BCEFGHJLN", + "BCEFGHJLP", + "BCEFGHJMN", + "BCEFGHJMP", + "BCEFGHJNP", + "BCEFGHLMN", + "BCEFGHLMP", + "BCEFGHLNP", + "BCEFGHMNP", + "BCEFGIJLM", + "BCEFGIJLN", + "BCEFGIJLP", + "BCEFGIJMN", + "BCEFGIJMP", + "BCEFGIJNP", + "BCEFGILMN", + "BCEFGILMP", + "BCEFGILNP", + "BCEFGIMNP", + "BCEFGJLMN", + "BCEFGJLMP", + "BCEFGJLNP", + "BCEFGJMNP", + "BCEFGLMNP", + "BCEFHIJLM", + "BCEFHIJLN", + "BCEFHIJLP", + "BCEFHIJMN", + "BCEFHIJMP", + "BCEFHIJNP", + "BCEFHILMN", + "BCEFHILMP", + "BCEFHILNP", + "BCEFHIMNP", + "BCEFHJLMN", + "BCEFHJLMP", + "BCEFHJLNP", + "BCEFHJMNP", + "BCEFHLMNP", + "BCEFIJLMN", + "BCEFIJLMP", + "BCEFIJLNP", + "BCEFIJMNP", + "BCEFILMNP", + "BCEFJLMNP", + "BCEGHIJLM", + "BCEGHIJLN", + "BCEGHIJLP", + "BCEGHIJMN", + "BCEGHIJMP", + "BCEGHIJNP", + "BCEGHILMN", + "BCEGHILMP", + "BCEGHILNP", + "BCEGHIMNP", + "BCEGHJLMN", + "BCEGHJLMP", + "BCEGHJLNP", + "BCEGHJMNP", + "BCEGHLMNP", + "BCEGIJLMN", + "BCEGIJLMP", + "BCEGIJLNP", + "BCEGIJMNP", + "BCEGILMNP", + "BCEGJLMNP", + "BCEHIJLMN", + "BCEHIJLMP", + "BCEHIJLNP", + "BCEHIJMNP", + "BCEHILMNP", + "BCEHJLMNP", + "BCEIJLMNP", + "BCFGHIJLM", + "BCFGHIJLN", + "BCFGHIJLP", + "BCFGHIJMN", + "BCFGHIJMP", + "BCFGHIJNP", + "BCFGHILMN", + "BCFGHILMP", + "BCFGHILNP", + "BCFGHIMNP", + "BCFGHJLMN", + "BCFGHJLMP", + "BCFGHJLNP", + "BCFGHJMNP", + "BCFGHLMNP", + "BCFGIJLMN", + "BCFGIJLMP", + "BCFGIJLNP", + "BCFGIJMNP", + "BCFGILMNP", + "BCFGJLMNP", + "BCFHIJLMN", + "BCFHIJLMP", + "BCFHIJLNP", + "BCFHIJMNP", + "BCFHILMNP", + "BCFHJLMNP", + "BCFIJLMNP", + "BCGHIJLMN", + "BCGHIJLMP", + "BCGHIJLNP", + "BCGHIJMNP", + "BCGHILMNP", + "BCGHJLMNP", + "BCGIJLMNP", + "BCHIJLMNP", + "BEFGHIJLM", + "BEFGHIJLN", + "BEFGHIJLP", + "BEFGHIJMN", + "BEFGHIJMP", + "BEFGHIJNP", + "BEFGHILMN", + "BEFGHILMP", + "BEFGHILNP", + "BEFGHIMNP", + "BEFGHJLMN", + "BEFGHJLMP", + "BEFGHJLNP", + "BEFGHJMNP", + "BEFGHLMNP", + "BEFGIJLMN", + "BEFGIJLMP", + "BEFGIJLNP", + "BEFGIJMNP", + "BEFGILMNP", + "BEFGJLMNP", + "BEFHIJLMN", + "BEFHIJLMP", + "BEFHIJLNP", + "BEFHIJMNP", + "BEFHILMNP", + "BEFHJLMNP", + "BEFIJLMNP", + "BEGHIJLMN", + "BEGHIJLMP", + "BEGHIJLNP", + "BEGHIJMNP", + "BEGHILMNP", + "BEGHJLMNP", + "BEGIJLMNP", + "BEHIJLMNP", + "BFGHIJLMN", + "BFGHIJLMP", + "BFGHIJLNP", + "BFGHIJMNP", + "BFGHILMNP", + "BFGHJLMNP", + "BFGIJLMNP", + "BFHIJLMNP", + "BGHIJLMNP", + "CEFGHIJLM", + "CEFGHIJLN", + "CEFGHIJLP", + "CEFGHIJMN", + "CEFGHIJMP", + "CEFGHIJNP", + "CEFGHILMN", + "CEFGHILMP", + "CEFGHILNP", + "CEFGHIMNP", + "CEFGHJLMN", + "CEFGHJLMP", + "CEFGHJLNP", + "CEFGHJMNP", + "CEFGHLMNP", + "CEFGIJLMN", + "CEFGIJLMP", + "CEFGIJLNP", + "CEFGIJMNP", + "CEFGILMNP", + "CEFGJLMNP", + "CEFHIJLMN", + "CEFHIJLMP", + "CEFHIJLNP", + "CEFHIJMNP", + "CEFHILMNP", + "CEFHJLMNP", + "CEFIJLMNP", + "CEGHIJLMN", + "CEGHIJLMP", + "CEGHIJLNP", + "CEGHIJMNP", + "CEGHILMNP", + "CEGHJLMNP", + "CEGIJLMNP", + "CEHIJLMNP", + "CFGHIJLMN", + "CFGHIJLMP", + "CFGHIJLNP", + "CFGHIJMNP", + "CFGHILMNP", + "CFGHJLMNP", + "CFGIJLMNP", + "CFHIJLMNP", + "CGHIJLMNP", + "EFGHIJLMN", + "EFGHIJLMP", + "EFGHIJLNP", + "EFGHIJMNP", + "EFGHILMNP", + "EFGHJLMNP", + "EFGIJLMNP", + "EFHIJLMNP", + "EGHIJLMNP", + "FGHIJLMNP", + "ABCEFGHIJL", + "ABCEFGHIJM", + "ABCEFGHIJN", + "ABCEFGHIJP", + "ABCEFGHILM", + "ABCEFGHILN", + "ABCEFGHILP", + "ABCEFGHIMN", + "ABCEFGHIMP", + "ABCEFGHINP", + "ABCEFGHJLM", + "ABCEFGHJLN", + "ABCEFGHJLP", + "ABCEFGHJMN", + "ABCEFGHJMP", + "ABCEFGHJNP", + "ABCEFGHLMN", + "ABCEFGHLMP", + "ABCEFGHLNP", + "ABCEFGHMNP", + "ABCEFGIJLM", + "ABCEFGIJLN", + "ABCEFGIJLP", + "ABCEFGIJMN", + "ABCEFGIJMP", + "ABCEFGIJNP", + "ABCEFGILMN", + "ABCEFGILMP", + "ABCEFGILNP", + "ABCEFGIMNP", + "ABCEFGJLMN", + "ABCEFGJLMP", + "ABCEFGJLNP", + "ABCEFGJMNP", + "ABCEFGLMNP", + "ABCEFHIJLM", + "ABCEFHIJLN", + "ABCEFHIJLP", + "ABCEFHIJMN", + "ABCEFHIJMP", + "ABCEFHIJNP", + "ABCEFHILMN", + "ABCEFHILMP", + "ABCEFHILNP", + "ABCEFHIMNP", + "ABCEFHJLMN", + "ABCEFHJLMP", + "ABCEFHJLNP", + "ABCEFHJMNP", + "ABCEFHLMNP", + "ABCEFIJLMN", + "ABCEFIJLMP", + "ABCEFIJLNP", + "ABCEFIJMNP", + "ABCEFILMNP", + "ABCEFJLMNP", + "ABCEGHIJLM", + "ABCEGHIJLN", + "ABCEGHIJLP", + "ABCEGHIJMN", + "ABCEGHIJMP", + "ABCEGHIJNP", + "ABCEGHILMN", + "ABCEGHILMP", + "ABCEGHILNP", + "ABCEGHIMNP", + "ABCEGHJLMN", + "ABCEGHJLMP", + "ABCEGHJLNP", + "ABCEGHJMNP", + "ABCEGHLMNP", + "ABCEGIJLMN", + "ABCEGIJLMP", + "ABCEGIJLNP", + "ABCEGIJMNP", + "ABCEGILMNP", + "ABCEGJLMNP", + "ABCEHIJLMN", + "ABCEHIJLMP", + "ABCEHIJLNP", + "ABCEHIJMNP", + "ABCEHILMNP", + "ABCEHJLMNP", + "ABCEIJLMNP", + "ABCFGHIJLM", + "ABCFGHIJLN", + "ABCFGHIJLP", + "ABCFGHIJMN", + "ABCFGHIJMP", + "ABCFGHIJNP", + "ABCFGHILMN", + "ABCFGHILMP", + "ABCFGHILNP", + "ABCFGHIMNP", + "ABCFGHJLMN", + "ABCFGHJLMP", + "ABCFGHJLNP", + "ABCFGHJMNP", + "ABCFGHLMNP", + "ABCFGIJLMN", + "ABCFGIJLMP", + "ABCFGIJLNP", + "ABCFGIJMNP", + "ABCFGILMNP", + "ABCFGJLMNP", + "ABCFHIJLMN", + "ABCFHIJLMP", + "ABCFHIJLNP", + "ABCFHIJMNP", + "ABCFHILMNP", + "ABCFHJLMNP", + "ABCFIJLMNP", + "ABCGHIJLMN", + "ABCGHIJLMP", + "ABCGHIJLNP", + "ABCGHIJMNP", + "ABCGHILMNP", + "ABCGHJLMNP", + "ABCGIJLMNP", + "ABCHIJLMNP", + "ABEFGHIJLM", + "ABEFGHIJLN", + "ABEFGHIJLP", + "ABEFGHIJMN", + "ABEFGHIJMP", + "ABEFGHIJNP", + "ABEFGHILMN", + "ABEFGHILMP", + "ABEFGHILNP", + "ABEFGHIMNP", + "ABEFGHJLMN", + "ABEFGHJLMP", + "ABEFGHJLNP", + "ABEFGHJMNP", + "ABEFGHLMNP", + "ABEFGIJLMN", + "ABEFGIJLMP", + "ABEFGIJLNP", + "ABEFGIJMNP", + "ABEFGILMNP", + "ABEFGJLMNP", + "ABEFHIJLMN", + "ABEFHIJLMP", + "ABEFHIJLNP", + "ABEFHIJMNP", + "ABEFHILMNP", + "ABEFHJLMNP", + "ABEFIJLMNP", + "ABEGHIJLMN", + "ABEGHIJLMP", + "ABEGHIJLNP", + "ABEGHIJMNP", + "ABEGHILMNP", + "ABEGHJLMNP", + "ABEGIJLMNP", + "ABEHIJLMNP", + "ABFGHIJLMN", + "ABFGHIJLMP", + "ABFGHIJLNP", + "ABFGHIJMNP", + "ABFGHILMNP", + "ABFGHJLMNP", + "ABFGIJLMNP", + "ABFHIJLMNP", + "ABGHIJLMNP", + "ACEFGHIJLM", + "ACEFGHIJLN", + "ACEFGHIJLP", + "ACEFGHIJMN", + "ACEFGHIJMP", + "ACEFGHIJNP", + "ACEFGHILMN", + "ACEFGHILMP", + "ACEFGHILNP", + "ACEFGHIMNP", + "ACEFGHJLMN", + "ACEFGHJLMP", + "ACEFGHJLNP", + "ACEFGHJMNP", + "ACEFGHLMNP", + "ACEFGIJLMN", + "ACEFGIJLMP", + "ACEFGIJLNP", + "ACEFGIJMNP", + "ACEFGILMNP", + "ACEFGJLMNP", + "ACEFHIJLMN", + "ACEFHIJLMP", + "ACEFHIJLNP", + "ACEFHIJMNP", + "ACEFHILMNP", + "ACEFHJLMNP", + "ACEFIJLMNP", + "ACEGHIJLMN", + "ACEGHIJLMP", + "ACEGHIJLNP", + "ACEGHIJMNP", + "ACEGHILMNP", + "ACEGHJLMNP", + "ACEGIJLMNP", + "ACEHIJLMNP", + "ACFGHIJLMN", + "ACFGHIJLMP", + "ACFGHIJLNP", + "ACFGHIJMNP", + "ACFGHILMNP", + "ACFGHJLMNP", + "ACFGIJLMNP", + "ACFHIJLMNP", + "ACGHIJLMNP", + "AEFGHIJLMN", + "AEFGHIJLMP", + "AEFGHIJLNP", + "AEFGHIJMNP", + "AEFGHILMNP", + "AEFGHJLMNP", + "AEFGIJLMNP", + "AEFHIJLMNP", + "AEGHIJLMNP", + "AFGHIJLMNP", + "BCEFGHIJLM", + "BCEFGHIJLN", + "BCEFGHIJLP", + "BCEFGHIJMN", + "BCEFGHIJMP", + "BCEFGHIJNP", + "BCEFGHILMN", + "BCEFGHILMP", + "BCEFGHILNP", + "BCEFGHIMNP", + "BCEFGHJLMN", + "BCEFGHJLMP", + "BCEFGHJLNP", + "BCEFGHJMNP", + "BCEFGHLMNP", + "BCEFGIJLMN", + "BCEFGIJLMP", + "BCEFGIJLNP", + "BCEFGIJMNP", + "BCEFGILMNP", + "BCEFGJLMNP", + "BCEFHIJLMN", + "BCEFHIJLMP", + "BCEFHIJLNP", + "BCEFHIJMNP", + "BCEFHILMNP", + "BCEFHJLMNP", + "BCEFIJLMNP", + "BCEGHIJLMN", + "BCEGHIJLMP", + "BCEGHIJLNP", + "BCEGHIJMNP", + "BCEGHILMNP", + "BCEGHJLMNP", + "BCEGIJLMNP", + "BCEHIJLMNP", + "BCFGHIJLMN", + "BCFGHIJLMP", + "BCFGHIJLNP", + "BCFGHIJMNP", + "BCFGHILMNP", + "BCFGHJLMNP", + "BCFGIJLMNP", + "BCFHIJLMNP", + "BCGHIJLMNP", + "BEFGHIJLMN", + "BEFGHIJLMP", + "BEFGHIJLNP", + "BEFGHIJMNP", + "BEFGHILMNP", + "BEFGHJLMNP", + "BEFGIJLMNP", + "BEFHIJLMNP", + "BEGHIJLMNP", + "BFGHIJLMNP", + "CEFGHIJLMN", + "CEFGHIJLMP", + "CEFGHIJLNP", + "CEFGHIJMNP", + "CEFGHILMNP", + "CEFGHJLMNP", + "CEFGIJLMNP", + "CEFHIJLMNP", + "CEGHIJLMNP", + "CFGHIJLMNP", + "EFGHIJLMNP", + "ABCEFGHIJLM", + "ABCEFGHIJLN", + "ABCEFGHIJLP", + "ABCEFGHIJMN", + "ABCEFGHIJMP", + "ABCEFGHIJNP", + "ABCEFGHILMN", + "ABCEFGHILMP", + "ABCEFGHILNP", + "ABCEFGHIMNP", + "ABCEFGHJLMN", + "ABCEFGHJLMP", + "ABCEFGHJLNP", + "ABCEFGHJMNP", + "ABCEFGHLMNP", + "ABCEFGIJLMN", + "ABCEFGIJLMP", + "ABCEFGIJLNP", + "ABCEFGIJMNP", + "ABCEFGILMNP", + "ABCEFGJLMNP", + "ABCEFHIJLMN", + "ABCEFHIJLMP", + "ABCEFHIJLNP", + "ABCEFHIJMNP", + "ABCEFHILMNP", + "ABCEFHJLMNP", + "ABCEFIJLMNP", + "ABCEGHIJLMN", + "ABCEGHIJLMP", + "ABCEGHIJLNP", + "ABCEGHIJMNP", + "ABCEGHILMNP", + "ABCEGHJLMNP", + "ABCEGIJLMNP", + "ABCEHIJLMNP", + "ABCFGHIJLMN", + "ABCFGHIJLMP", + "ABCFGHIJLNP", + "ABCFGHIJMNP", + "ABCFGHILMNP", + "ABCFGHJLMNP", + "ABCFGIJLMNP", + "ABCFHIJLMNP", + "ABCGHIJLMNP", + "ABEFGHIJLMN", + "ABEFGHIJLMP", + "ABEFGHIJLNP", + "ABEFGHIJMNP", + "ABEFGHILMNP", + "ABEFGHJLMNP", + "ABEFGIJLMNP", + "ABEFHIJLMNP", + "ABEGHIJLMNP", + "ABFGHIJLMNP", + "ACEFGHIJLMN", + "ACEFGHIJLMP", + "ACEFGHIJLNP", + "ACEFGHIJMNP", + "ACEFGHILMNP", + "ACEFGHJLMNP", + "ACEFGIJLMNP", + "ACEFHIJLMNP", + "ACEGHIJLMNP", + "ACFGHIJLMNP", + "AEFGHIJLMNP", + "BCEFGHIJLMN", + "BCEFGHIJLMP", + "BCEFGHIJLNP", + "BCEFGHIJMNP", + "BCEFGHILMNP", + "BCEFGHJLMNP", + "BCEFGIJLMNP", + "BCEFHIJLMNP", + "BCEGHIJLMNP", + "BCFGHIJLMNP", + "BEFGHIJLMNP", + "CEFGHIJLMNP", + "ABCEFGHIJLMN", + "ABCEFGHIJLMP", + "ABCEFGHIJLNP", + "ABCEFGHIJMNP", + "ABCEFGHILMNP", + "ABCEFGHJLMNP", + "ABCEFGIJLMNP", + "ABCEFHIJLMNP", + "ABCEGHIJLMNP", + "ABCFGHIJLMNP", + "ABEFGHIJLMNP", + "ACEFGHIJLMNP", + "BCEFGHIJLMNP", + "ABCEFGHIJLMNP" + ] +} diff --git a/backend/schemas/source/base/FederalProgramNames.json b/backend/schemas/source/base/FederalProgramNames.json index f276611be5..dccdfde0b1 100644 --- a/backend/schemas/source/base/FederalProgramNames.json +++ b/backend/schemas/source/base/FederalProgramNames.json @@ -5766,4 +5766,4 @@ "FAMILY VIOLENCE PREVENTION AND SERVICES/CULTURALLY SPECIFIC DOMESTIC VIOLENCE AND SEXUAL VIOLENCE SERVICES", "EASTERN NEVADA CONSERVATION, RECREATION AND DEVELOPMENT" ] -} +} \ No newline at end of file From 327eb7e370fcd05a2263497235a8faa382bf1d42 Mon Sep 17 00:00:00 2001 From: danswick Date: Tue, 26 Sep 2023 12:44:40 -0700 Subject: [PATCH 13/13] remove prettierignore and prettier jobs --- backend/.prettierignore | 19 ------------------- backend/package.json | 2 -- 2 files changed, 21 deletions(-) delete mode 100644 backend/.prettierignore diff --git a/backend/.prettierignore b/backend/.prettierignore deleted file mode 100644 index 3826061501..0000000000 --- a/backend/.prettierignore +++ /dev/null @@ -1,19 +0,0 @@ -**/uswds -static/scss/** -static/compiled/** - -# testing artifacts -.lighthouseci/** -cypress/**/*.cy.js -data_fixtures/** -audit/fixtures/** - -# rendered files -schemas/output/** - - -# template linting/style checks handled by djlint -report_submission/templates/** -audit/templates/** -djangooidc/templates/** -templates/** diff --git a/backend/package.json b/backend/package.json index c17cd0cba2..d091050508 100644 --- a/backend/package.json +++ b/backend/package.json @@ -15,8 +15,6 @@ "fix:eslint": "npx eslint --fix --ignore-path ../.gitignore static/js", "check:stylelint": "npx stylelint './static/scss'", "fix:stylelint": "npx stylelint --fix './static/scss'", - "check:prettier": "npx prettier . --check", - "fix:prettier": "npx prettier . --write", "check-all": "run-p check:*", "fix-all": "run-p fix:*", "test:a11y:pa11y": "npx pa11y-ci -c ../.pa11yci",